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

Python数字排序代码无限循环问题排查与修复咨询

问题分析与修复方案

问题原因

你把接收用户排序选择的user变量定义在了while循环外面,循环执行过程中从未更新这个变量的值。一旦用户第一次输入的不是"accend"或"decend",循环会一直基于这个错误的输入判断,导致无限执行else分支,反复打印提示语。

修复后的代码

# 接收用户输入的多个值
x = list(input("Enter multiple value: ").split())
print("List of numbers: ", x)

while True:
    # 将输入语句移到循环内,每次循环都重新获取用户选择
    user = input("do you want ascending or descending order? ")
    if user == "ascend":
        x.sort()
        print(x)
        break
    elif user == "descend":
        x.sort(reverse=True)
        print(x)
        break
    else:
        print("Invalid input! Please try again with 'ascend' or 'descend'")

print("Congrats! Here are your numbers showing in "+ user +" order")

关键修改点

  • 把user = input(...)移到while True循环内部,确保每次循环都能获取新的用户输入,替换掉之前错误的内容。
  • 修正了拼写错误:将原代码里的"accending"改为正确的"ascending","decending"改为"descending",同时修正了输出语句里的拼写错误,避免用户输入正确拼写却无法匹配的问题。
  • 把str(input(...))简化为input(...),因为input()本身返回的就是字符串类型,无需额外转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 10:45:34