验证用户密码程序
运行结果:====
请输入密码:**
密码中不能含有"*"号!您还有 3 次机会! 请输入密码:FishC.com
密码输入错误!您还有 2 次机会! 请输入密码:FishC.com
密码正确,进入程序……
>>>
代码:
code=input('请输入密码:')
bingo='FishC.com'
i=1
count=3
while i<=3:
if code!=bingo:
while '*' in code:
print('密码中不能含有"*"号!您还有',count,'次机会!',end=' ')
code=input('请输入密码:')
count-=1
print('密码输入错误!您还有',count,'次机会!',end=' ')
if count==0:
break
code=input('请输入密码:')
i+=1
elif code==bingo:
print('密码正确,进入程序……')
break 请大家帮忙看看哪里出了问题?谢谢了。 我这里没有问题呀 本帖最后由 txxcat 于 2020-5-7 22:56 编辑
你输入*后有一次input,然后继续执行下面的打印和重新输入的代码,然后才继续下一次循环进行密码验证,也就是说输入*后的第二次input完全无效,会直接打印密码错误然后又第三次input。
代码改动最少:
code=input('请输入密码:')
bingo='FishC.com'
i=1
count=3
while i<=3:
if code!=bingo:
if '*' in code: #<--改成if
print('密码中不能含有"*"号!您还有',count,'次机会!',end=' ')
code=input('请输入密码:')
continue #<--加入回到循环头
count-=1
print('密码输入错误!您还有',count,'次机会!',end=' ')
if count==0:
break
code=input('请输入密码:')
i+=1
elif code==bingo:
print('密码正确,进入程序……')
break
优化代码:
bingo='FishC.com'
count=3
while count:
code=input('请输入密码:')
if '*' in code: #<--改成if
print('密码中不能含有"*"号!您还有',count,'次机会!',end=' ')
continue
if code!=bingo:
count-=1
print('密码输入错误!您还有',count,'次机会!',end=' ')
else:
print('密码正确,进入程序……')
break txxcat 发表于 2020-5-7 22:38
你输入*后有一次input,然后继续执行下面的打印和重新输入的代码,然后才继续下一次循环进行密码验证,也就 ...
非常感谢你的修改~我看懂了。我对continue的用法还不大熟悉,代码也很繁琐。 liuzhengyuan 发表于 2020-5-7 22:29
我这里没有问题呀
我的代码确实有问题的,你可以看看4楼的解决方法~ 姜饼人 发表于 2020-5-8 08:13
我的代码确实有问题的,你可以看看4楼的解决方法~
我改了一下题目,输入*可以自动删除,练习了remove方法
str = '123456789'
str1=list(str)
count = 3
while count+1:
temp = input("请输入你的密码")
list1 = list(temp)
while '*' in list1:
list1.remove('*')
if str1 == list1:
print("密码输入正确")
break
else:
print("密码输入错误你还有",count,"次机会")
count-=1
小甲鱼{i}号 发表于 2020-5-12 11:37
我改了一下题目,输入*可以自动删除,练习了remove方法
str = '123456789'
str1=list(str)
哈哈哈我也跟着复习了remove(),谢谢呀。
页:
[1]