繁体   English   中英

如何比较 python 中两个值是否相同但不同的情况

[英]how to compare if two values are the same but different cases in python

所以我正在做的练习是:

086 要求用户输入新密码。 请他们再次输入。 如果两个密码匹配,显示“谢谢”。 如果字母正确但大小写错误,则显示消息“它们必须大小写相同”,否则显示消息“不正确”。

我的尝试如下所示:

passw = input("Enter password: ")
passw2 = input("Enter password again: ")
if passw == passw2:
    print("Thank you.")
elif passw != passw2 and passw.lower == passw2.lower:
    print("They must be in the same case.")
else: 
    print("Incorrect.")

但这并没有给我我希望的结果。 这应该很简单,但你可以告诉我我是一个初学者:) 提前谢谢你!

马塞尔

passw.lower一个方法,方法本身,你可以调用它来获得小写的密码。 还要删除passw != passw2在第二个ìf如果这是强制性的True

if passw == passw2:
    print("Thank you.")
elif passw.lower() == passw2.lower():
    print("They must be in the same case.")
else:
    print("Incorrect.")

更多的

passw = "Abc"

print(passw.lower(), "/", type(passw.lower()))
# abc / <class 'str'>

print(passw.lower, "/", type(passw.lower))
# <built-in method lower of str object at 0x00000202611D4730> / <class 'builtin_function_or_method'>

问题是您的elif条件始终评估为True

elif passw != passw2 and passw.lower == passw2.lower:

str.lower是 function,将 function 与相同的 function 进行比较逻辑上最终为True 您必须改为调用函数并比较它们的结果。 此外,您正在比较passwpassw两次:一次在if条件下检查它们是否相同,一次在elif条件下检查它们是否不同。 这是没有用的,因为只有当if条件为False时才会执行elif条件。 遵循工作代码:

passw = input("Enter password: ")
passw2 = input("Enter password again: ")
if passw == passw2:
    print("Thank you.")
elif passw.lower() == passw2.lower():
    print("They must be in the same case.")
else: 
    print("Incorrect.")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM