鱼C论坛

 找回密码
 立即注册
查看: 2277|回复: 6

[已解决]python 课后作业16讲的疑问

[复制链接]
发表于 2020-10-15 23:13:32 | 显示全部楼层 |阅读模式

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

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

x

name = input('请输入待查找的用户名:')
score = [['迷途', 85], ['黑夜', 80], ['小布丁', 65], ['福禄娃娃', 95], ['怡静', 90]]
IsFind = False

for each in score:
    if name in each:
        print(name + '的得分是:', each[1])
        IsFind = True
        break
   
if IsFind == False:
    print('查找的数据不存在!')

修改代码,要求当用户查找的用户名不存在时,重复获取用户输入
最佳答案
2020-10-15 23:37:29
可以使用while循环,限制IsFind == False重复这个循环就可以啦,代码如下
  1. IsFind = False
  2. while IsFind == False:
  3.     name = input('请输入待查找的用户名:')
  4.     score = [['迷途', 85], ['黑夜', 80], ['小布丁', 65], ['福禄娃娃', 95], ['怡静', 90]]


  5.     for each in score:
  6.         if name in each:
  7.             print(name + '的得分是:', each[1])
  8.             IsFind = True
  9.             break
  10.         
  11.     if IsFind == False:
  12.         print('查找的数据不存在!')
复制代码

效果如下
微信截图_20201015233402.png 微信截图_20201015233420.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-10-15 23:36:28 | 显示全部楼层
print('本程序支持重复执行,输入“exit”即可退出程序')
while True:
    name = input("代码省略自己写")
    #输入完检测是否输入了程序退出指令,不加退出指令则程序只能点叉关掉,不科学
    if name == "exit":
        break
    #后面复制你的代码
    #查找数据不存在后,使用“continue”,让程序循环执行即可
    print("查找的数据不存在")
    continue
   
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-15 23:37:29 | 显示全部楼层    本楼为最佳答案   
可以使用while循环,限制IsFind == False重复这个循环就可以啦,代码如下
  1. IsFind = False
  2. while IsFind == False:
  3.     name = input('请输入待查找的用户名:')
  4.     score = [['迷途', 85], ['黑夜', 80], ['小布丁', 65], ['福禄娃娃', 95], ['怡静', 90]]


  5.     for each in score:
  6.         if name in each:
  7.             print(name + '的得分是:', each[1])
  8.             IsFind = True
  9.             break
  10.         
  11.     if IsFind == False:
  12.         print('查找的数据不存在!')
复制代码

效果如下
微信截图_20201015233402.png 微信截图_20201015233420.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-15 23:44:23 | 显示全部楼层
你这是整句话疑问,不懂其中的表示啥的吗

也就是当用户输入一个不存在的名字, 他就会放回叫你重新输入一次,一直输入不正确一直返回,除非添加一个输出几次错误自动退出,

直接加一个判断就好了,判断输入名字是否存在对象 score中,不存在则返回重新输入,在添加一个输入几次就会退出的条件,count加一个计数的就好

  1. name = input("请输入带查找的用户名:")
  2. score =  [['迷途', 85], ['黑夜', 80], ['小布丁', 65], ['福禄娃娃', 95], ['怡静', 90]]
  3. conut = 4  # 计数器,用来停止循环
  4. IsFind = False  # 就是False
  5. while conut != 1:
  6.    
  7.     for each in score:   # 遍历score 对象
  8.         if name in each: # 判断each(也就是score对象每个元素拿出来查找对比输入的值存不存在)有的话打印出来然后跳出循环
  9.             print(name + '的得分是:',each[1])
  10.             IsFind = True  # 这里对象变成了True 所以下面的代码将不会执行,直接跳出循环,结束
  11.             conut = 1 # 直接等于1,跳出循环



  12.     if IsFind == False:    # 如果没有,则让用户接着输入,循环到计数器等于1就会退出循环
  13.         print("查找的数据不存在")
  14.         conut -= 1
  15.         print("请在次输入待查找的用户名,您还有%s次机会"%conut)
  16.         name = input('请输入:')  
复制代码


我也是新手,代码写的有点差
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-15 23:46:38 | 显示全部楼层
好家伙,来晚了一点,没了最佳
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-10-15 23:57:14 | 显示全部楼层
qq1484730945 发表于 2020-10-15 23:44
你这是整句话疑问,不懂其中的表示啥的吗

也就是当用户输入一 ...

你的回答也很有帮助谢谢,我是小白,唉一个脑筋没转过来,对whlie循环理解不深刻
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-16 00:05:39 | 显示全部楼层
小森2020 发表于 2020-10-15 23:57
你的回答也很有帮助谢谢,我是小白,唉一个脑筋没转过来,对whlie循环理解不深刻

多做作业就懂了,我都是这样过来的,哈哈哈,睡觉了,不懂就多发帖子问问就好了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-19 23:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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