Python中使用str.lower()生成小写用户名失败的技术求助
问题排查与解决
核心语法错误
你的代码在生成用户名时存在语法错误,这是导致.lower()看似无效的关键原因:
# 错误写法:变量名后多了多余的点 username = first_name.[0:3] + last_name.[-2:] + str(random.randint(10, 99))
修正为:
# 正确写法:去掉变量名后的点 username = first_name[0:3] + last_name[-2:] + str(random.randint(10, 99))
其他必要修正
- 代码缺少必要模块导入,需在文件开头添加:
import random import csv
否则random.randint()和csv.writer()会抛出未定义错误。
- 密码输入逻辑有漏洞:若用户第二次输入的密码仍小于5位,程序不会再次校验,建议改为循环校验:
password = input("What is your password? ") while len(password) < 5: print("Password must be at least 5 characters long") password = input("What is your password? ")
验证效果
修正上述问题后,first_name和last_name已通过.lower()转为全小写,截取后的片段自然也是小写,生成的用户名会符合全小写字母加数字的要求,写入CSV的内容也会是小写格式。
内容的提问来源于stack exchange,提问作者B Turner
相关产品推荐
相关产品推荐

