我的 python 代码如果 [P2, P3, P4, P5] 是 [not None, None, None, None] 它应该工作但不是
my pyhon code if [P2, P3, P4, P5] is [not None, None, None, None] it should work but isnt
为什么不起作用?它应该在这里工作
def say_hi(P1, P2 = None, P3 = None, P4 = None, P5 = None):
if [P2, P3, P4, P5] is [not None, None, None, None]:
print(f'hi {P1}')
print(f'hi {P2}')
say_hi('Jack', 'Rose')
为什么我的代码不起作用?
它什么都不执行
检查你“不”的位置。
答案在这里。
def say_hi(P1, P2 = None, P3 = None, P4 = None, P5 = None):
if [P2, P3, P4, P5] is not [None, 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 函数和参数的内容。
为什么不起作用?它应该在这里工作
def say_hi(P1, P2 = None, P3 = None, P4 = None, P5 = None):
if [P2, P3, P4, P5] is [not None, None, None, None]:
print(f'hi {P1}')
print(f'hi {P2}')
say_hi('Jack', 'Rose')
为什么我的代码不起作用? 它什么都不执行
检查你“不”的位置。
答案在这里。
def say_hi(P1, P2 = None, P3 = None, P4 = None, P5 = None):
if [P2, P3, P4, P5] is not [None, 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 函数和参数的内容。