题目1.0:
按下面的说明编写一个程序,模拟网站如何确保每位用户的用户名都独一无二。
(1)创建一个至少包含5个用户名的列表,并将其命名为 current_users 。
(2)再创建一个包含5个用户名的列表,将其命名为new_users ,并确保其中有一两个用户名也包含在列表current_users 中。
(3)遍历列表new_users ,对于其中的每个用户名,都检查它是否已被使用。如果是,就打印一条消息,指出需要输入别的用户名;否则,打印一条消息,指出这个用户名未被使用。
current_users = ["Daisy", "Karen", "Lucy", "Alice", "Helen", "Rachel"]
new_users = ["Mia", "Sarah", "Winter", "Daisy", "LUCY", "Vivian"]
if new_users:# for i in new_users: # 遍历的是元素的副本,无法修改原列表的值(得到的i是列表中的实际元素,而不是它们的索引)for i in range(len(new_users)): # 遍历的是索引,可以通过索引直接修改原列表的值user = new_users[i]if user in current_users:print("该用户名已被使用,请输入别的用户名:")new_user = input()new_users[i] = new_user # 修改列表中的用户名else:print("该用户名没有被使用~~~~")print(new_users)
题目2.0:
(4)确保比较时不区分大小写。换句话说,如果用户名'John' 已被使用,应拒绝用户名'JOHN' 。(为此,需要创建列表current_users 的副本,其中包含当前所有用户名的小写版本。)
思路:
把两个列表都变成小写,再进行比较,一样的话就是重复了,被使用了,就应该提示被使用。
即--创建current_users的小写版本,遍历new_user的每一个小写元素,进行对比。
current_users = ["Daisy", "Karen", "Lucy", "Alice", "Helen", "Rachel"]
new_users = ["Mia", "Sarah", "Winter", "Daisy", "LUCY", "Vivian"]
# 创建 current_users 的小写版本:遍历 current_users 列表,并对每个元素(user)应用小写操作,最后生成一个新的列表。
lower_current_users = [user.lower() for user in current_users]
if new_users:for i in range(len(new_users)):user = new_users[i]# 将 new_users 中的每个用户名转换为小写,和lower_current_users比较,是为了保证比较时不区分大小写if user.lower() in lower_current_users:print("该用户名已被使用,请输入别的用户名:")new_user = input()new_users[i] = new_user # 修改列表中的用户名else:print("该用户名没有被使用~~~~")print(new_users)
总结:
1.一般进行列表遍历,都是使用下标来遍历,通过索引直接修改其值
2. 列表名.lower() 转为小写
3. 列表推导式
lower_current_users = [user.lower() for user in current_users]