某一个功能定义一个函数,就可以随时调取这个函数
用def来定义
def hello():#hello就是变量 print('hello')#缩进的就是函数体
#函数不调用就不会被执行
函数名+() 就是被调用
#用函数写文件
先定义一个函数,传形参
用写的 方法写入(固定形式)
调用这个方法
def witer(name,content):#形参,等于变量名称 with open (name,'w',encoding='utf-8')as f: f.write(content) witer('函数','学习资料')#实参
读文件:
def read(name): with open (name,'r',encoding='utf-8')as f: content = f.read() print(content) read('函数')
#函数的返回值
def read(name): with open (name,'r',encoding='utf-8')as f: content = f.read() return content#返回 result = read('函数') print(result)
# return:用在函数里面没有返回值为None
1.返回的数据
2、函数只要遇到return函数立马执行结束,return 必须写在函数里面
def t(): for i in range(5): print('ww') return t()
小练习:
判断是否为小数,返回True ,False
def sx (s):#传参
s = str(s)#转化字符串
if s.count('.') == 1:#小数点的次数出现一次
left,right =s.split('.')#将小数点进行分割
if right.isdigit() and left.isdigit():#判断是不是为整数
if int (left)!=0 or int (right) !=0:#判断是不是为0.0
return True
if left.startswith ('-') and left.count('-') ==1:#判断负号是否出现1次
num = left[1:]#取负号后面第一位一直到结束
if num.isdigit() and right.isdigit():#判断是否为整数
if int (num)!=0 or int (right)!=0:#判断是封为0
return True
return False
print(is_float(-6.12))
print(is_float(1.12))
print(is_float(1))
print(is_float('sss.0001'))
print(is_float('sss.ssss'))
print(is_float(-1.23))
print(is_float('0.0'))
print(is_float('-0.0'))
函数的参数:
def b(name ,age):#必填参数,位置参数
pass
def op_file(file,content=None)#默认参数
def op_file(file,content=None): print(file) print(content) op_file('user.txt','ust')
默认值参数在调用函数时,如果传了参数值,则使用参数值,如果未传参数值,则用默认的参数值
def op_file(file,content =None): with open(file,'a+',encoding='utf-8')as f: if content: f.write(str(content)) else: f.seek() result = f.read() return result
可变参数:一般写成(*args)
def send_sms(*phone): print(phone) send_sms(1,52) #可变参数: #* #1.参数是不是必须传 --不是 #2.限制不限制参数的个数 --不显示 #3.phone是什么 --元组
关键字参数:
必须制定关键则,参数放到字典
def t(**info)
def t(**info): print(info) t(age = 2)
返回为字典
#四种连用 def test(name,content=None,*args,**kwargs)#必填参数放在最前面,默认参数,可变参数,关键字参数 必须按照这个顺序
按照关键字传参
def test(name, age ,qq,sex): print(name) print(age) print(qq) print(sex) test(age=13,name='xiaohong',qq=3232323,sex = '女')
#test('xiaohong',11,343434,'女')
#test('xiaohong',11,qq=343434,sex='女')
三种方式都可以用