Python if语句说2个字符串不一样

时间:2014-09-29 16:27:08

标签: python

import time
#settings file (file with username/password)
settings = "settings.txt"
#set true to skip login
login = False
while not login:

    print("""
                        /------------------------------\\\n
                        /                              \\\n
                        /  Please Enter Your Username  \\\n
                        /                              \\\n
                        /                              \\\n
                        /------------------------------\\\n
    """)
    username = input()
    print("""\n\n\n\n\n\n\n\n
                        /------------------------------\\\n
                        /                              \\\n
                        /  Please Enter Your Password  \\\n
                        /                              \\\n
                        /                              \\\n
                        /------------------------------\\\n
    """)
    password = input()
    #open file in read and write mode
    file = open(settings, "r+")
    for line in file:
        if "username: " in line:
            line = line.replace("username: ", "")
            if username == line:
                print("test")
file.close()

当我运行它并将其全部填入其中将无法打印测试我输入用户名但它不起作用。 它到达if username == line: print("test") 并且不打印测试

脚本/应用程序用于我学校的家庭作业

这是设置文件

username: username
password: password

2 个答案:

答案 0 :(得分:2)

首先,如果用户名为txt文件,则需要将其作为字符串检查!然后你在行尾有\n或使用line.strip()删除'\ n'!所以将if语句更改为:

if username+'\n' == line:  #if user name is txt use 'username' 

if username == line.strip():

答案 1 :(得分:2)

input 不是此处使用的正确函数,因为它会评估用户输入的值。 实际上,使用它通常是不安全的。

  1. 输入替换为 raw_input
  2. 确保剥离每个字符串以删除看不见的字符(例如空格和\ n)。