鱼C论坛

 找回密码
 立即注册
查看: 1769|回复: 17

[已解决]第16讲 新手求教

[复制链接]
发表于 2017-12-16 15:33:02 | 显示全部楼层 |阅读模式

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

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

x
请问下面的代码,我输入的是‘黑夜’,为什么输入的结果却执行‘查找的数据不存在!’,为什么不执行“print(name + '的得分是: ',each[1])”这句?
还是说我这代码写根本就有问题?求教哪位大佬帮忙解释下....
最佳答案
2017-12-16 16:21:17
逝去的时光 发表于 2017-12-16 16:15
那请教一下,for循环的第一次each里没有黑夜,如果我想让它不执行"查找的数据不存在!",在现有的代码基 ...
  1. name = input("请输入你需要查找的用户:")
  2. flag = 0
  3. score = [["迷途",85],["黑夜",88],["小布丁",65],["怡静",75],["娃娃",95]]
  4. for each  in score:
  5.     if name in each:
  6.         flag = 1
  7. if flag == 1:
  8.     print(name+"的得分是:",each[1])
  9. else:
  10.     print("查找的数据不存在!")
复制代码
33.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-12-16 15:53:36 | 显示全部楼层
因为你 for 循环第一次的 each里没有黑夜
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-16 15:55:49 | 显示全部楼层
°蓝鲤歌蓝 发表于 2017-12-16 15:53
因为你 for 循环第一次的 each里没有黑夜

第一次循环时的 each 是["迷途",85] ,没有黑夜,所以程序就跳到else那里去了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-16 16:07:44 | 显示全部楼层
可以使用continue来进行循环体循环
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-16 16:15:11 | 显示全部楼层
°蓝鲤歌蓝 发表于 2017-12-16 15:53
因为你 for 循环第一次的 each里没有黑夜

那请教一下,for循环的第一次each里没有黑夜,如果我想让它不执行"查找的数据不存在!",在现有的代码基础上应该怎么改啊?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-16 16:16:28 | 显示全部楼层
流木kk 发表于 2017-12-16 16:07
可以使用continue来进行循环体循环

你好,那请教一下,该怎么改呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-16 16:21:17 | 显示全部楼层    本楼为最佳答案   
逝去的时光 发表于 2017-12-16 16:15
那请教一下,for循环的第一次each里没有黑夜,如果我想让它不执行"查找的数据不存在!",在现有的代码基 ...
  1. name = input("请输入你需要查找的用户:")
  2. flag = 0
  3. score = [["迷途",85],["黑夜",88],["小布丁",65],["怡静",75],["娃娃",95]]
  4. for each  in score:
  5.     if name in each:
  6.         flag = 1
  7. if flag == 1:
  8.     print(name+"的得分是:",each[1])
  9. else:
  10.     print("查找的数据不存在!")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-16 16:22:11 | 显示全部楼层
逝去的时光 发表于 2017-12-16 16:15
那请教一下,for循环的第一次each里没有黑夜,如果我想让它不执行"查找的数据不存在!",在现有的代码基 ...

或者使用字典,只是不知道你学到没有
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-16 16:28:27 | 显示全部楼层
score 是一个二位列表,成员操作符 in 是找不到你要匹配的元素;把 score 换成字典:

score = {"迷途":85, "黑夜":88, "小布丁":65, "意境":75, "娃娃":95}
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-16 17:57:52 | 显示全部楼层
逝去的时光 发表于 2017-12-16 16:16
你好,那请教一下,该怎么改呢?
  1. for each in score:
  2.         if name in each:
  3.                 print(name + '得分是:' +str(each[1]))
  4.         continue
  5.         print('查找的数据不存在')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-16 17:59:51 | 显示全部楼层
本帖最后由 yjsx86 于 2017-12-16 18:01 编辑
  1. name = input("请输入你需要查找的用户:")
  2. score = [["迷途",85],["黑夜",88],["小布丁",65],["怡静",75],["娃娃",95]]
  3. for each in score:
  4.     if name == each[0]:
  5.         print(name+"的得分是:",each[1])
  6.         break
  7. else:
  8.     print("查找的数据不存在!")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-16 18:02:24 | 显示全部楼层

这么写的话如果 name not in each, 是不会打印"查找的数据不存在的"。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-16 18:10:07 | 显示全部楼层
°蓝鲤歌蓝 发表于 2017-12-16 18:02
这么写的话如果 name not in each, 是不会打印"查找的数据不存在的"。

对哦,谢谢提醒,我没检查过
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-16 18:14:42 | 显示全部楼层
流木kk 发表于 2017-12-16 18:10
对哦,谢谢提醒,我没检查过

因为我试过哈哈
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-16 18:26:09 | 显示全部楼层

好像不能用continue
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-16 18:28:31 | 显示全部楼层
流木kk 发表于 2017-12-16 18:26
好像不能用continue

恩,我试了continue放了好几个地方都不行。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-16 18:49:08 | 显示全部楼层

非常感谢,原来else可以不用在for循环里,我一直认为else要与if是成对存在的,一些基础还是掌握的不好...
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-16 18:50:40 | 显示全部楼层

很感谢你的耐心解答
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-4 19:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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