我的python列表不理解字母:([closed]

roqulrg3  于 2022-11-19  发布在  Python
关注(0)|答案(2)|浏览(143)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。

昨天关门了。
此帖子已在21小时前编辑并提交审阅,无法重新打开帖子:
原始关闭原因未解决
Improve this question

我的代码不理解列表中的字母,我希望有人帮助我解决这个问题

usernames = (BTP, btp, Btp, BTp)
def username(usernames2):
    if usernames == input('whats your username? : ')

这是一个简单的用户名系统,我计划使用一个界面即时通讯制作。

guykilcj

guykilcj1#

usernames定义为4个项目的tuple,名称分别为BTPbtpBtpBTp。您在标题中提到了“list”,但您的代码没有实际的列表。列表使用括号,元组使用括号。
无论如何,我假设您实际上想检查用户的输入是否等于字母"btp",并且您希望检查不区分大小写,因此您包括了所有大小写组合。
主要的问题是你没有在字符串前后加上引号,所以你的代码中只有4个空的名字,解释器希望这些名字已经被定义过了。但是,你实际上不必在第一位定义所有可能的大小写组合-有一个更容易的方法来进行不区分大小写的字符串比较,here
因此,您的代码只需如下所示:

usename = "btp"
def username(usernames2):
    if input('whats your username? : ').lower() == username

或者,如果要检查多个用户名,可以使用in运算符:

usenames = ["btp", "abc", "foo", "bar"]
def username(usernames2):
    if input('whats your username? : ').lower() in usernames
vsdwdz23

vsdwdz232#

如果没有声明BTPbtpBtpBTp,则会得到NameError
如果要使用字符串,则需要使用单引号或双引号:

usernames = ("BTP", "btp", "Btp", "BTp")

这样,您就创建了一个包含四个字符串元素的元组
下一个问题是比较tuple是否等于字符串时的if条件。
尝试将用户提供的输入存储在变量中:

def username(usernames):
    user_input = input('whats your username?: ')
    if user_input in usernames:
        # Do something when username is found

相关问题