python函数定义方法
def fo(x):
""" 这是一个函数的注释 """
if x > 1:
x -= 1
else:
x += 1
return x
def 定义函数的关键字
fo 函数名字
() 括号内,可定义形参
return 定义返回值
# python中的函数返回值,可以理解去超市买东西,可以逛一圈超市,什么都不买出来(函数返回None),
# 也可以买一件东西(返回一个值(object)),也可以买很多东西(返回很多值(元祖))
def returnNone():
print("returnOne")
def returnOne():
print("returnOne")
return "one"
def returnMuch():
print("returnMuch")
return "xiong","ba","tian","xia"
v1 = returnNone()
v2 = returnOne()
v3 = returnMuch()
print(v1)
print(v2)
print(v3)
def printParam(x, y, z):
print(x)
print(y)
print(z)
# 位置参数
printParam(4,5,6)
# 关键字参数
printParam(z=4,y=5,x=6)
# arg="default"是默认参数,默认值是"default"
def defaultPara(x, arg="default"):
print(x)
print(arg)
defaultPara("tianxia")
defaultPara("tianxia", arg="heping")
# 参数组 **字典 *列表
def paraGroup(x, *args):
print(x)
print(args)
paraGroup("tianx")
# 不加*号,会把['x','t','h','h']当成元素的一个元素
paraGroup("tianx", ['x','t','h','h'])
# 加上*号,可以理解成解释器遍历列表,把列表中每个元素加到arg中
paraGroup("tianx", *['x','t','h','h'])
def paraGroupTow(x, **kwargs):
print(x)
print(kwargs)
paraGroupTow(1, name="张飞", sex="男")
# * 和 ** 一起使用, 个人感觉 kw:是kew word的缩写
def paraGroupMul(x, *args, **kwargs):
print(x)
print(args)
print(kwargs)
paraGroupMul("xia",1,2,3,4,5,6,name="张飞", sex="男")
paraGroupMul("xia",*(1,2,3,4,5,6),**{"xia":"张飞", "sex":"男"})
不同于java, python函数之间可以嵌套
# 不同于java, 定义的函数,没有先后顺序区分
def guanyu():
name = "关羽"
things = name + "刀斩" + chezhou() # 可以调用,后面定义的函数
print(things)
def chezhou():
name = "车胄"
return name
guanyu()