我認為必須有一個簡單的解決方案,但我找不到。如果用戶輸入等于串列中的一個元素,則 if 陳述句的計算結果應為true:
animalslist = ['bear', 'giraffe', 'wolf', 'lion', 'rabbit', 'monkey', 'scorpion']
animalnumber = int(input("\nEnter a number between 0 and 6 inclusive.\n"))
print "You have summoned a %s..." % animalslist[animalnumber]
if animalslist[animalnumber] == "scorpion" or "wolf" or "lion" or "bear":
#or perhaps using the integer - if animalslist[animalnumber] == 0 or 2 or 3 or 5:
print "That is a vicious predator. You = dinner. The End.\n\n"
else:
...
uj5u.com熱心網友回復:
您可以使用另一個串列。例子:
animalslist = ['bear', 'giraffe', 'wolf', 'lion', 'rabbit', 'monkey', 'scorpion']
predatorlist = ["scorpion", "wolf", "lion", "bear"]
if animalslist[animalnumber] in predatorlist:
print "That is a vicious predator. You = dinner. The End.\n\n"
uj5u.com熱心網友回復:
你可以這樣做:
animalslist = ['bear', 'giraffe', 'wolf', 'lion', 'rabbit', 'monkey', 'scorpion']
animalnumber = int(input("\nEnter a number between 0 and 6 inclusive.\n"))
predators = {"scorpion", "wolf", "lion", "bear"}
print "You have summoned a %s..." % animalslist[animalnumber]
if animalslist[animalnumber] in predators:
print "That is a vicious predator. You = dinner. The End.\n\n"
else:
...
uj5u.com熱心網友回復:
另一種方法是重組您的資料,了解您的用途。這在語意方面與@JhanzaibHumayun 的回答沒有什么不同,而是另一種思考方式:
animals = {
'bear': True,
'giraffe': False,
'wolf': True,
'lion': True,
'rabbit': False,
'monkey': False,
'scorpion': True,
}
choice = int(input(f"\nEnter a number between 0 and {len(animals)} inclusive.\n"))
summoned = [*animals][choice]
print f"You have summoned a {summoned}..."
if animals.get(summoned):
print f"Summoned is a vicious predator. You = dinner. The End. \n\n"
這將有關動物的資料以及它們是否是捕食者(真/假)關聯到一個資料結構中。這與將其存盤在兩個串列中的計算成本差不多,并且可能節省了一些記憶體。您可以通過存盤超出其捕食者性質的其他資訊來更進一步,盡管此時您可能需要考慮資料類。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/465432.html
