Python3中如何判断随机选取的变量是否存在于指定列表中
Python 3 判断变量是否存在于列表的方法
核心判断逻辑直接使用变量 in 目标列表的语法即可,该表达式会返回布尔值,存在返回True,不存在返回False。
你提供的示例代码无法得到预期输出,存在几个可修复的问题:
- 未导入
random模块,调用random.choice会直接报错 - 变量作用域错误:
TankPick函数内赋值的Tank是局部变量,全局的Tank始终是空元组,BalancePick读取到的一直是空元组,判断逻辑永远不成立 - 拼写错误:
Artemis缺字符串引号,MageList、HunterList调用时写成了小写的Magelist、Hunterlist,Python大小写敏感会触发变量未定义错误 - 随机选择范围不符合预期:原
TankPick仅从WarriorList选角色,永远不会出现你预期的选到Ymir的情况
修正后可直接运行的代码如下:
import random WarriorList = ['Achilles', 'Sun Wukong'] GuardianList = ['Ares', 'Ymir'] HunterList = ['Apollo', 'Artemis'] MageList = ['Anubis', 'ra'] Tank = "" def TankPick(): global Tank # 合并战士和守卫列表作为坦克可选池,匹配两种预期输出场景 Tank = random.choice(WarriorList + GuardianList) print(Tank) def BalancePick(): if Tank in WarriorList: print('yes') print(random.choice(MageList)) else: print('no') print(random.choice(HunterList)) # 执行函数 TankPick() BalancePick()
运行后会匹配你给出的两种预期输出:
情况1(选中战士列表角色)输出示例:
Sun Wukong yes ra
情况2(选中守卫列表角色)输出示例:
Ymir no Artemis
内容的提问来源于stack exchange,提问作者DoubleDot
相关产品推荐
相关产品推荐

