学习函数
规则:
函数代码块以def关键词开头,后接函数标识符名称和圆括号()。
任何入参数和自变量必须放在圆括号里,圆括号之间可以用于定义参数
return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None
语法:
def 函数名称(参数):
函数体
调用:
函数名称()
示例:
def hello() : print("Hello World!") hello() Hello World!
复杂点的带参函数:
# 计算面积函数 def area(width, height): return width * height def print_welcome(name): print("Welcome", name) print_welcome("Runoob") w = 4 h = 5 print("width =", w, " height =", h, " area =", area(w, h))
输出结果:
Welcome Runoob width = 4 height = 5 area = 20参数传递
可改变的和不可改变的对象
在python中 String,int,tuples和numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。
python 中一切都是对象,严格意义我们不能说值传递还是引用传递,我们应该说传不可变对象和传可变 对象
参数
必须参数必需参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。
调用一个函数,你必须传入一个参数,不然会出现语法错误
关键参数关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。
使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。
默认参数 调用函数时,如果没有传递参数,则会使用默认参数。
不定长参数
你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述2种参数不同,声明时不会命名
语法def functionname([formal_args,] *var_args_tuple ): "函数_文档字符串" function_suite return [expression]加了星号(*)的变量名会存放所有未命名的变量参数。如果在函数调用时没有指定参数,它就是一个空元组。我们也可以不向函数传递未命名的变量。如下实例:
#!/usr/bin/python3 # 可写函数说明 def printinfo( arg1, *vartuple ): "打印任何传入的参数" print ("输出: ") print (arg1) for var in vartuple: print (var) return; # 调用printinfo 函数 printinfo( 10 ); printinfo( 70, 60, 50 );以上实例输出结果:
输出: 10 输出: 70 60 50