彦彦儿 发表于 2020-6-23 17:59:08

《零基础入门学习Python》第009讲课后题

0. 设计一个验证用户密码程序,用户只有三次机会输入错误,不过如果用户输入的内容中包含"*"则不计算在内。
count = 3
password = 'FishC.com'

while count:
    passwd = input('请输入密码:')
    if passwd == password:
      print('密码正确,进入程序......')
      break
    elif '*' in passwd:
      print('密码中不能含有"*"号!您还有', count, '次机会!', end=' ')
      continue
    else:
      print('密码输入错误!您还有', count-1, '次机会!', end=' ')   
    count -= 1

我发现没有“continue”这个程序照样能走啊,为什么还要加这个continue呢?{:5_107:}

Twilight6 发表于 2020-6-23 18:01:46

本帖最后由 Twilight6 于 2020-6-23 18:03 编辑



continue 的作用是终止本次循环 直接开始下次循环,使本次循环后面的代码都不执行了 ,也就是 不会执行count -= 1

因为题目要求 输入 * 号 不计算错误次数,所以我们这里使用 continue 以来避免将 count -= 1

如果你去掉 continue 那么这里就算你输入了 * 号 也会导致 count 减少 1

heidern0612 发表于 2020-6-23 18:38:30

没有这个continue的话,你的elif分支就继续往下走,走到底的话,count就-=1了。

彦彦儿 发表于 2020-6-24 10:51:16

heidern0612 发表于 2020-6-23 18:38
没有这个continue的话,你的elif分支就继续往下走,走到底的话,count就-=1了。

懂了!
页: [1]
查看完整版本: 《零基础入门学习Python》第009讲课后题