函数 :一个函数实现一个功能
规则:def 函数名([形参]):
pass
命名规则:注意不要使用大驼峰,默认小驼峰,大驼峰命名只用于类的命名
1.函数的参数与返回值 返回值:函数执行的结果函数参数的定义与使用
defhello(name):print("你好吗,{}".format(name)) return "函数中止执行,后面不管有多少句代码都不会被执行"
print("这句话不会被执行")
person = 'Tom'
hello(person)
rst = hello("John") #函数也可以这么调用,如果有返回值会将返回值赋值给变量
函数的返回值
表示函数执行的结果,如果函数中没有return系统自动返回None,函数一旦执行return语句,则无条件返回,意味着return下面的语句将不再执行,只要遇到return,函数自动中止执行。
参数详解:普通参数 默认参数 收集参数 关键字参数
- 普通参数:定义的时候直接定义变量名,平时用的最多的参数
def 函数名(参数1, 参数2, ....):
调用: 函数名(参数1, 参数2, ...)
- 默认参数: 函数中默认给定义好的参数,参数有默认值
def 函数名(value1, canshu = value2): 其中的canshu = value2 就是默认参数,典型的例子就是 print(value1, value2, ...,sep=" ", end= '\n',..)
调用的时候,如果没有特殊要求 ,默认参数可以不用进行传值
def hello(name, gender = 'boy'):if gender = 'boy':print("welcome,{0},you are a good {1}".format(name, gender))else:print("welcome,{0},you are a good {1}".format(name, gender))
hello('Tom')hello('Siri', 'girl')
- 关键字参数:注意与默认参数区分,好处就是实参与形参位置可以不用一一对应
def fun(p1=v1, p2=v2, ...):
pass
fun(p1=value1, p2=value2, ....)
def student(name=None, age=None, gender=None):print("我是一个学生,我的名字是 {0}, 我今年 {1} 岁, 我是个 {3}生")
name= 'Tom'age= 12gender= '男'student(age=age, gender=gender, name=name)
- 收集参数:
把没有位置,不能和定义时的参数位置相对应的参数,放入一个特定的数据结构中
def fun(*args):
pass
调用:fun(p1, p2, p3, ...)
参数名可以不用 args,但推荐这么用,约定俗成. 注意前面的 " * " 不能省略, 调用的时候可以不传入参数值
收集参数传参的时候不能直接传入关键字参数,例如 fun(name='Tom'Z)
def stu( *args ):print("大家好, 简单自我介绍一下:")for i inargs:print(i, end='=>')
stu("小明", 18, "山东省")
stu('小红')
- 收集参数之关键字收集参数
把关键字参数以字典的形式放入收集参数, 访问kwargs需要用访问字典的方式
def fun( **kwargs ):
pass
#调用
fun(p1=v1, p2=v2, ....)