<p>我一直在用Python制作一个基本的计算器,我遇到了这个问题。计算完成后,始终打印“无效数字”,然后暂停。我认为这与新线突破if</strong>区块有关,但我不确定</p>
<p>任何帮助都将不胜感激。
提前谢谢</p>
<pre><code>def badnum():
print("Invalid Number")
print("Press enter to continue")
input("")
def main():
print("Select an action ")
print("1.) Add")
print("2.) Subtract")
print("3.) Multiply")
print("4.) Divide")
ac = int(input(">>>"))
if ac == 1:
print("First number :")
fn = float(input(">>>"))
print("Second number :")
sn = float(input(">>>"))
a = fn+sn
print(a)
if ac == 2:
print("First number :")
fn = float(input(">>>"))
print("Second number :")
sn = float(input(">>>"))
a = fn-sn
print(a)
if ac == 3:
print("First number :")
fn = float(input(">>>"))
print("Second number :")
sn = float(input(">>>"))
a = fn*sn
print(a)
if ac == 4:
print("First number :")
fn = float(input(">>>"))
print("Second number :")
sn = float(input(">>>"))
a = fn/sn
print(a)
else:
badnum()
print("\n"*100)
while True:
try:
main()
except ValueError:
badnum()
except ZeroDivisionError:
print("Infinity")
print("\n"*100)
</code></pre>
<p>如果我理解正确,您只需要将第二个和更多的<code>if</code>替换为<code>elif</code>:</p>
<pre><code>if ac == 1:
...
elif ac == 2:
...
if ac == 3:
...
if ac == 4:
...
else:
...
</code></pre>
<p>每次计算后都不会打印“无效数字”</p>