鱼C论坛

 找回密码
 立即注册
查看: 2082|回复: 4

python第九讲课后练习的一个知识点运用求解

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

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

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

x
第九讲动动手第0题
里面有个问题点就是判断密码里是否有*
答案是'*' in passwd,这个应该是python强大语句的体现
但我想用for来实现,可是只能实现检测到*,但没法判断没有*的时候
我的编程如下
pw = 'Fish.com'
counts = 3
while counts > 0:
    userpw = input('请您输入密码:')   
    for i in userpw:
        if i == '*':
            print('密码里不能有*,您还有',counts,'次机会')
            break
        if userpw == pw:
            print('密码验证成功')
        if userpw != pw:
            print('密码错误,您还有',counts-1,'次机会')
            counts -= 1
            break
这段代码如果输入的密码开始不是*后面是*,那依然会吧机会次数-1.这是因为我在循环中只要第一个符号不是*,就执行机会次数-1的命令,而不是把整个输入密码检测完之后再确定是否执行机会次数-1命令。
但我试了很多次,不知道如何实现把整个密码检测完之后再确定输出的语句。
请问一下如何实现?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-3 22:14:27 | 显示全部楼层
你要把判断密码是否正确的语句放到循环外面来
或是说用 elif 不要用 if
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-3 22:19:31 | 显示全部楼层
自己想出来一个解法了

pw = 'Fish.com'
counts = 3
j = 1
while counts > 0:
    userpw = input('请您输入密码:')   
    for i in userpw:
        if i == '*':
            print('密码里不能有*,您还有',counts,'次机会')
            j = 0
            break
        else:
            j += 1
    if userpw == pw:
        print('密码验证成功')
        break
    if userpw != pw and j != 0:
        print('密码错误,您还有',counts-1,'次机会')
        counts -= 1

不过有没有大神有更简单更好的写法呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-4 07:07:20 | 显示全部楼层
为什么要逐个判断呢。直接用in判断有没有*就行了
pw = 'Fish.com'
counts = 3
while counts > 0:
    userpw = input('请您输入密码:')    
    if '*' in userpw:
        print('密码里不能有*,您还有',counts,'次机会')
        continue
    if userpw == pw:
        print('密码验证成功')
        break
    else:
        print('密码错误,您还有',counts-1,'次机会')
        counts -= 1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-4 15:19:11 | 显示全部楼层
sunrise085 发表于 2020-5-4 07:07
为什么要逐个判断呢。直接用in判断有没有*就行了

多换种思路解法,这样才能更深刻了解程序吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-11 18:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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