Python if语句没有执行

时间:2018-04-02 06:28:06

标签: python python-2.7

#   TEST
import sys  
a=sys.stdin.readline()    # here the user inputs the string "HELLO"  
print a
if a == "HELLO":  
    sys.stdout.write("GOOD_BYE")  
print "AAAAAAAAAAA"  
raw_input('\npress any key to continue')  
你好。我是Python新手 我使用的是Python 2.7.11 我不明白为什么控制没有进入if声明 给定代码的输出结果为

HELLO  
HELLO   
AAAAAAAAAAA
press any key to continue

注意:上面的第一个“HELLO”是用户输入
我已为sys.stdout.flush()语句尝试了sys.stdout.write()。但它似乎没有帮助 如果我使用a=raw_input()而不是第二行编写相同的代码,它的工作完全正常 任何人都可以解释这个原因。

4 个答案:

答案 0 :(得分:2)

POST /upload/youtube/v3/videos?uploadType=resumable&part=snippet,status,contentDetails HTTP/1.1 Host: www.googleapis.com Authorization: Bearer AUTH_TOKEN Content-Length: 278 Content-Type: application/json; charset=UTF-8 X-Upload-Content-Length: 3000000 X-Upload-Content-Type: video/* { "snippet": { "title": "My video title", "description": "This is a description of my video", "tags": ["cool", "video", "more keywords"], "categoryId": 22 }, "status": { "privacyStatus": "public", "embeddable": True, "license": "youtube" } } 最后附带换行符。所以你实际在做的是比较

readline

实际上是假的。

执行HELLO\n == HELLO 删除换行符。

答案 1 :(得分:0)

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')

答案 2 :(得分:0)

尝试在if条件中使用'in'而不是'==',有时这些行可能会有一些隐藏的字符。

if "HELLO" in a:

答案 3 :(得分:0)

您在输入字符串后按'ENTER'发送输入。所以你的输入是'HELLO \ n',而你的if语句'if'条件是'a ==“HELLO”'。

使用strip()方法。方法strip()返回字符串的副本,其中所有字符都已从字符串的开头和结尾处删除(默认空格字符)。

所以新的工作代码:

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