首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的python列表不懂字母:

我的python列表不懂字母:
EN

Stack Overflow用户
提问于 2022-11-17 17:24:57
回答 2查看 49关注 0票数 -1

我的代码不理解列表中的字母,我希望有人帮我修复这个

代码语言:javascript
复制
usernames = (BTP, btp, Btp, BTp)
def username(usernames2):
    if usernames == input('whats your username? : ')

这是一个简单的用户名系统,我计划使用一个接口im制作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-11-17 17:31:37

如果您没有声明BTPbtpBtpBTp,您将得到一个NameError

如果要使用字符串,则需要单引号或双引号:

代码语言:javascript
复制
usernames = ("BTP", "btp", "Btp", "BTp")

这样您就可以创建一个包含四个字符串元素的元组

下一个问题是您的if条件,因为您比较tuple是否等于一个字符串。

尝试将用户提供的输入存储在变量中:

代码语言:javascript
复制
def username(usernames):
    user_input = input('whats your username?: ')
    if user_input in usernames:
        # Do something when username is found
票数 0
EN

Stack Overflow用户

发布于 2022-11-17 17:30:56

usernames被定义为由4个项组成的元组,名称为BTPbtpBtpBTp。您在标题中说了“列表”,但是您的代码没有实际的列表。列表使用括号,元组使用括号。

无论如何,我假设您实际上希望检查用户的输入实际上是否等于字母"btp",并且希望检查不区分大小写,因此需要包含大写和小写的所有组合。

主要问题是,您没有在字符串周围放置引号,所以在代码中只有4个裸名,解释器希望前面已经定义了这些名称。但是,实际上您不必首先定义大写和小写的所有可能组合--有一种更简单的方法来进行不区分大小写的字符串比较,这里

因此,您的代码只需如下所示:

代码语言:javascript
复制
usename = "btp"
def username(usernames2):
    if input('whats your username? : ').lower() == username

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

代码语言:javascript
复制
usenames = ["btp", "abc", "foo", "bar"]
def username(usernames2):
    if input('whats your username? : ').lower() in usernames
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74479654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档