Noob Python脚本 - 减少脚本堆

时间:2014-08-21 15:13:21

标签: python optimization

Python noob在这里,我只是想知道是否有人可以帮我把这个剧本剪下来。

我试过了:

if letter == 'A' or 'B' or 'C' 但它似乎没有用。

所以如果字母是A,B或C打印"你好"
或者如果字母是D,E或F打印再见。

任何帮助都会很棒。

干杯

if letter == 'A':
    print "Hello"
if letter == 'B':
    print "Hello"
if letter == 'C':
    print "Hello"              
if letter == 'D':
    print "GoodBye"
if letter == 'E':
    print "GoodBye"       
if letter == 'F':
    print "GoodBye"

2 个答案:

答案 0 :(得分:5)

要减少重复,请使用in

if letter in ('A', 'B', 'C'):
    print "Hello"
elif letter in ('D', 'E', 'F'):
    print "GoodBye"

答案 1 :(得分:4)

if letter  in 'ABC': # if letter is in ABC we will print Hello and go no further
    print "Hello"             
elif letter in 'DEF': # if letter is not in ABC we will get here 
    print "GoodBye"
else:  # else it is in neither string 
    print "letter not in any string"

elif's仅在前面的if语句为False时进行评估,使用in我们可以将检查缩短为每个结果的一个语句,如果我们没有匹配对于ABCDEF,我们将以else结尾,并让用户知道该字母不在ABCDEF中。

if letter == 'A' or 'B' or 'C'需要:

`if letter == 'A' or  letter == 'B' or letter =='C'` 

在您的情况下,if letter == 'A' or 'B' or 'C'始终为True,因此,无论是ABC还是print Hello,您都会if letter.upper()

如果用户输入ab等,您可能还想使用{{1}}。