print()
。但你也可以自己创建函数,这被叫做用户自定义函数。你可以定义一个由自己想要功能的函数,以下是简单的规则:
def
关键词开头,后接函数标识符名称和圆括号 ()
。return [表达式]
结束函数,选择性地返回一个值给调用方。不带表达式的return
相当于返回 None
。一般格式如下:
def 函数名(参数列表):
函数体
我们尝试使用函数来解决一些问题,例如:
# 计算面积函数
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 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。
python 函数的参数传递:
python 中一切都是对象,严格意义我们不能说值传递还是引用传递,我们应该说传不可变对象和传可变对象。
def ChangeInt( a ):
a = 10
b = 2
ChangeInt(b)
print( b ) # 结果是 2
可变对象在函数里修改了参数,那么在调用这个函数的函数里,原始的参数也被改变了。例如:
# 可写函数说明
def changeme( mylist ):
"修改传入的列表"
mylist.append([1,2,3,4])
print ("函数内取值: ", mylist)
return
# 调用changeme函数
mylist = [10,20,30]
changeme( mylist )
print ("函数外取值: ", mylist)
'''
传入函数的和在末尾添加新内容的对象用的是同一个引用。故输出结果如下:
'''
# 函数内取值: [10, 20, 30, [1, 2, 3, 4]]
# 函数外取值: [10, 20, 30, [1, 2, 3, 4]]
printme()
函数,你必须传入一个参数,不然会出现语法错误:#可写函数说明
def printme( str ):
"打印任何传入的字符串"
print (str)
return
# 调用 printme 函数,不加参数会报错
printme()
'''
输出结果为:
Traceback (most recent call last):
File "test.py", line 10, in
printme()
TypeError: printme() missing 1 required positional argument: 'str'
'''
printme()
调用时使用参数名:#可写函数说明
def printme( str ):
"打印任何传入的字符串"
print (str)
return
#调用printme函数
printme( str = "哈哈哈哈")
# 哈哈哈哈
#可写函数说明
def printinfo( name, age ):
"打印任何传入的字符串"
print ("名字: ", name)
print ("年龄: ", age)
return
#调用printinfo函数
printinfo( age=50, name="abcdef" )
'''
名字: abcdef
年龄: 50
'''
age
参数,则使用默认值:#可写函数说明
def printinfo( name, age = 35 ):
"打印任何传入的字符串"
print ("名字: ", name)
print ("年龄: ", age)
return
#调用printinfo函数
printinfo( age=50, name="abcdef" )
print ("------------------------")
printinfo( name="abcdef" )
'''
名字: runoob
年龄: 50
------------------------
名字: runoob
年龄: 35
'''
def functionname([formal_args,] *var_args_tuple ):
"函数_文档字符串"
function_suite
return [expression]
*
的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数。# 可写函数说明
def printinfo( arg1, *vartuple ):
"打印任何传入的参数"
print ("输出: ")
print (arg1)
print (vartuple)
# 调用printinfo 函数
printinfo( 70, 60, 50 )
'''
输出:
70
(60, 50)
'''
python 使用 lambda 来创建匿名函数。
所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。
lambda
函数的语法只包含一个语句,如下:
lambda [arg1 [,arg2,.....argn]]:expression
如下实例:
# 可写函数说明
sum = lambda arg1, arg2: arg1 + arg2
# 调用sum函数
print ("相加后的值为 : ", sum( 10, 20 ))
print ("相加后的值为 : ", sum( 20, 20 ))
'''
相加后的值为 : 30
相加后的值为 : 40
'''
return [表达式]
语句用于退出函数,选择性地向调用方返回一个表达式。不带参数值的return
语句返回None
。之前的例子都没有示范如何返回数值,以下实例演示了 return
语句的用法:
# 可写函数说明
def sum( arg1, arg2 ):
# 返回2个参数的和."
total = arg1 + arg2
print ("函数内 : ", total)
return total
# 调用sum函数
total = sum( 10, 20 )
print ("函数外 : ", total)
'''
函数内 : 30
函数外 : 30
'''
学习参考资料:
https://www.runoob.com/python3/python3-function.html