鱼C论坛

 找回密码
 立即注册
查看: 2233|回复: 28

while循环问题

[复制链接]
发表于 2020-6-11 16:25:45 | 显示全部楼层 |阅读模式

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

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

x
设计一个验证用户密码程序,用户只有三次机会输入错误,不过如果用户输入的内容中包含"*"则不计算在内。

passwords = 'FishC.com'
ent = input('请输入密码 (你有三次机会输入):')
times = 3
while passwords != ent:
    if times == 1:
        print ('超出输入次数 结束')
        break
    if passwords == ent:
        print ('密码正确!进入程序。。。。。')

    else:
        if ('*' in ent):
            times -= 1
            ent = input ('密码输入错误!(密码含有*符号) 你还有%d'%(times)+'机会')
        else:
            times -= 1
            ent = input ('密码输入错误!你还有%d'%(times)+'机会')



小白求助啊
其他基本上是没有问题的了,就红色加粗那里
当while循环里面条件不被满足(或者说if passowrds == ent)的时候,就退出循环了?
为什么不打印下一句  print ('密码正确!进入程序。。。。。')
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-6-11 16:28:17 | 显示全部楼层
本帖最后由 Mike_python小 于 2020-6-11 16:32 编辑

因为 你设置的是passwords != ent 所以 passwords = ent是不可能被执行的
给你改一下代码:
  1. passwords = 'FishC.com'
  2. ent = input('请输入密码 (你有三次机会输入):')
  3. times = 3
  4. while True:
  5.     if times == 1:
  6.         print ('超出输入次数 结束')
  7.         break
  8.     if passwords == ent:
  9.         print ('密码正确!进入程序。。。。。')
  10.         break
  11.     else:
  12.         if ('*' in ent):
  13.             times -= 1
  14.             ent = input ('密码输入错误!(密码含有*符号) 你还有%d'%(times)+'机会')
  15.         else:
  16.             times -= 1
  17.             ent = input ('密码输入错误!你还有%d'%(times)+'机会')
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

发表于 2020-6-11 16:28:48 | 显示全部楼层
如果可以的话 设置个最佳吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-11 16:30:44 | 显示全部楼层
本帖最后由 1223253411 于 2020-6-11 16:32 编辑
Mike_python小 发表于 2020-6-11 16:28
因为 你设置的是passwords != ent 所以 passwords = ent是不可能被执行的
给你改一下代码:


我觉的最后的print不能放在最后
因为这样的话无论成不成功都会打印
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-11 16:30:49 | 显示全部楼层
我现在改了一下 你看改之后的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-11 16:31:49 | 显示全部楼层
而且你还有个错误 就是输入 * 号 也算入次数了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-11 16:32:15 | 显示全部楼层
1223253411 发表于 2020-6-11 16:30
我觉的最后的print不能放在最后
因为这样的话无论成不成功都会打印
加个else吧

谢谢提醒 已改正
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-11 16:34:18 | 显示全部楼层
  1. passwords = 'FishC.com'
  2. ent = input('请输入密码 (你有三次机会输入):')
  3. times = 3
  4. while passwords != ent:
  5.     if times == 1:
  6.         print ('超出输入次数 结束')
  7.         break
  8.     else:
  9.         if ('*' in ent):
  10.             ent = input ('密码输入错误!(密码含有*符号) 你还有%d'%(times)+'机会')
  11.         else:
  12.             times -= 1
  13.             ent = input ('密码输入错误!你还有%d'%(times)+'机会')
  14.     if passwords == ent:
  15.         print ('密码正确!进入程序。。。。。')
  16. if times == 3 :
  17.     print('恭喜你!第一次就猜中了!')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-11 16:35:44 | 显示全部楼层
Mike_python小 发表于 2020-6-11 16:33
我去 你这叫 先占楼 在解答 你好狠呀
这样别人以为我是抄袭 你是最佳
你这

不是先占在答  我是第一次说错了 然后改了  我第一次说是 times 的原因

而且你有实力怕什么抄袭?自己不是抄袭就不是!你观念要摆正
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-11 16:37:57 | 显示全部楼层
Mike_python小 发表于 2020-6-11 16:37
我却最佳……
但是这用真的容易被误解

唉  无语了我... 你自己看吧,不和你说了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-11 16:38:48 | 显示全部楼层
Mike_python小 发表于 2020-6-11 16:33
我去 你这叫 先占楼 在解答 你好狠呀
这样别人以为我是抄袭 你是最佳
你这

这也是一种策略……先到先得
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-11 16:40:59 | 显示全部楼层
本帖最后由 Mike_python小 于 2020-6-11 16:43 编辑
KevinHu 发表于 2020-6-11 16:38
这也是一种策略……先到先得


@Twilight6 下次我也用用 看我最佳涨不涨
而且你说这是不是会被误解
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-11 16:40:59 | 显示全部楼层
本帖最后由 1223253411 于 2020-6-11 16:49 编辑

什么鬼

  1. passwords = 'FishC.com'
  2. times = 3  # 当成计数器吧,循环一次减一次
  3. while times > 0:
  4.     ent = input("请输入密码:")
  5.     if passwords == ent:
  6.         print ('密码正确!进入程序。。。。。')
  7.         break
  8.     else:
  9.         if '*' in ent:
  10.             print('密码输入错误!(密码含有*符号) 你还有%d'%(times)+'机会')
  11.         else:
  12.             times -= 1
  13.             print('密码输入错误!你还有%d'%(times)+'机会')
复制代码


这样不是更好嘛
times用来当计数器
抛弃不用的东西
又简单,代码可读性又挺高
如果用elif的话更简单
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-11 16:42:49 | 显示全部楼层

我主要是急
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-11 16:43:37 | 显示全部楼层
Mike_python小 发表于 2020-6-11 16:40
@Twilight6 下次我也用用 看我最佳涨不涨
而且你说这是不是会被误解

。。。。。
你心眼也太小了吧
为一个最佳斤斤计较?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-11 16:44:27 | 显示全部楼层
qiuyouzhi 发表于 2020-6-11 16:43
。。。。。
你心眼也太小了吧
为一个最佳斤斤计较?

这个事情我不想谈论了 我删帖了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-11 16:47:04 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-11 16:50:13 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-11 16:51:22 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-11 16:51:57 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-20 01:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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