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

Python 2.7.11中if语句未执行问题求助

问题分析与解决办法

嘿,我一眼就看出问题所在啦!你用sys.stdin.readline()读取输入的时候,它会把你输入内容连同末尾的换行符一起读进来。也就是说,当你输入"HELLO"然后按回车时,变量a实际存储的是"HELLO\n"(\n就是换行符),这自然和"HELLO"不相等,所以if分支根本不会执行~

给你几个简单的解决办法:

  • 方法一:用strip()去除首尾空白字符
    这是最常用的方式,能去掉换行符、空格这些多余的空白:

    import sys
    a = sys.stdin.readline().strip()  # 加上.strip()
    print a
    if a == "HELLO":
        sys.stdout.write("GOOD_BYE")
    print "AAAAAAAAAAA"
    raw_input('\npress any key to continue')
    
  • 方法二:改用raw_input()读取输入
    在Python 2里,raw_input()会自动忽略输入末尾的换行符,用它更省心:

    import sys
    a = raw_input()  # 替换成raw_input()
    print a
    if a == "HELLO":
        sys.stdout.write("GOOD_BYE")
    print "AAAAAAAAAAA"
    raw_input('\npress any key to continue')
    
  • 方法三:手动去除换行符
    如果你就想用readline(),可以用rstrip('\n')只去掉末尾的换行符:

    import sys
    a = sys.stdin.readline().rstrip('\n')
    print a
    if a == "HELLO":
        sys.stdout.write("GOOD_BYE")
    print "AAAAAAAAAAA"
    raw_input('\npress any key to continue')
    

随便选一种试试,保证你的if分支能正常执行啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:25:58