能否在单个if语句中为不同条件分支分配不同变量值?
解决方案:在单个条件结构中实现多条件赋值并避免重复代码
当然可以在单个条件判断结构里实现需求,不用写三次独立的if语句,下面给你两种实用的实现方式:
方法一:用字典映射(推荐,扩展性强)
把你的输入值(r、t、y)和对应的目标值做一个映射,先判断输入是否在有效集合里,再直接取值赋值,代码简洁还方便后续新增条件:
# 先定义输入与目标值的映射关系 value_mapping = {r: 1, t: 2, y: 3} # y对应的数值可以根据你的需求调整 if p in value_mapping: p = value_mapping[p] print('Great, but the computer is now choosing their COUTER ATTACK! all the best >:)') z += 1 else: # 这里写处理无效p输入的逻辑 print("Invalid input!")
方法二:在if块内嵌套子条件判断
如果你的条件不多,也可以在同一个外层if里用elif区分不同子条件,这样逻辑更直观:
if p == r or p == t or p == y: print('Great, but the computer is now choosing their COUTER ATTACK! all the best >:)') z += 1 # 内部嵌套子条件赋值 if p == r: p = 1 elif p == t: p = 2 elif p == y: p = 3 # 自定义y对应的赋值 else: # 处理无效输入 print("Invalid input!")
另外补充下术语:你的表述没问题,更精准的说法是在同一个条件判断结构中,根据不同子条件为变量分配不同值,不影响理解~
内容的提问来源于stack exchange,提问作者Za Za
相关产品推荐
相关产品推荐

