【发布时间】:2021-07-13 22:32:29
【问题描述】:
如果它通过一系列 if-elif 语句,我想执行相同的任务。
下面是我想要实现的一个示例。该程序运行时没有错误,但我想知道是否有更简单的方法可以将continue_program 分配给Yes,如果满足其中一个条件,则无需多次输入。
word_form = "A string!"
continue_program = "No"
number = 2
if number == 1:
word_form = "one"
continue_program = "Yes"
elif number == 2:
word_form = "two"
continue_program = "Yes"
elif number == 3:
word_form = "three"
continue_program = "Yes"
【问题讨论】:
-
你可以说
continue_program = number in (1,2,3),但我不相信它比你现在拥有的更好。 -
你考虑过反转逻辑吗?不要去想告诉你什么时候
continue_program应该是True的规则,想想那个告诉你什么时候应该是False的规则。然后您应该能够看到一种将其附加到其余代码的简单方法。 -
如果我这样做,我会把那些
word_form的东西放在字典里,然后做if number in word_forms:/word_form = word_forms[number]/continue_program = True。 -
为了阐明我想要实现的目标,我稍微编辑了代码。我使用布尔值作为虚拟示例,但我将数据类型更改为字符串以澄清我为什么感到困惑。
-
我会在
if语句之前将标志设置为 True,如果它到达else子句,这意味着它永远不会匹配。