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

如何在Python脚本的else语句执行后返回脚本顶部?

让Python脚本在else分支执行后回到开头的实现方法

你的核心需求是在用户输入无效操作时,回到脚本开头重新选择。解决这个问题最直接的方式是用循环结构,同时还要修复原代码里的潜在问题:如果走else分支,result变量未定义,后续执行除法会触发NameError。

基础修复版代码

while True:
    print('lets do some math!')
    math_operation = input('Which would you like to start with, addition, subtraction or division?  ')
    
    if math_operation == "addition":
        input_add1 = int(input('First number please '))
        input_add2 = int(input('Second number please '))
        result = input_add1 + input_add2
        print(f'{input_add1} + {input_add2} = {result}')
        break  # 输入有效,跳出循环执行后续除法
    elif math_operation == "subtraction":
        input_sub1 = int(input('First number please '))
        input_sub2 = int(input('Second number please '))
        result = input_sub1 - input_sub2
        print(f'{input_sub1} - {input_sub2} = {result}')
        break  # 输入有效,跳出循环执行后续除法
    else:
        print('I did not quite get that, lets try again')
        # 无break/continue,循环自动回到开头重新执行

# 仅当输入有效操作后,才会执行到这里
input_div = int(input('now provide a number that is divisible from the answer'))
answer = result / input_div
print(answer)

关键逻辑说明

  • 用while True创建无限循环,把操作选择的逻辑全部包裹进去。
  • 用户输入有效操作时,执行完计算后用break跳出循环,继续执行除法逻辑。
  • 输入无效时,else分支打印提示后,循环自动回到开头,重新让用户输入。
  • 彻底避免了result未定义的问题,因为只有输入有效操作时才会赋值result并进入后续流程。

进阶循环版(支持多次计算)

如果希望用户完成一次计算后能重新开始整个流程,可以把除法逻辑也放进循环,再加一个继续判断:

while True:
    print('lets do some math!')
    math_operation = input('Which would you like to start with, addition, subtraction or division?  ')
    
    result = None
    if math_operation == "addition":
        input_add1 = int(input('First number please '))
        input_add2 = int(input('Second number please '))
        result = input_add1 + input_add2
        print(f'{input_add1} + {input_add2} = {result}')
    elif math_operation == "subtraction":
        input_sub1 = int(input('First number please '))
        input_sub2 = int(input('Second number please '))
        result = input_sub1 - input_sub2
        print(f'{input_sub1} - {input_sub2} = {result}')
    else:
        print('I did not quite get that, lets try again')
        continue  # 直接回到循环开头
    
    # 执行除法
    input_div = int(input('now provide a number that is divisible from the answer'))
    answer = result / input_div
    print(answer)
    
    # 询问是否继续
    again = input('Do you want to do more math? (yes/no): ')
    if again.lower() != 'yes':
        break

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 02:31:00