使用if else(Python)的sys.stdin.readline()

时间:2016-09-28 11:32:16

标签: python

我是Python新手,需要一些帮助。 我试图使用下一个命令,以从屏幕获取用户输入: sys.stdin.readline()

当我想要打印一些内容时,一切都很好但是当我尝试组合if else语句时,似乎用户输入忽略了我在if ==中写的区分大小写的字符串并且它总是返回其他地方甚至当我写输入' Sam'

我想做一个像这样的简单任务:

print("What is your name ?")

name = sys.stdin.readline()

print("Hello", name)

if name == 'Sam' :
    print ('You are in our group')
else :
    print('You are not in our group')

我应该在sys.stdin.readline()中做什么来确认if ==参数?

谢谢你的帮助

2 个答案:

答案 0 :(得分:2)

该行将包含行尾字符'\n'docs)。所以它永远不会等于'Sam'(除了可能在文件的末尾)。

也许使用name = name.strip()删除它和任何额外的空格字符。

答案 1 :(得分:0)

关于主要帖子:

我在同一代码中使用了sys.stdin.readline()和input()。两次都工作。以下是代码:

import os

os_log(OSLogType.default, "Message")

第二个代码:

import sys
print('how much was your meal')
price = int(input())
print('how much would you like to tip in percentage')
tip = int(input())
tipamount = price * (tip/100)
print('your tip amount is %s' %tipamount + 'dollars')

但是当我在下面的代码中使用sys.stdin.readline时,它不起作用。相反,input()起作用了。有人可以解释一下sys.stdin.readline为什么在第一个代码中起作用而在这个代码中不起作用吗?

#import sys
#price = int(sys.stdin.readline())
#print('how much would you like to tip in percentage')
#tip = int(sys.stdin.readline())
#tipamount = price * (tip/100)
#print('your tip amount is %s' %tipamount + 'dollars')