一、为什么要使用函数?
因为如果没有函数我们平时的代码就会有很多重复
避免代码重用
提升代码的可读性
二、函数的定义与调用:
1. def 函数名(参数1,参数2)
‘‘‘ 函数注释‘‘‘
print(‘函数体‘)
return 返回值
函数就是封装一个功能
定义:
def 关键字开头,空格之后接函数名和圆括号,最后加一个冒号
def是固定的不能改变
函数名的定义和变量一样 :数字字母下划线 任意组合 ,不能是数字开头 不能是关键字 要具有可描述性
函数的调用
返回值=函数名(参数1,参数2)#记得函数名后面加括号
下面我们先来定义一个求计算字符串长度的函数。假如我们的len()函数现在不能用了,那么我们就需要定义一个函数,求字符串的长度。如果让我们一次一次的去写相同的代码,会显得很麻烦。这时候我们的函数就上场了。
def length(): s= ‘hello world‘ length = 0 for i in s : length +=1 print(length) print(length()) #因为没有返回值你打印最后会显示一个null def length(): s= ‘bjbbabjsaofsa‘ num = 0 for i in s: num +=1 return num m = length() print(m) # print(length())#return的时候你可以定义一个变量来接收 也可以不接收直接打印 但是如果print就不可以 但是一般最好不要在函数中写print太lowle
函数的返回值:
定义函数一般不要在函数中写print
return
1、在函数中遇到return就结束函数
2、将值返还给函数的调用者
无return
return None
return一个值该值是什么就返还什么
大家看一下对与函数中只能存在一个return 因为第一个碰到return就把函数结束了
>>> def func(a, b ,c): return a return b >>> print(func(3, 7, 8)) 3 #只返回第一个return的3 因为碰到第一个return就把函数结束了 其他的return 存在的没有意义了 >>>
函数的传递参数:
两个方面:
实参角度:
1形式参数和实际参数
def my_len(a): #这个a就是形式参数 用来接收实际参数的 return l print(my_len(3)) #实际参数 实实在在存在的
2位置传参 一 一对应
def func(a, b ,c): return a, b, c print(func(2, 3,700)) #一一对应并且是当作一个元组打印出来
3、混合传参----->关键字永远在最后面
def func(a, b=30 ,c): #形式参数和实际参数的一样都是直接赋值的要放在最后不然会报错,这个你看b直接赋值了但是放在了中间就报错 return a, b, c, print(func(2, 3,b=700))
def func(a, c ,b=40): return a, b, c #这个就是对的 就是全部都放在后面 print(func(2, 3,b=700))
如果你return的好几个值都在一起return那么最后的返回值显示出来就在一个元组内
默认传参:
def Info(username,sex=‘男‘): #定义一个默认参数 sex with open(‘one‘,encoding= ‘UTF-8‘,mode = ‘a‘)as f : #a就是追加内容 f.write(‘{}\\t{}\\n‘.format(username,sex)) while True : username= input(‘输入您的姓名:(男生为1开头)‘).strip() if ‘1‘ in username : username =username[1:] Info(username) else : Info(username,sex=‘女‘)