-
注:函数的内容称为函数体,函数体是多条python语句组成的
简单的一个print函数
In [25]: def myfunc():
...: for i in range(3):
...: print("煤煤是小乖猫")
...:
# 效果
In [26]: myfunc()
煤煤是小乖猫
煤煤是小乖猫
煤煤是小乖猫
传入参数
In [27]: def myfunc(name):
...: for i in range(3):
...: print(f"i love {name}.")
...:
# 效果
In [28]: myfunc("煤煤")
i love 煤煤.
i love 煤煤.
i love 煤煤.
# 传参 并 指定次数
In [30]: myfunc("煤煤", 5)
i love 煤煤.
i love 煤煤.
i love 煤煤.
i love 煤煤.
i love 煤煤.
数学运算(return 会直接返回结果 后面不在执行)
# 第一种写法
In [31]: def div(x,y):
...: z = x / y
...: return z
...:
In [32]: div(4,2)
Out[32]: 2.0
# 第二种写法(比较方便)
In [33]: def div(x,y):
...: return x / y
...:
In [34]: div(4,2)
Out[34]: 2.0
# 优化增加判断(除数不能为0)
In [36]: def div(x,y):
...: if y == 0:
...: return "除数不能为0!"
...: else:
...: return x / y
...:
In [37]: div(4,2)
Out[37]: 2.0
In [38]: div(4,0)
Out[38]: '除数不能为0!'
位置参数:定位
In [42]: def myfunc(s, vt, o):
...: return "".join((o, vt, s))
...:
# 指定参数运行,返回的数值join是反过来的,所以结果就是反的
In [45]: myfunc("我","亲了","煤煤")
Out[45]: '煤煤亲了我'
# 关键字参数(知道name后就可以指定参数对应了)
In [46]: myfunc(o="我",vt="亲了",s="煤煤")
Out[46]: '我亲了煤煤'
位置参数必须在关键字参数之前
# 位置参数和关键字参数反了就会报错
In [47]: myfunc(o="我","摸了摸","煤煤")
Input In [47]
myfunc(o="我","摸了摸","煤煤")
^
SyntaxError: positional argument follows keyword argument
# 关于默认参数,这样写就不会报错,因为关键字参数在最后面
In [48]: def myfunc(s, vt, o="煤煤"):
...: return "".join((o, vt, s))
...:
In [49]: myfunc("焦焦","摸了摸")
Out[49]: '煤煤摸了摸焦焦'
In [50]: myfunc("焦焦","摸了摸","流浪猫")
Out[50]: '流浪猫摸了摸焦焦'
# 默认参数要放在最后面,不然就会报错
In [51]: def myfunc(s="焦焦", vt, o="煤煤"):
...: return "".join((o, vt, s))
Input In [51]
def myfunc(s="焦焦", vt, o="煤煤"):
^
SyntaxError: non-default argument follows default argument
In [52]: def myfunc(vt="", s="焦焦", o="煤煤"):
...: return "".join((o, vt, s))
...:
In [53]: myfunc("摸了摸")
Out[53]: '煤煤摸了摸焦焦'
冷知识:斜杠左面不能使用关键字参数,只能使用位置参数
# 例如:abs和sum这两个函数都有一个斜杠
In [54]: help(abs)
Help on built-in function abs in module builtins:
abs(x, /)
Return the absolute value of the argument.
In [55]: help(sum)
Help on built-in function sum in module builtins:
sum(iterable, /, start=0)
Return the sum of a 'start' value (default: 0) plus an iterable of numbers
When the iterable is empty, return the start value.
This function is intended specifically for use with numeric values and may
reject non-numeric types.
# 例如abs ,关键字参数在前就会报错
In [56]: abs(-1.5)
Out[56]: 1.5
In [57]: abs(x = -1.5)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Input In [57], in <cell line: 1>()
----> 1 abs(x = -1.5)
TypeError: abs() takes no keyword arguments
# 自己定义的函数也可以这样用斜杠定义参数
In [60]: def abc(a , / , b , c):
...: print(a, b, c)
...:
In [61]: abc(1,2,3)
1 2 3
In [62]: abc(a=1,2,3)
Input In [62]
abc(a=1,2,3)
^
SyntaxError: positional argument follows keyword argument
In [63]: abc(3,b=2,c=1)
3 2 1
标签:...,myfunc,return,函数,Python,煤煤,def,Out
From: https://www.cnblogs.com/2ich4n/p/18104876