使用函数可提高代码的复用性,让代码更简洁,简化代码
1、函数格式
def sayhello(): #函数名 print('hello') #函数体 sayhello()#调用函数
注意:如果没有最后一句,调用函数,函数是不会执行的
2、函数参数
1)位置参数,必填
def calc(a,b): #形参--形式参数 res=a*b print('%s*%s=%s'%(a,b,res)) calc(7,8) #实参--实际参数 若不写参数,会报错
函数定义的参数为形式参数,在调用函数的时候,需要填写实际参数值,若不填写,则会报错
2)默认参数,非必填
def op_file(filename,content=None): f=open(filename,'a+',encoding='utf-8') f.seek(0) if content: f.write(content) f.flush() else: all_user=f.read() #all_user是局部变量,出了函数就没有用 f.close() op_file('a.txt')
content参数给了默认为none,所以在调用参数的时候,即使不写该参数的值,仍可以调用成功
还有一点就是all_user在函数内,属于局部变量,出了这个函数就没有用,比如出了函数想打印all_user的值,会报错
那么怎么才能将all_user值打印出来呢,就需要将函数中的结果返回回来,并在函数外将函数的返回值赋给其他参数,再打印该参数
def op_file(filename,content=None): f=open(filename,'a+',encoding='utf-8') f.seek(0) if content: f.write(content) f.flush() else: all_user=f.read() return all_user #调用完函数后,返回什么结果 f.close() res=op_file('a.txt') #将返回的内容赋给res print(res)
3、return用法:
return 用来返回结果,不是必须写的,如果在函数中遇到return,则立马结束整个函数
用法在上面一段代码中可以看见,也可以只写一个return,而没有后面return内容,则返回None
def h(): for i in range(5): print(i) if i==3: return#只写一个return的话,就返回None res=h() print(res)
4、函数练习1
检查密码是否合法,长度6-11,有字母和数字
import string def check(pwd): if len(pwd)>5 and len(pwd)<12: if set(pwd)&set(string.ascii_letters) and set(pwd)&set(string.digits): print('密码合法') else: print('密码不合法') else: print('密码不合法!') res=check('asd1234') print(res)
5、函数练习2
判断是否都是小数的函数
分析:
小数点个数 .count()
按照小数点进行分割
正小数:小数点左边是整数,右边也是整数 isdigits()
负小数:小数点左边是以负号开头,但是只有一个负号,右边也是整数
def is_float(s): s=str(s) if s.count('.')==1: s_list=s.split('.') left=s_list[0] right=s_list[1] if left.isdigit() and right.isdigit(): return True elif left.startswith('-') and left.count('-')==1: if left.split('-')[1].isdigit() and right.isdigit(): return True else: return False