鱼C论坛

 找回密码
 立即注册
查看: 2568|回复: 7

[已解决]验证用户密码程序

[复制链接]
发表于 2020-5-7 22:06:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
运行结果:
====
请输入密码:**
密码中不能含有"*"号!您还有 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
最佳答案
2020-5-7 22:38:05
本帖最后由 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-7 22:07:22 | 显示全部楼层
请大家帮忙看看哪里出了问题?谢谢了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-7 22:29:04 | 显示全部楼层
我这里没有问题呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-7 22:38:05 | 显示全部楼层    本楼为最佳答案   
本帖最后由 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-8 08:11:10 | 显示全部楼层
txxcat 发表于 2020-5-7 22:38
你输入*后有一次input,然后继续执行下面的打印和重新输入的代码,然后才继续下一次循环进行密码验证,也就 ...

非常感谢你的修改~我看懂了。我对continue的用法还不大熟悉,代码也很繁琐。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-8 08:13:42 | 显示全部楼层
liuzhengyuan 发表于 2020-5-7 22:29
我这里没有问题呀

我的代码确实有问题的,你可以看看4楼的解决方法~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-12 11:37:31 | 显示全部楼层
姜饼人 发表于 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-12 17:13:31 | 显示全部楼层
小甲鱼{i}号 发表于 2020-5-12 11:37
我改了一下题目,输入*可以自动删除,练习了remove方法
str = '123456789'
str1=list(str)

哈哈哈我也跟着复习了remove(),谢谢呀。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-11 19:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表