请注意,本文编写于 973 天前,最后修改于 973 天前,其中某些信息可能已经过时。
Python | “/”在函数中的作用
函数有位置参数和关键字参数,在定义形参的时候可以使用/
规定/
的左边不能传递关键字参数,只能传递位置参数。右边关键字位置参数任意使用
def car_velocity(S,/,t):
return S/t
S = int(input("请输入车的位移"))
t = int(input("请输入所用的时间"))
print(f"车的平均速度为{car_velocity(S,t=t)}")
输出:
请输入车的位移6
请输入所用的时间2
车的平均速度为3.0
如果尝试在/
左边使用关键字参数
def car_velocity(S,/,t):
return S/t
S = int(input("请输入车的位移"))
t = int(input("请输入所用的时间"))
print(f"车的平均速度为{car_velocity(S=S,t=t)}")
输出:
发生异常: TypeError
car_velocity() got some positional-only arguments passed as keyword arguments: 'S'
File "C:\Users\19736\Desktop\python\学习\2022-4-1-2022-4-23\function-1.py", line 6, in <module> print(f"车的平均速度为{car_velocity(S=S,t=t)}")
Python | “*”在函数中的作用
在定义形参的时候可以使用*
规定*
的右边不能传递位置参数,只能关键字参数。左边关键字位置参数任意使用
def car_velocity(S,*,t):
return S/t
S = int(input("请输入车的位移"))
t = int(input("请输入所用的时间"))
print(f"车的平均速度为{car_velocity(S=S,t=t)}")
输出:
请输入车的位移6
请输入所用的时间3
车的平均速度为2.0
如果尝试在/
右边使用位置参数
def car_velocity(S,*,t):
return S/t
S = int(input("请输入车的位移"))
t = int(input("请输入所用的时间"))
print(f"车的平均速度为{car_velocity(S=S,t)}")
输出:
Traceback (most recent call last):
File "C:\Users\19736\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Users\19736\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "c:\Users\19736\.vscode\extensions\ms-python.python-2022.4.1\pythonFiles\lib\python\debugpy\__main__.py", line 45, in <module>
cli.main()
File "c:\Users\19736\.vscode\extensions\ms-python.python-2022.4.1\pythonFiles\lib\python\debugpy/..\debugpy\server\cli.py", line 444, in main
run()
File "c:\Users\19736\.vscode\extensions\ms-python.python-2022.4.1\pythonFiles\lib\python\debugpy/..\debugpy\server\cli.py", line 285, in run_file
runpy.run_path(target_as_str, run_name=compat.force_str("__main__"))
File "C:\Users\19736\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 267, in run_path
code, fname = _get_code_from_file(run_name, path_name)
File "C:\Users\19736\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 242, in _get_code_from_file
code = compile(f.read(), fname, 'exec')
File "c:\Users\19736\Desktop\python\学习\2022-4-1-2022-4-23\function-1.py", line 6
(car_velocity(S=S,t))
^
SyntaxError: f-string: positional argument follows keyword argument
总结
- 定义形参的时候可以使用
/
或*
来规定实参的输入 - 在
/
左边只能使用位置参数,右边任意 - 在
*
右边只能使用位置参数,左边任意
1 条评论
一般来说只用到和*就差不多了啦
|´・ω・)ノ