我是一位自学成才的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()
我希望它在确认print("user correct")
之后进入user == username
,但我完全忘记了如何做,因为我已经有一段时间没有编码Python了,因为它很难使用正确的术语来使准确一直在尝试搜索。希望你们中的一个可以帮助您!
相关行:
if user == username:
我不确定我需要使用哪种语法。
答案 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!"