擅长:python、mysql、java
<p>我相信你的问题在于<code>if</code>语句的条件句,比如<code>if choice2 == "Yes" or "yes" or "y"</code>。这看起来像是要检查<code>choice2</code>是<code>"Yes"</code>还是<code>choice2</code>是<code>"yes"</code>还是<code>choice2</code>是<code>"y"</code>,但不是这样。问题是<code>or</code>语句。代码中的<code>if</code>语句可以写成<code>if (choice2 == "Yes") or ("yes") or ("y")</code>,并且具有相同的含义。这使得更容易看出,即使<code>choice2</code>不等于<code>Yes</code>,表达式也将为真,因为字符串<code>"yes"</code>是非空的,因此在<code>if</code>语句中转换为<code>True</code>。这是因为python中的<code>or</code>操作符是一个布尔值,或者,如果操作符的任意一方(转换为布尔值)为true,则表达式为true。解决这个问题的最简单方法(即最少的代码重构)是一系列<code>==</code>:</p>
<p><code>if choice2 == "Yes" or choice2 == "yes" or choice2 == "y": #...</code></p>
<p>还有其他的,但是对于像你这样的简单的is程序来说,这应该可以做到。如果您需要做越来越复杂的匹配,您应该研究字符串运算符。例如,您的表达式可以重写为<code>if "yes".startswith(choice2.lower()): #...</code>,但是在不理解它的情况下不要使用它。对于像您这样大小的程序,链式的<code>==</code>就可以了。希望这有帮助!你知道吗</p>