如何識別隨機選擇的變數是否在串列中?蟒蛇 3
例子:
WarriorList = ['Achilles', 'Sun Wukong']
GuardianList = ['Ares', 'Ymir']
HunterList = ['Apollo', Artemis']
MageList = ['Anubis', 'ra']
Tank = ()
def TankPick():
Tank = (random.choice(WarriorList))
print (Tank)
def BalancePick():
if (Tank) in WarriorList:
print ('yes')
print (random.choice(Magelist))
else:
print ('no')
print (random.choice(Hunterlist))
預期結果:
'Sun Wukong'
'yes'
'ra'
或者
'Ymir'
'no'
'Artemis'
uj5u.com熱心網友回復:
如何識別隨機選擇的變數是否在串列中?蟒蛇 3
簡單:x in y,x您要檢查的元素在哪里,y是您的可迭代值。
但是,您的代碼還有一些其他問題。你定義了兩個永遠不會被呼叫的函式,它們都沒有回傳任何值。您有多個Tank變數,它們不會像您認為的那樣作業。這些變數只存在于定義它們的函式范圍內。函式完成后,相應的Tank變數被銷毀。同時,您在函式之外(在“全域范圍”中)宣告的那個只設定為一個空元組,然后永遠不會改變,因為其他Tank變數再次被限制在它們各自的函式范圍內。如果你絕對必須,你應該global在函式中宣告它們- 或者更好的是,正確地將它們用作函式引數和回傳值。
uj5u.com熱心網友回復:
我不完全明白你正在努力的最終產品是什么,但我繼續努力并盡我所能!
import random
WarriorList = ['Achilles', 'Sun Wukong']
GuardianList = ['Ares', 'Ymir']
HunterList = ['Apollo', 'Artemis']
MageList = ['Anubis', 'ra']
class Container:
def __init__(self):
self.Tank = ()
def TankPick(self):
# Grabs a random name from all of the lists included
self.Tank = (random.choice(WarriorList GuardianList HunterList MageList))
print (self.Tank)
def BalancePick(self):
if self.Tank in WarriorList:
print ("yes\n" random.choice(MageList))
# \n is new line
else:
print ("no\n" random.choice(HunterList))
cr = Container()
# Runs TankPick inside of Container
cr.TankPick()
# Runs BalancePick inside of Container after TankPick
cr.BalancePick()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/335415.html
上一篇:如何獲取嵌套串列中的元素計數?
