打印不会在if语句中工作

时间:2014-10-07 23:59:33

标签: python if-statement printing

当我运行这个脚本时,它会跳过第8行的打印功能。我无法弄清楚为什么对我的生活。我已经尝试了很多东西来使这个工作,但我似乎无法在这里找出问题所在。我是Python的新手,请原谅我这是一个非常简单的问题。

编辑:woops,忘了实际代码! facepalm 这里是:

import webbrowser
import sys
b = webbrowser.get('windows-default')
print('Type start')
line1 = sys.stdin.readline()
start = 'start'
if line1 == start:
    print('What website do you want to open?')
line2 = sys.stdin.readline()
b.open(line2)

1 个答案:

答案 0 :(得分:5)

当您将'start'键入stdin然后按Enter键时,包含换行符的整个字符串最终会存储在line1中。实际上,line1 == 'start\n'。在进行比较之前,您需要从字符串末尾删除\n。一种简单的方法是使用str.rstrip

if line1.rstrip() == start:
    print('What website do you want to open?')

修改

正如Ashwini Chaudhary在评论中指出的那样,你应该使用raw_input(如果使用Python 3.x,则为input而不是sys.stdin.readline。它会缩短您的代码,并且无需完全删除尾随换行符:

line1 = raw_input('Type start')
start = 'start'
if line1 == start:
    line2 = raw_input('What website do you want to open?')
    b.open(line2)