Python语法if语句
我现在有Python语法if语句,python,if-statement,Python,If Statement,我现在有 seq1 = "--MFA" seq2= "--MFU" for i in range(0, len(seq1)): if seq1[i] or seq2[i] == '-': print "hi" else: print "bye" 为什么它会打印5次“hi”(即使seq1[i]和seq1[i]是M、F、A/U)。起初我认为这是一个正则表达式问题,但即使避开连字符也会产生相同的结果 if seq1[i] or seq2[i]
seq1 = "--MFA"
seq2= "--MFU"
for i in range(0, len(seq1)):
if seq1[i] or seq2[i] == '-':
print "hi"
else:
print "bye"
为什么它会打印5次“hi”(即使seq1[i]和seq1[i]是M、F、A/U)。起初我认为这是一个正则表达式问题,但即使避开连字符也会产生相同的结果
if seq1[i] or seq2[i] == '-':
此条件表示如果seq1[i]
为真或seq2[i]='-'
执行以下操作。在这种情况下,seq1[i]是正确的5倍。然后,它会打印“hi”5次
此条件表示如果
seq1[i]
为真或seq2[i]='-'
执行以下操作。在这种情况下,seq1[i]是正确的5倍。然后,它打印“hi”5次。如果seq1[i]或seq2[i]='-':
指:
if(seq1[i])或(seq2[i]='-'):
如果seq[i]
的值为True
(即,如果bool(seq1[i])==True
),则条件语句将立即为True,因为或。使用或
运算符,如果一侧为True
,则条件运行
请注意,bool(seq1[i])
将始终为True,因为任何长度的字符串都被视为True
因此,将打印'hi'
。如果seq1[i]或seq2[i]='-':
指:
if(seq1[i])或(seq2[i]='-'):
如果seq[i]
的值为True
(即,如果bool(seq1[i])==True
),则条件语句将立即为True,因为或。使用或
运算符,如果一侧为True
,则条件运行
请注意,bool(seq1[i])
将始终为True,因为任何长度的字符串都被视为True
因此,'hi'
被打印出来。这里有许多可供选择的选项
if '-' in (seq1[i], seq2[i]):
简洁,但读起来很有趣
if seq1[i] == '-' or seq2[i] == '-':
感觉更自然
使用zip
for i, j in zip(seq1, seq2):
if i == '-' or j == '-':
print "hi"
else:
print "bye"
如果将更多序列循环在一起,扩展比较的一个好方法是使用any
for item in zip(seq1, seq2, seq3, seq4, ...):
if any(i == '-' for i in item):
print "hi"
else:
print "bye"
这里有许多可供选择的方法
if '-' in (seq1[i], seq2[i]):
简洁,但读起来很有趣
if seq1[i] == '-' or seq2[i] == '-':
感觉更自然
使用zip
for i, j in zip(seq1, seq2):
if i == '-' or j == '-':
print "hi"
else:
print "bye"
如果将更多序列循环在一起,扩展比较的一个好方法是使用any
for item in zip(seq1, seq2, seq3, seq4, ...):
if any(i == '-' for i in item):
print "hi"
else:
print "bye"
如有疑问,请使用REPL(空闲或在shell中)并键入'-'或'2'>>'-'
'-'或'2'='-'>>'-'
因此您可以猜测它总是返回左侧部分,因为它被解释为True。如果有疑问,请使用REPL(空闲或在shell中)并键入'-'或'2'>>'-'
'-'或'2'='-'>>'-'
因此您可以猜测它总是返回左边的部分,因为它被解释为True。