鱼C论坛

 找回密码
 立即注册
查看: 691|回复: 9

[已解决]第009讲:了不起的分支和循环3 课后作业动动手:0

[复制链接]
发表于 2020-5-9 21:48:35 | 显示全部楼层 |阅读模式

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

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

x
课后题目如下:

0. 设计一个验证用户密码程序,用户只有三次机会输入错误,不过如果用户输入的内容中包含"*"则不计算在内。
  
程序演示如图:
053244g5qmc891goc9mm1x.png

我写的程序如下:
bingo='FishC.com'
i=3
password=input('请输入密码:')

while password!=bingo and i>0:
    if '*' in password:
        print('密码中不能含有“*”号!您还有',i,'次机会!请输入密码:')
        continue
    else:
        print('密码输入错误!您还有',i-1,'次机会!请输入密码:')
        i-=1
print('密码正确,进入程序......')

但是程序好像错误,不知道哪里有问题,望大佬能帮忙解惑,拜托
最佳答案
2020-5-10 08:33:34
Melanie学python 发表于 2020-5-9 22:50
谢谢大佬,我参考大佬的程序,改进了我的程序,如下:
bingo='FishC.com'
i=3
password=input('请输入密码:')
flag = False

while i > 0:
    if password == bingo:
        flag = True
        break
    elif '*' in password:
        password = input('密码中不能含有“*”号!您还有' + str(i) +'次机会!请输入密码:')
    else:
        password = input('密码输入错误!您还有'+str(i)+'次机会!请输入密码:')
        i-=1

if flag:
    print('密码正确,进入程序......')
else:
    print("错误次数太多!")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-9 21:57:18 | 显示全部楼层
改成这样:
bingo='FishC.com'
i=3
password=input('请输入密码:')
flag = False

while i>0:
    if password == bingo:
        flag = True
        break
    elif '*' in password:
        password = input('密码中不能含有“*”号!您还有' + str(i) +'次机会!请输入密码:')
    else:
        i-=1
        password = input('密码输入错误!您还有'+str(i)+'次机会!请输入密码:')

if flag:
    print('密码正确,进入程序......')
else:
    print("错误次数太多!")

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
Melanie学python + 5 + 5 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-9 22:50:23 | 显示全部楼层
本帖最后由 Melanie学python 于 2020-5-9 22:52 编辑


谢谢大佬,我参考大佬的程序,改进了我的程序,如下:
bingo='FishC.com'
i=3
password=input('请输入密码:')

while password!=bingo and i>0:
    if '*' in password:
        password=input('密码中不能含有"*"号!您还有'+str(i)+'次机会!请输入密码:')
    else:
        password=input('密码输入错误!您还有'+str(i-1)+'次机会!请输入密码:')
        i-=1
if password==bingo:
    print('密码正确,进入程序......')
else:
    print('已错误3次,没有机会啦~')

但是有一个问题,就是实际上会有四次机会,经过测试,大佬的程序和我的程序都会出现如下图的问题,不知道是哪里有问题呢?
QQ截图20200509224857.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-10 00:08:16 | 显示全部楼层
如下,这样就可以解决了
bingo='FishC.com'
i=3
password=input('请输入密码:')

while password!=bingo and i>0:
    if '*' in password:
        password=input('密码中不能含有"*"号!您还有'+str(i+1)+'次机会!请输入密码:')
    else:
        password=input('密码输入错误!您还有'+str(i)+'次机会!请输入密码:')
        i-=1
if password==bingo:
    print('密码正确,进入程序......')
else:
    print('已错误3次,没有机会啦~')

评分

参与人数 1荣誉 +3 鱼币 +3 贡献 +3 收起 理由
Melanie学python + 3 + 3 + 3 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-10 08:33:34 | 显示全部楼层    本楼为最佳答案   
Melanie学python 发表于 2020-5-9 22:50
谢谢大佬,我参考大佬的程序,改进了我的程序,如下:
bingo='FishC.com'
i=3
password=input('请输入密码:')
flag = False

while i > 0:
    if password == bingo:
        flag = True
        break
    elif '*' in password:
        password = input('密码中不能含有“*”号!您还有' + str(i) +'次机会!请输入密码:')
    else:
        password = input('密码输入错误!您还有'+str(i)+'次机会!请输入密码:')
        i-=1

if flag:
    print('密码正确,进入程序......')
else:
    print("错误次数太多!")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-10 09:49:26 | 显示全部楼层
Wei_Jian_Xian 发表于 2020-5-10 00:08
如下,这样就可以解决了

谢谢大佬,但是这样还是有4次机会
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-10 09:52:10 | 显示全部楼层

谢谢大佬,已解决
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-10 10:26:55 | 显示全部楼层

设个最佳答案呗~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-10 15:55:37 | 显示全部楼层
本帖最后由 Melanie学python 于 2020-5-10 15:57 编辑


那可能要改一下,因为你的答案实际上还是4次机会。
QQ截图20200510155422.png

我是把条件里面的i>0修改为i>1解决了这个问题。
程序如下:
bingo='FishC.com'
i=3
password=input('请输入密码:')

while password!=bingo and i>1:
    if '*' in password:
        password=input('密码中不能含有"*"号!您还有'+str(i)+'次机会!请输入密码:')
    else:
        password=input('密码输入错误!您还有'+str(i-1)+'次机会!请输入密码:')
        i-=1
if password==bingo:
    print('密码正确,进入程序......')
else:
    print('已错误3次,没有机会啦~')

另外,请问。。。。。。最佳答案怎么设置?不好意思啊~我以前没玩过论坛。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-10 16:00:54 | 显示全部楼层
Melanie学python 发表于 2020-5-10 15:55
那可能要改一下,因为你的答案实际上还是4次机会。

噢,那个BUG我后来改了一下,但你自己改了更好
现在可以设置最佳了吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-27 06:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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