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

如何从标准输入(stdin)中匹配指定字符串?代码异常排查

问题原因及解决办法

问题根源

用for word in sys.stdin读取输入时,每一行内容都会包含末尾的换行符(\n)。比如你输入shai并回车,程序拿到的word实际是'shai\n',和你写的'shai'直接比对自然不相等,所以不会触发print('yes')。

解决方法

只需要在判断前处理掉字符串里的换行符即可,两种常用方案:

方案1:用strip()去除首尾空白(推荐,兼容输入前后有空格的情况)

修改判断条件:

if word.strip() == 'shai':

完整修改后的代码:

import sys

def loop():
    for word in sys.stdin:
        print(word)
        if word.strip() == 'shai':
            print('yes')
loop()

方案2:用rstrip('\n')只去掉末尾换行符

如果需要保留输入内容前后的空格,仅去除换行符,可改用:

if word.rstrip('\n') == 'shai':

这样修改后,当输入shai时,就能正确匹配并输出yes了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 11:35:01