<p>检查4位代码中的每个数字是否在这两个值之间。但每个数字都在0-9之间,因此这不是真的。好吧,不是在这两个值之间的persay你的第一个if条件<code>if x > max</code>是简单检查数字是否大于<code>9999</code>,然后返回True。您需要使用and/or>;运算符将条件嵌套在一起,以检查此范围之间的数字。你知道吗</p>
<p>您不应该将这两个变量命名为<code>min</code>和<code>max</code>,因为它们内置在python中,您正在重写功能。你也可以结合你的情况。如果您不希望接受值的范围是包含的,只需在下面的条件中使用<code><=</code>中的<code>=</code>来排除<code>9999</code>和<code>1000</code></p>
<p>您可以在原始if条件中去掉多余的<code>is True</code>,因为只要执行<code>if (expression)</code>就可以评估它的真值或“真实性”。你知道吗</p>
<p>我添加了一个while循环,它会不断提示用户输入4位代码,直到它们的长度确实是4位有效数字,以防止其他函数出错并验证输入。你知道吗</p>
<p>实际上,您甚至不需要<code>else: return False</code>,因为不返回任何内容将返回<code>None</code>,并且在if条件下被评估为<em>不</em>为真,但我将此保留为使其接近原始值。您可以将min和max声明为全局(或main()中的local)函数,任意一个,如果希望简洁,只需使用<code>if _min <= int(digitCode) <= _max</code>。你知道吗</p>
<pre><code>def choiceTwo(digitCode):
_max = 9999
_min = 1000
if _min <= digitCode <= _max:
return True
else:
return False
def main():
digitCode = input("Please enter a 4 digit code: ")
while not (digitCode.isdigit() and len(digitCode) == 4):
digitCode = input("Please enter a 4 digit code: ")
if choiceTwo(int(digitCode)):
print("Number is verified!")
else:
print("ERROR not a valid ")
main()
</code></pre>