鱼C论坛

 找回密码
 立即注册
查看: 2766|回复: 12

[已解决]09课后作业问题

[复制链接]
发表于 2020-2-20 09:07:55 | 显示全部楼层 |阅读模式

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

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

x
temp = input('输入密码:')
times = 3
i = ''
while True:
    print (i,'diyige')
    print(temp,'waixunhuan')
    for i in temp:
        print(i,'dierge')
        if i == '*':
            print('您还有', times,'次机会,密码不能有*号,', end='')
            temp = input('请重新输入:')
            print(i)
            print(temp)
print('end')   

请问大神们,我这个程序可以判定*号了,但是怎么退出这个循环呢,我在哪加break都不对,要么就直接退出,要么就死循环,打印不了end。
请指点!谢谢!
最佳答案
2020-2-20 09:18:18
swselina 发表于 2020-2-20 09:11
你好,times是次数,他在循环体内,根本没有改变过,我看题目是输入*号就忽略不计,不算times的数
  1. times = 3
  2. password = 'qiuyouzhi'
  3. while times > 0:
  4.     passwd = input("请输入密码:")
  5.     if '*' in passwd:
  6.         print("密码中不能有*号!你还有%d次输入机会." % times, end = '')
  7.         continue
  8.     if passwd != password:
  9.         times -= 1
  10.         print("密码不正确,您还有%d次输入机会." % times, end = '')
  11.         continue
  12.     else:
  13.         break
  14. if times > 0:
  15.     print("登录成功!")
  16. else:
  17.     print("登录失败!")
复制代码

试试用这个
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-20 09:09:25 | 显示全部楼层
把while True 改成while times > 0试试
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-20 09:11:41 | 显示全部楼层
qiuyouzhi 发表于 2020-2-20 09:09
把while True 改成while times > 0试试

你好,times是次数,他在循环体内,根本没有改变过,我看题目是输入*号就忽略不计,不算times的数
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-20 09:14:31 | 显示全部楼层
swselina 发表于 2020-2-20 09:11
你好,times是次数,他在循环体内,根本没有改变过,我看题目是输入*号就忽略不计,不算times的数

那你写times这个变量干嘛?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-20 09:18:18 | 显示全部楼层    本楼为最佳答案   
swselina 发表于 2020-2-20 09:11
你好,times是次数,他在循环体内,根本没有改变过,我看题目是输入*号就忽略不计,不算times的数
  1. times = 3
  2. password = 'qiuyouzhi'
  3. while times > 0:
  4.     passwd = input("请输入密码:")
  5.     if '*' in passwd:
  6.         print("密码中不能有*号!你还有%d次输入机会." % times, end = '')
  7.         continue
  8.     if passwd != password:
  9.         times -= 1
  10.         print("密码不正确,您还有%d次输入机会." % times, end = '')
  11.         continue
  12.     else:
  13.         break
  14. if times > 0:
  15.     print("登录成功!")
  16. else:
  17.     print("登录失败!")
复制代码

试试用这个
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-20 09:20:59 | 显示全部楼层
qiuyouzhi 发表于 2020-2-20 09:14
那你写times这个变量干嘛?

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

这是题目,因为times是计数那3次的,所以我先定义一个times,但这第一个如果输入*,则重新输入的循环里没有用到而已。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-20 09:22:23 | 显示全部楼层

哦,我明白了,谢谢,用continue直接运行循环,不是用break跳出,我之前一直想用break,没想过用continue....有点自己给自己下套了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-20 09:26:35 | 显示全部楼层

还请教个问题,in这个 我试过用在while里,是不行的,他只在for 和 if里能用么
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-20 09:31:13 | 显示全部楼层

temp = input('输入密码:')
times = 3                              次数在这定义3次之后,后面的程序没有更改
i = ''
while True:                             在这个无线循环的条件下,没有判断密码是否正确的语句,只有判断时候带有“ * ”的判断
    print (i,'diyige')
    print(temp,'waixunhuan')      在这里是打印出你输入的密码     
    for i in temp:
        print(i,'dierge')
        if i == '*':
            print('您还有', times,'次机会,密码不能有*号,', end='')
            temp = input('请重新输入:')
            print(i)
            print(temp)
break                                      在这里加break可以跳出循环,但是因为没有判断密码的正确语句,所以只是把之前输入的密码打印出来
print('end')   

既然是密码,之前要先定义一个密码呀,定义好密码后要与输入的密码进行对比是否正确。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-20 09:37:42 | 显示全部楼层
swselina 发表于 2020-2-20 09:26
还请教个问题,in这个 我试过用在while里,是不行的,他只在for 和 if里能用么

应该是吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-20 09:57:25 | 显示全部楼层
dudaguo 发表于 2020-2-20 09:31
temp = input('输入密码:')
times = 3                              次数在这定义3次之后,后面的程序 ...

谢谢指正 互相学习
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-20 14:44:40 | 显示全部楼层
加油!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-20 14:51:26 | 显示全部楼层
swselina 发表于 2020-2-20 09:57
谢谢指正 互相学习

print('请输入密码:',end = " ")
password = "FishiC"
i=3
while i>0:
    temp = input()
   
    if "*" in temp:
        print('密码中不能含有"*"号!您还有',i,'次机会!请输入密码:',end=" ")
        continue
    i -= 1
    if temp==password:
        print('密码正确,进入程序......')
        break
    if i>0:
        print('密码输入错误!您还有',i,'次机会!请输入密码:',end=' ')
print('Game Over!')
       这个可以参考下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-2 16:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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