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
相关产品推荐
相关产品推荐

