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. 定义形参的时候可以使用/*来规定实参的输入
  2. /左边只能使用位置参数,右边任意
  3. *右边只能使用位置参数,左边任意
最后修改:2022 年 04 月 23 日
如果觉得我的文章对你有用,请随意赞赏