我创建了一个既有的字典,里面的用户John密码为123,用户Marry密码为111。接下来要设计一个程序,添加三次验证算法,判断是否正确匹配。若三次内正确,则提示“登录成功”;若三次都错误,则提示“您是非法用户,程序终止”。
我拟打算用循环结构来完成程序设计,但不知道如何安插“用户名或密码错误”和“三次都错误(提示您非法)”的情况,望指点迷津。
定义一个变量记录用户的输入次数即可,望采纳
users = {'John': '123', 'Marry': '111'}
count = 0
while count < 3:
username = input('请输入用户名:')
password = input('请输入密码:')
if username in users and users[username] == password:
print('登录成功')
break
else:
print('用户名或密码错误')
count += 1
if count == 3:
print('您是非法用户,程序终止')
不知道你这个问题是否已经解决, 如果还没有解决的话:pop():将列表指定位置的元素移除,同时可以将移除的元素赋值给某个变量
程序分析:
思路解析:首先创建列表,轮流换位可知会有循环语句,接下来将列表的第一个用pop()除掉并赋值给N,再将N添加进列表list1即可。
代码解析:
list1 = ["小明", "小红", "小刚"]
n = 0
while n < 3:
n += 1
N = list1.pop(0)
list1.append(N)
print(list1)
我可以解决这个问题。
解决方案:
users = {'user1': 'password1', 'user2': 'password2', 'user3': 'password3'}
# 定义一个计数器,记录错误次数
count = 0
while count < 3:
username = input('请输入用户名:')
password = input('请输入密码:')
# 判断输入的用户名是否在字典中,密码是否匹配
if username in users and users[username] == password:
print('登录成功!')
break
else:
count += 1
print('用户名或密码错误,您还有{}次机会'.format(3-count))
# 当错误次数达到3次时,输出错误信息并终止程序
if count == 3:
print('您是非法用户,程序终止')
users = {'user1': 'password1', 'user2': 'password2', 'user3': 'password3'}
count = 0
while count < 3:
username = input('请输入用户名:')
password = input('请输入密码:')
if username in users and users[username] == password:
print('登录成功!')
break
else:
count += 1
print('用户名或密码错误,您还有{}次机会'.format(3-count))
if count == 3:
print('您是非法用户,程序终止')
这个程序简单明了,首先定义了一个字典,然后使用一个while循环来获取用户输入的用户名和密码,并验证其是否匹配字典中的数据。如果验证成功,循环会被break退出程序,否则会递增计数器并输出一条提示信息。当错误次数达到三次时,循环跳出,终止程序。