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

如何修改Python代码,使其正确判定答案并输出‘correct’?

Python数组反转验证代码错误排查与修复

问题原因

  • 类型不匹配:input()获取的用户输入是字符串类型,而arrayAns是列表类型,字符串和列表直接用==比较永远不会相等。比如用户输入[25,20,15,10,5]是字符串,正确答案是列表[25,20,15,10,5],类型不同直接导致判定错误。
  • 原地修改的冗余问题:array1.reverse()会直接修改原列表,arrayAns = array1只是让变量指向同一个列表对象,虽然不是本次错误的核心,但写法不够规范。

修复方案

核心是将用户输入的字符串转换为列表,确保和正确答案类型统一后再比较,同时优化反转列表的写法:

修正后的代码

array1 = [5, 10, 15, 20, 25]

print("Question 2: What is the reverse of the following array?", array1)

# 用切片生成反转后的新列表,不修改原数组
arrayAns = array1[::-1]

user_input = input("Enter your answer: ")

# 处理用户输入,转换为整数列表
try:
    # 去掉首尾的[]和空格,拆分每个元素
    cleaned_input = user_input.strip().strip('[]')
    user_list = [int(num.strip()) for num in cleaned_input.split(',')]
    
    if user_list == arrayAns:
        print("You are correct")
    else:
        print(f"You are incorrect. The right answer is {arrayAns}")
except ValueError:
    print("Invalid input format! Please enter like [25, 20, 15, 10, 5]")

关键改进点

  1. 用array1[::-1]生成反转列表,原数组保持不变,逻辑更清晰。
  2. 将用户输入的字符串逐步处理成整数列表,确保和正确答案的类型、内容一致后再比较。
  3. 加入try-except捕获格式错误,给用户明确的输入提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 11:01:58