我只知道我对这件事很没良心,所以请你容忍我。已经尽力了!在
从具有名字和姓氏的文本文件中读取行(有些带有中间名),以生成一个用户名,该用户名是forename和任何中间名的联合版本。如果有重复的,我们从他们的姓氏中提取第一个字母。如果仍然重复,我们后缀1,并从那里开始计算更多的重复-我只是不能让这部分工作!在
usernames = []
for line in open('classlist.txt'):
count = 0
name = line.lower().split()
surname = name[-1]
username = ''.join(name[0:-1])
username_w_surname = username + surname[0]
username_w_surname_integer = username_w_surname + str(count)
if username not in usernames:
usernames.append(username)
elif username in usernames:
usernames.append(username_w_surname)
elif username_w_surname in usernames:
count = count + 1
usernames.append(username_w_surname_integer)
for entry in usernames:
print (entry)
它正在回归
^{2}$但是第二个jamesp
应该是jamesp1
你也可以试试这个
你的前两个条款:
涵盖所有可能性,因为username要么在usernames中,要么不在。因此,您永远不会进入第三个区块:
^{pr2}$这样可以解决问题:
最后还有一个优化提示:与其使用列表来收集用户名,不如看看sets。在
相关问题 更多 >
编程相关推荐