key = int(input("Choose a Christmas Gift from 1 to 5!"))
if type(key) != type(0):
print("Please enter a number.")
exit()
if not (1 <= key <= 5):
print(key,"is an invalid number.")
exit()
if key == 1:
print("1 Partridge in a Pear Tree.")
elif key == 2:
print("2 Turtle Doves.")
elif key == 3:
print("3 French Hens.")
elif key == 4:
print("4 Calling Birds.")
elif key == 5:
print("5 Golden Rings.")
我已经走了这么远(我对此很陌生,我做了我在课堂上看到的一切),但是当您输入数字时,我不知道如何打印前几行。
说我输入3。
输出应为:
3 french hens.
2 turtle doves
1 partridge in a pear tree.
它应该对所有有效数字执行此操作。
编辑:我将评估更改为整数。
任何建议都可以帮助您!谢谢。
答案 0 :(得分:0)
撤消测试,使测试基于>=
,而不是==
,并且不要使用elif
(这会使通过的第一个测试阻止任何其他测试的执行),普通if
。现在,每一项通过的测试都会按顺序打印。
if key >= 5:
print("5 Golden Rings.")
if key >= 4:
print("4 Calling Birds.")
if key >= 3:
print("3 French Hens.")
if key >= 2:
print("2 Turtle Doves.")
if key >= 1:
print("1 Partridge in a Pear Tree.")
答案 1 :(得分:0)
我所做的是反转它们,以便它们从最大到最小打印,如果大于该数量,则将==打印为> =进行打印。
from sys import exit
key = int(input("Choose a Christmas Gift from 1 to 5!"))
if type(key) != type(0):
print("Please enter a number.")
exit()
if not (1 <= key <= 5):
print(key,"is an invalid number.")
exit()
if key >= 5:
print("5 Golden Rings.")
if key >= 4:
print("4 Calling Birds.")
if key >= 3:
print("3 French Hens.")
if key >= 2:
print("2 Turtle Doves.")
if key >= 1:
print("1 Partridge in a Pear Tree.")
但是,如果要扩展此功能,请执行以下操作:
from sys import exit
key = int(input("Choose a Christmas Gift from 1 to 5!"))
if type(key) != type(0):
print("Please enter a number.")
exit()
if not (1 <= key <= 5):
print(key,"is an invalid number.")
exit()
gifts = ["1 partridge in a pair tree","2 turtle doves","etc..","etc..","etc.."]
printer = [print (val) for ind,val in enumerate (gifts) if ind >=key]
打印机通过使用列表理解来工作,这与说的一样
for ind,val in enumerate(gifts):
if ind >= key:
print(val)