Skip to main content
 首页 » 编程设计

Python之新手 : Why this simple if-elif (replication of the C case block) always produces the same result

2025年05月04日9lyj

这里是初学者。每当我输入指定的字符串时,任何人都可以解释和/或帮助我修改此 Python 代码以生成正确的输出吗?例如,如果输入 March,则输出“02”。目前,程序始终输出 00,表示一月,无论输入如何。这是代码:

x = raw_input("Starting Month: ") 
 
if x == "January" or "january": 
   stMonth = '00' 
elif x == "February" or "february": 
    stMonth = '01' 
elif x == "March" or "march": 
    stMonth = '02' 
elif x == "April" or "april": 
    stMonth = '03' 
elif x == "May" or "may": 
    stMonth = '04' 
elif x == "June" or "june": 
    stMonth = '05' 
elif x == "July" or "june": 
    stMonth = '06' 
elif x == "August" or "august": 
    stMonth = '07' 
elif x == "September" or "september": 
    stMonth = '08' 
elif x == "October" or "october": 
    stMonth = '09' 
elif x == "November" or "november": 
    stMonth = '10' 
elif x == "December" or "december": 
    stMonth = '11' 
else: 
    print "error" 
print stMonth 

输出:

$ python month.py  
Starting Month: march 
00 

提前致谢 - 非常非常感谢您的帮助!

请您参考如下方法:

因为 or优先级高于 == : x == 'january' or 'January'实际上与 (x == 'january') or 'January' 相同, 以及 'January'评估为 true ,组合语句始终为真。

您应该将每个语句更改为 x == 'january' or x == 'January' .