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

Python单词翻译学习程序仅特定词汇生效问题求助

问题分析与修复方案

问题原因

readlines()读取文件时,会保留每一行末尾的换行符\n(除了文件最后一行)。比如你的read列表实际内容是:
["auto\n", "car\n", "regalo\n", "gift\n", "lampada\n", "lamp"]

当你输入car时,程序会拿它和"car\n"做比较,自然不匹配;只有最后一行的lamp没有换行符,所以能正常验证。

修复后的代码

import random

while True:
    # 用with语句自动管理文件资源,避免遗漏关闭操作
    with open('Informazioni.txt', 'r+') as k:
        # 读取每一行并去除首尾空白(包括换行符、空格)
        read = [line.strip() for line in k.readlines()]
    
    while True:
        domanda = random.randint(0, len(read) - 1)
        if domanda % 2 == 0:
            risposta = domanda + 1
            break
    
    question = read[domanda]
    solution = read[risposta]
    print(question)
    
    while True:
        # 输入内容也去除首尾空白,避免用户误输入空格导致匹配失败
        response = input().strip()
        if response == solution:
            break

额外优化说明

  • 替换了冗余的a=1循环,改用while True更直观
  • 对输入内容也做了strip()处理,避免用户不小心输入空格导致验证失败
  • 使用with语句自动处理文件的打开和关闭,更安全规范

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 00:15:44