You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何解决print的end=' '参数导致后续输入行与输出行重叠问题

解决翻译输出与输入提示重叠的问题

嘿,这个小问题我太熟悉了!你遇到的输出重叠情况,根源在于你用了end=' '让每个翻译后的单词只加空格不换行,导致下一次的输入提示直接跟在翻译结果的同一行末尾。

给你两个简单的修复方案:

方案1:遍历后手动换行

在打印完所有翻译单词后,额外加一个无参数的print(),它会自动输出一个换行符,把输入提示推到下一行:

lan = {}
for line in open('dictionary.txt'):
    en, ab = line.rstrip().split(',')
    lan[en] = ab
req = input('English: ')
while req:
    words = req.split()
    for i in range(len(words)):
        print(lan[words[i]], end=' ')
    # 新增这一行,强制换行
    print()
    req = input('English: ')

方案2:用字符串拼接更优雅地输出

比起循环打印每个单词,我们可以先把所有翻译后的单词用空格拼接成一个字符串,然后一次性打印——print()默认会在结尾添加换行符,这样自然就分隔开了:

lan = {}
for line in open('dictionary.txt'):
    en, ab = line.rstrip().split(',')
    lan[en] = ab
req = input('English: ')
while req:
    words = req.split()
    # 用生成器表达式获取所有翻译结果,再用join拼接
    print(' '.join(lan[word] for word in words))
    req = input('English: ')

这两种方案都能让你的输出变成期望的样子:

English: I like python
ngaju kuja-piya malilyi
English:

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

火山引擎 最新活动