我是新手,所以我很抱歉,如果这不是提出问题的最佳方式......
这是代码 -
import sys
print("What is ur name?")
name = sys.stdin.readline()
answer = "jack"
if name is answer :
print("ur awesome")
exit();
现在,当我在cmd中运行它时,即使打印也没有任何打印 我输入 - 杰克?提前谢谢你
答案 0 :(得分:5)
首先,将is
替换为==
。 is
检查两个底层字符串是否是同一个实体(在内存中),而==
只是想检查它们是否具有相同的值。
因为“jack”的来源来自两个来源(一个来自用户,另一个来自你的硬编码),所以它们是两个单独的对象。
正如@dawg所提到的,当使用.strip()
进行输入时,你还必须使用sys.stdin.readline()
来删除换行符。读取输入的最佳方法是在python3中使用input()
方法,或在python2中使用raw_input()
。
name = input('What is your name?\n')
答案 1 :(得分:4)
使用==
进行字符串比较。此外,readline()
将在字符串末尾包含换行符。你可以用例如剥离它。
name = name.strip()
或者,您可以使用raw_input()
(在{3}} input()
而不是readline()
,因为它不会包含新行开头。
name = raw_input("What is your name?\n")
能够打印字符串以查看它是否有任何额外的空格是有帮助的,例如
print("name: [%s]\n" % name)