Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中字符串的相等性_Python_Python 2.7 - Fatal编程技术网

Python中字符串的相等性

Python中字符串的相等性,python,python-2.7,Python,Python 2.7,我有以下代码: afile = "name.txt" f = open(afile,"r") content = f.readlines() f.close() correct = content[1] answer = raw_input() if answer == correct: print 'True' 假设,由于name.txt,内容[1]是George,然后我运行代码并键入George作为答案。 为什么我不能实现? 为什么答案和正确答案不一样?您读取的数据包括换行符;首先

我有以下代码:

afile = "name.txt"
f = open(afile,"r")
content = f.readlines()
f.close()
correct = content[1]
answer = raw_input()
if answer == correct:
    print 'True'
假设,由于name.txt,内容[1]是George,然后我运行代码并键入George作为答案。 为什么我不能实现?
为什么答案和正确答案不一样?

您读取的数据包括换行符;首先从线路上拆下这些:

if answer == correct.strip():
它删除字符串开头和结尾的所有空白。如果开始或结束处的空格很重要,则可以使用以下命令仅删除结尾处的换行:


您读取的数据包括换行符;首先从线路上拆下这些:

if answer == correct.strip():
它删除字符串开头和结尾的所有空白。如果开始或结束处的空格很重要,则可以使用以下命令仅删除结尾处的换行:

重写一点:

def get_file_line(fname, line_num):
    with open(fname) as inf:
        try:
            for _ in range(line_num + 1):
                line = inf.next()
            return line.rstrip('\r\n')
        except StopIteration:
            return None

if answer == get_file_line('name.txt', 1):
    print('True')
重写一点:

def get_file_line(fname, line_num):
    with open(fname) as inf:
        try:
            for _ in range(line_num + 1):
                line = inf.next()
            return line.rstrip('\r\n')
        except StopIteration:
            return None

if answer == get_file_line('name.txt', 1):
    print('True')

也可以谨慎使用。如果资本化不重要,则降低。也可以谨慎使用。如果资本化不重要,则降低。