如何将变量与python中的字符串进行比较?
问题描述:
进出口新的这个所以我很抱歉,如果这不是要问的问题的最佳途径......如何将变量与python中的字符串进行比较?
这里是代码 -
import sys
print("What is ur name?")
name = sys.stdin.readline()
answer = "jack"
if name is answer :
print("ur awesome")
exit();
现在,当我在cmd中我不运行它即使 我输入 - 插孔?谢谢
答
首先,替换is
与==
。 is
检查两个底层字符串是否是相同的实体(在内存中),而==
只是想检查它们是否具有相同的值。
因为“jack”的来源来自两个来源(一个来自用户,另一个来自您的硬编码),它们是两个独立的对象。
由于@dawg提到你还必须使用.strip()
摆脱使用sys.stdin.readline()
输入时的换行符。读取输入的最佳方法是在python3中使用input()
方法,或在python2中使用raw_input()
。
name = input('What is your name?\n')
答
使用==
的字符串比较。另外,readline()
将在字符串末尾包含换行符。你可以用例如
name = name.strip()
或者,您可以使用(在Python 3 input()
)raw_input()
代替readline()
,因为它不包括开始与换行符。
name = raw_input("What is your name?\n")
能够打印字符串以查看它是否有任何额外的空格是有帮助的,例如,
print("name: [%s]\n" % name)
+1
太好了,但是请添加参考'input()' – dawg
使用'=='而不是'is'。 – StardustGogeta
小心'sys.stdin.readline()'。它将保留换行符。所以如果你输入'jack',它实际上就是'jack \ n'。所以,当答案真的如此时,'answer ==“jack”'将是假的。你最好用'input()'代替。 – idjaw
使用'sys.stdin.readline()',你需要'answer == name.strip()'否则使用'input()' – dawg