为什么我的 python 程序总是显示相反的反应
Why does my python program always show the opposite reaction
好的,所以我正在 python 中制作一个文件保存软件,它可以让用户在程序中制作、删除和上传文件到一个秘密文件夹。
这是我遇到问题的部分:
user = input("User :")
if user is "Aymen":
print("Welcome")
else:
print("Access denied")
为什么我的程序不管输入是否正确总是显示 "Access denied"?
不要使用 is
来测试等价性,使用 ==
is
是一个关键字,用于测试两个值在内存中是否完全相同。但是仅仅因为两个东西相等并不意味着 Python 实际上认为它们是存储在一个位置的同一个对象。它最常与 None
一起使用,但绝不会以您使用它的方式使用。
你应该使用
if user == "Aymen":
使用 ==
而不是 is
来比较字符串。 is
测试同一性,而不是相等性。这意味着 Python 只是比较对象所在的内存地址。
例子-
>>> s = input("Enter : ")
Enter : Aymen
>>> s is "Aymen"
False
>>> s == "Aymen"
True
如果要与字符串或变量进行比较,请使用“==”,而不是 "is"。 "is" 用于测试,而不是比较两个变量或字符串。
if user == "Aymen":
print("Welcome")
好的,所以我正在 python 中制作一个文件保存软件,它可以让用户在程序中制作、删除和上传文件到一个秘密文件夹。
这是我遇到问题的部分:
user = input("User :")
if user is "Aymen":
print("Welcome")
else:
print("Access denied")
为什么我的程序不管输入是否正确总是显示 "Access denied"?
不要使用 is
来测试等价性,使用 ==
is
是一个关键字,用于测试两个值在内存中是否完全相同。但是仅仅因为两个东西相等并不意味着 Python 实际上认为它们是存储在一个位置的同一个对象。它最常与 None
一起使用,但绝不会以您使用它的方式使用。
你应该使用
if user == "Aymen":
使用 ==
而不是 is
来比较字符串。 is
测试同一性,而不是相等性。这意味着 Python 只是比较对象所在的内存地址。
例子-
>>> s = input("Enter : ")
Enter : Aymen
>>> s is "Aymen"
False
>>> s == "Aymen"
True
如果要与字符串或变量进行比较,请使用“==”,而不是 "is"。 "is" 用于测试,而不是比较两个变量或字符串。
if user == "Aymen":
print("Welcome")