我试图获取它,以便elif语句仅在输入不是1,2,3,4时显示。我们刚刚了解了if和elif语句,因此我对它们仍然不确定。目前,无论输入多少数字,elif语句都会显示。
Season=input("Pick a number.(1,2,3,4): ")
if Season.lower()=='1':
print('Winter is cold.')
if Season.lower()=='2':
print('Spring is warm.')
if Season.lower()=='3':
print('Summer is hot.')
if Season.lower()=='4':
print('Fall is cool.')
elif Season.lower():
print('error')
答案 0 :(得分:1)
lower()
是不必要的,因为该函数用于将大写字母更改为小写字母。对于您的情况,您希望输入内容落入4个不同的情况下,其中任何其他情况都会产生错误。为此,您可以重组if
案例。第一个if
检查条件,如果失败,则按顺序关闭,然后检查下一个elif
。这继续在列表中。如果最后一个elif
失败了,那么它将落入else
部分。
Season=input("Pick a number.(1,2,3,4): ")
print(Season)
if Season == '1':
print('Winter is cold.')
elif Season =='2':
print('Spring is warm.')
elif Season =='3':
print('Summer is hot.')
elif Season =='4':
print('Fall is cool.')
else:
print('error')
答案 1 :(得分:0)
当前elif
仅是最后一个if
的替代项。因此,在执行所有其他if
条语句之后,您需要检查-是4
吗?如果是,秋天很酷。如果不是,则检查它是否不为空(例如,是否为1、2、3、7、13 ...),然后报错。如果为空,将不会获得任何输出。
除了第一个,您都需要elif
而不是if
;并且您需要else
而不是最后一个elif
,因为我不希望看到小写输入是否为空。
此外,请注意,将数字"1"
小写仍会得到相同的字符串:"1"
。因此,这里的下壳体操作是无用的。这不是错误,但可能会导致进一步维护中的错误,因为它不必要地增加了复杂性,而更高的复杂性则会导致更高的程序员错误率。这也会导致代码变得非常非常慢。
我还选择将您的Season
更改为season
,因为Python约定不对变量使用标题大小写。标题大小写应用于类名。有时在翻译公式时将大写字母用于变量,例如L
;但这不是事实。
season=input("Pick a number.(1,2,3,4): ")
if season=='1':
print('Winter is cold.')
elif season=='2':
print('Spring is warm.')
elif season=='3':
print('Summer is hot.')
elif season=='4':
print('Fall is cool.')
else:
print('error')
答案 2 :(得分:0)
将第二个开始的所有if
更改为elif
,最新的elif
应该为else
(因此从{删除Season.lower()
{1}}行)
在这种情况下,当数字为1、2或3时,所有情况都将是else
语句上的True
(对于任何非空字符串,则为elif
返回bool(x)
)
您可能想进一步研究控制流。
顺便说一句,在这种情况下不需要True
,并且变量名应使用所有非大写字母。