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

Python报错'must be str not int':循环读取输入拼接字符串问题求助

解决你的循环输入拼接问题&类型错误分析

咱们先拆解下你遇到的问题:首先那个must be str not int错误,根源是你代码里的reply=reply+1——你把字符串类型的reply和整数1直接相加了,Python可不会自动帮你把整数转成字符串,自然就报错啦。而且你的代码逻辑也完全偏离了需求,比如嵌套的while len(reply) >3循环完全没必要,也没做收集输入单词的操作。

下面是符合你需求的正确实现,我一步步给你讲:

正确代码实现

# 初始化一个空列表,用来存储用户输入的有效单词
words = []

while True:
    reply = input('Enter text, [type "stop" to quit]: ')
    # 判断终止条件:输入是'stop' 或者输入的是空格(或空内容)
    if reply.lower() == 'stop' or reply.strip() == '':
        break
    # 将有效单词添加到列表中
    words.append(reply)

# 用空格拼接所有单词并打印
print(' '.join(words))

代码解释

  • 首先用words = []创建空列表,用来存用户输入的每一个有效单词,这是实现拼接的关键——得先把所有单词收集起来才行。
  • while True启动无限循环,直到遇到终止条件才跳出。
  • reply.lower() == 'stop'是为了兼容大小写输入,比如用户输入'STOP'也能正常终止;reply.strip() == ''用来判断用户输入的是空格(或者全是空白字符),满足任一条件就break终止循环。
  • 把符合要求的单词用append()添加到列表里,最后用' '.join(words)把列表里的所有元素用空格拼接成一个字符串,这比逐个拼接字符串效率更高哦。

测试一下你给的示例输入:依次输入"how"、"long"、"has"、"it"、"been",最后输入'stop'或空格,就能得到期望输出how long has it been啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:07:11