小白求助,新手做作业
执行程序产生验证码,提示输入用户名,密码,验证码,如果正确提示登录成功,否则重新输入(要求产生新的验证码)for i in range(3):
username=input('请输入用户名:')
password=input('请输入密码:')
if username=='admin' and password=='123456':
# print('登录成功')
s='qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890'
code=''
import random
for i in range(4):
r=random.randint(0,len(s)-1)
# print(r)
# print(s)
code+=s
print('验证码是:',code)
c=input('请输入验证码')
if c==code:
print('验证码正确')
print('登录成功')
break
else:
print('验证码错误,请重新输入')
else:
print('用户名或密码错误!')
else:
print('用户名或密码错误三次,账户已锁定!')
验证码错误时跳到用户名登录一步,怎么解决?? 你这里用for循环也可以到登入那一步呀?
你意思是锁定后到回第一步吧? Twilight6 发表于 2020-5-3 09:15
你这里用for循环也可以到登入那一步呀?
你意思是锁定后到回第一步吧?
不好意思问题没说清楚,当输入验证码错误时,它返回到请输入用户名一步了,不是应该返回到请输入验证码这一步吗 本帖最后由 Twilight6 于 2020-5-3 09:55 编辑
kldsy1984 发表于 2020-5-3 09:29
不好意思问题没说清楚,当输入验证码错误时,它返回到请输入用户名一步了,不是应该返回到请输入验证码这 ...
你把登入写在了for循环里所以每次循环肯定会从’头‘开始你这边的头就是登入用户密码这些,你把登入改外面在加个循环就好
username = input('请输入用户名:')
password = input('请输入密码:')
for i in range(3):
if username=='admin' and password=='123456':
# print('登录成功')
s='qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890'
code=''
import random
for i in range(4):
r=random.randint(0,len(s)-1)
# print(r)
# print(s)
code+=s
print('验证码是:',code)
c=input('请输入验证码')
if c==code:
print('验证码正确')
print('登录成功')
break
else:
print('验证码错误,请重新输入')
else:
print('用户名或密码错误!')
username = input('请输入用户名:') # 这里因为循环把登入移动到外部
password = input('请输入密码:') # 所以要在输入错误这加上
else:
print('用户名或密码错误三次,账户已锁定!')
不过这样也还是有瑕疵,因为你结果是输入账号密码错误三次才会锁定
但是这里用了for循环只要循环正常完毕就都会锁定,也就是说你验证码输入错误几次也会导致锁定
所以在改改:
username = input('请输入用户名:')
password = input('请输入密码:')
count = 2# 初始化允许输入错误次数 ,因为第一次输入是在循环外,就是一二两行,所有循环内还有两次机会
while count :
if username=='admin' and password=='123456':
# print('登录成功')
s='qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890'
code=''
import random
for i in range(4):
r=random.randint(0,len(s)-1)
# print(r)
# print(s)
code+=s
print('验证码是:',code)
c=input('请输入验证码')
if c==code:
print('验证码正确')
print('登录成功')
break
else:
print('验证码错误,请重新输入')
else:
count -= 1 # 这边每次错误都减一次机会,其他情况不会减机会
print('用户名或密码错误!')
username = input('请输入用户名:')
password = input('请输入密码:')
else:
print('用户名或密码错误三次,账户已锁定!')
for i in range(3):
username=input('请输入用户名:')
password=input('请输入密码:')
if username=='admin' and password=='123456':
# print('登录成功')
s='qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890'
code=''
import random
for i in range(4):
r=random.randint(0,len(s)-1)
# print(r)
# print(s)
code+=s
print('验证码是:',code)
c=input('请输入验证码')
while c.lower() != code.lower():
code=''
for i in range(4):
r=random.randint(0,len(s)-1)
# print(r)
# print(s)
code+=s
print('验证码是:',code)
c=input('验证码错误,请重新输入')
else:
print('验证码正确')
print('登录成功')
break
else:
print('用户名或密码错误!')
else:
print('用户名或密码错误三次,账户已锁定!')
页:
[1]