You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python程序SyntaxError: 'break' outside loop报错原因与修复方法

报错根因

SyntaxError: 'break' outside loop是Python的作用域校验错误,break关键字仅允许写在for/while循环的缩进代码块内部。你的代码存在严重的缩进错误:while True:循环下仅包含了choice = input(...)这一行代码,后续所有的选项判断、运算逻辑、break分支全部顶格写在了循环外部,自然触发该报错。
除此之外你的代码还存在两个会导致运行失败的隐藏问题:

  • 函数名不匹配:定义的四则运算函数名为sub/mul/div,调用时却写了subtract/multiply/divide,运行时会触发NameError
  • 菜单文字拼写错误:"Divition"为错误拼写,正确写法是"Division"
修复后可直接运行的代码
def add(num1, num2):
    return num1 + num2

def sub(num1, num2):
    return num1 - num2

def mul(num1, num2):
    return num1 * num2

def div(num1, num2):
    return num1 / num2

print("Select Operation")
print("1) Addition")
print("2) Subtraction")
print("3) Multiplication")
print("4) Division")

while True:
    choice = input("Enter choice (1, 2, 3, or 4): ")

    if choice in ('1', '2', '3', '4'):
        num1 = float(input("Enter the first number: "))
        num2 = float(input("Enter the second number: "))

        if choice == '1':
            print(f" {num1} + {num2} = ", add(num1, num2))
        elif choice == '2':
            print(f" {num1} - {num2} = ", sub(num1, num2))
        elif choice == '3':
            print(f" {num1} * {num2} = ", mul(num1, num2))
        elif choice == '4':
            print(f" {num1} / {num2} = ", div(num1, num2))
        
        next_calculation = input("Let's do another calculation? (yes/no): ")
        if next_calculation == "no":
            break
        
    else:
        print("Invalid Input")
关键修改点
  • 调整缩进层级:将while True:之后所有和单次计算、循环退出相关的逻辑全部缩进4个空格,放入循环体内部,让break处于合法的循环作用域中
  • 统一函数命名:将运算调用处的函数名修改为和定义时一致的名称,消除名称错误
  • 修正菜单拼写错误,移除了无变量占位的print语句中冗余的f前缀

补充提示:如果要提升健壮性,可以在除法逻辑前加num2 == 0的判断,避免除零运行时错误。

内容的提问来源于stack exchange,提问作者JMas19

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 23:45:45