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

如何修改Python循环代码:输入负数时立即结束当前迭代并开启新迭代

解决Python循环中输入负数后死循环的问题

问题根源

原代码输入负数时,仅执行continue跳过当前迭代,但未更新num的取值,导致循环条件num !=0始终成立,程序陷入死循环无法获取新输入。

修改方案1:重构循环逻辑(推荐)

将输入操作移至循环内部,每次迭代开始时先获取新数值,避免重复代码,同时自然处理负数场景:

while True:
    num = int(input('Enter a number:'))
    if num == 0:
        print('The user did not enter negative numbers.' )
        break
    if num > 0:
        if num % 2 == 0 and num % 7 == 0:
            print('The number is a multiple of two and seven.' )
        elif num % 2 == 0:
            print('The number is a multiple of two.' )
        elif num % 7 == 0:
            print('The number is a multiple of seven.' )
        else:
            print('The number is not a multiple of two or seven.' )
    # 输入负数时自动进入下一次迭代,重新获取输入

修改方案2:基于原代码调整

在处理负数的分支中,先更新num的值再执行continue,确保下一次循环使用新输入:

num = int(input('Enter a number:'))
while num != 0:
    if num > 0:
        if num % 2 == 0 and num % 7 == 0:
            print('The number is a multiple of two and seven.' )
        elif num % 2 == 0:
            print('The number is a multiple of two.' )
        elif num % 7 == 0:
            print('The number is a multiple of seven.' )
        else:
            print('The number is not a multiple of two or seven.' )
        num = int(input('Enter a number:'))
    else:
        # 先获取新输入,再进入下一次迭代
        num = int(input('Enter a number:'))
        continue   
else:
    print('The user did not enter negative numbers.' )

效果验证

输入负数后,程序会立即启动新迭代并提示输入新数值,不会陷入死循环;输入0时,触发循环结束的提示信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 05:35:17