如何在if条件判断中为输入变量接受多个选项答案?
如何让if条件接受多个可选项作为有效输入
嘿,我注意到你想让代码的if条件能匹配多个不同大小写的答案,但你的示例代码存在一个逻辑错误哦——or 'TRANSPORT' or 'transport'这部分的写法不对,因为非空字符串在布尔判断里会被直接判定为True,所以不管player_ship是什么值,这个条件都会成立,根本起不到筛选的作用!
下面给你几种靠谱的实现方式:
方法1:明确的多条件比较
把每个可接受的值都和变量做相等判断,用or连接:
if player_ship == 'Transport' or player_ship == 'TRANSPORT' or player_ship == 'transport': print('You successfully purchased a Transport Ship!')
这种写法直观,但如果可选项很多的话,代码会显得冗长。
方法2:使用集合的in操作符
把所有可接受的值放进一个集合(或列表),用in判断变量是否在集合内,集合的查找效率更高:
accepted_ships = {'Transport', 'TRANSPORT', 'transport'} if player_ship in accepted_ships: print('You successfully purchased a Transport Ship!')
这种方式更整洁,后续要添加新的可选项也很方便,直接往集合里加就行。
方法3:统一转换大小写(最省心的方式)
如果只是大小写不同的话,直接把输入变量转换成小写(或大写),再和统一格式的目标值比较:
if player_ship.lower() == 'transport': print('You successfully purchased a Transport Ship!')
这种写法最简洁,不管用户输入的是Transport、TRANSPORT还是tRaNsPoRt,都能匹配成功,完全不用枚举所有大小写组合~
内容的提问来源于stack exchange,提问作者gsutton111
相关产品推荐
相关产品推荐

