在python的基本部分中挣扎(检查变量是否等于输入)

时间:2018-08-12 22:51:59

标签: python

我是一位自学成才的Python爱好者,他具有如下所示的代码段。

#Insert variables here#
password = 123
username = 123
#———————————-—————————#

import time

def log_in():
    user = input("Username: ")
    if user = username:         # Here is a problem
        print("user correct")
        passl = input("Password: ")

Q1 = input("Log In?: (y/n) ")
if Q1 == ('y'):
    log_in()
else:
    print("5hutting Down")
    time.sleep(3)
    exit()

(Snippet of this code)

我希望它在确认print("user correct")之后进入user == username,但我完全忘记了如何做,因为我已经有一段时间没有编码Python了,因为它很难使用正确的术语来使准确一直在尝试搜索。希望你们中的一个可以帮助您!

相关行:

if user == username:

我不确定我需要使用哪种语法。

3 个答案:

答案 0 :(得分:3)

语法正确,但语义不正确。

您要比较 number 123)和 string "123")。

代替

password = 123
username = 123

使用

password = "123"
username = "123"

因为input()函数返回 string

答案 1 :(得分:1)

该代码段已经进行了一次更正。您的username变量是一个数字,而input()函数则返回一个字符串。因此,它永远不会是user == username。两种可能的选择:将开头更改为

username = '123'

或将if更改为user == int(username)

答案 2 :(得分:0)

代码段对我来说看起来不错。实际上,这里的类型没有问题,因为input()不一定返回string。如果用户输入123,则input()将返回integer

ActivePython 2.7.14.2717 (ActiveState Software Inc.) based on
Python 2.7.14 (default, Dec 18 2017, 05:08:05)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> x = input('username?')
username?123
>>> isinstance(x, int)
True
>>>

但是,同时查询用户名和密码并使用==比较输入更有意义。请注意,=用于分配,而==用于比较两个值。

user = input('Enter username')
pwd = input('Enter password')
if user == username and pwd == password:
    print "Logged in!"