如何将变量与python中的字符串进行比较?

时间:2016-09-28 00:29:10

标签: python string

我是新手,所以我很抱歉,如果这不是提出问题的最佳方式......

这是代码 -

import sys

print("What is ur name?")
name = sys.stdin.readline()

answer = "jack"

if name is answer :
    print("ur awesome")
exit();

现在,当我在cmd中运行它时,即使打印也没有任何打印 我输入 - 杰克?提前谢谢你

2 个答案:

答案 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)