问题描述
为什么它不起作用?它应该在这里工作
def say_hi(P1,P2 = None,P3 = None,P4 = None,P5 = None):
if [P2,P3,P4,P5] is [not None,None,None]:
print(f'hi {P1}')
print(f'hi {P2}')
say_hi('Jack','Rose')
为什么我的代码不起作用? 它什么都不执行
解决方法
检查您的位置“not”。
这是答案。
def say_hi(P1,P2 = None,P3 = None,P4 = None,P5 = None):
if [P2,P3,P4,P5] is not [None,None,None]:
print(f'hi {P1}')
print(f'hi {P2}')
say_hi('Jack','Rose')
,
表示这两个对象是同一个对象。不是平等的。 你需要“==”。 https://dbader.org/blog/difference-between-is-and-equals-in-python
试试这个。
def say_hi(*P):
for p in P:
print(f'hi {p}')
say_hi('Jack','Rose')
您可以使用您需要的参数数量调用函数。所有这些参数都将是数组“P”的元素。
您可以阅读 this 关于 python 函数和参数。