Zingy 发表于 2020-7-8 19:22:52

求助 each【1】是什么

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

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

qiuyouzhi 发表于 2020-7-8 19:28:50

each是一个列表(因为score的每个元素都是列表),然后each就是这个列表的第2个元素。

sunrise085 发表于 2020-7-8 19:33:47

for each in score:
这句话是遍历score列表,each是score的一个元素,而score的每个元素都是列表,所以each是列表,each[1]就是列表的第二个元素。
例如:for循环第一次,each为['迷途', 85],那么each就是85

青出于蓝 发表于 2020-7-8 19:39:42

for each in score:            each遍历列表
    if name in each:          name便利each内的列表
      print(name + '的得分是:', each)打印each列表内的元素
      IsFind = True
      break
   

Zingy 发表于 2020-7-8 19:45:39

青出于蓝 发表于 2020-7-8 19:39
for each in score:            each遍历列表
    if name in each:          name便利each内的列表
   ...

each【1】打印的是名字加分数吗?为什么不是从each【0】开始

Zingy 发表于 2020-7-8 20:00:32

qiuyouzhi 发表于 2020-7-8 19:28
each是一个列表(因为score的每个元素都是列表),然后each就是这个列表的第2个元素。

为什么不是从each【0】开始,最后出来的结果是name的得分是:黑夜 80 吗

Hello. 发表于 2020-7-8 20:11:37

本帖最后由 Hello. 于 2020-7-8 20:16 编辑

Zingy 发表于 2020-7-8 20:00
为什么不是从each【0】开始,最后出来的结果是name的得分是:黑夜 80 吗

如果从each 开始

会打印第一个元素(黑夜)PS:但我们想要打印第二个元素(也就是积分)

也就是说

输入 >>> 黑夜

打印 >>> 黑夜的积分是:黑夜

这是完全错误的

如果有帮助,请设置最佳答案^_^

Hello. 发表于 2020-7-8 20:12:22

Zingy 发表于 2020-7-8 19:45
each【1】打印的是名字加分数吗?为什么不是从each【0】开始

打印格式>>> 黑夜的积分是:80

Zingy 发表于 2020-7-8 20:19:56

Hello. 发表于 2020-7-8 20:11
如果从each 开始

会打印第一个元素(黑夜)PS:但我们想要打印第二个元素(也就是积分)


不明白这个题的题目要求,我理解的是把所有的人的分数都打印出来

Zingy 发表于 2020-7-8 20:20:37

Hello. 发表于 2020-7-8 20:12
打印格式>>> 黑夜的积分是:80

each【1】包含的不是黑夜+80吗

Hello. 发表于 2020-7-8 20:21:12

Zingy 发表于 2020-7-8 20:19
不明白这个题的题目要求,我理解的是把所有的人的分数都打印出来

要求是 输入列表中的用户名,然后打印出对应的分数

Hello. 发表于 2020-7-8 20:22:50

Zingy 发表于 2020-7-8 20:20
each【1】包含的不是黑夜+80吗

为什么是黑夜+80 ?
each 是打印第二个元素
也就是 ['黑夜',80]
打印80

qiuyouzhi 发表于 2020-7-8 20:25:02

Zingy 发表于 2020-7-8 20:00
为什么不是从each【0】开始,最后出来的结果是name的得分是:黑夜 80 吗

each是名字呀

青出于蓝 发表于 2020-7-8 20:36:36

Zingy 发表于 2020-7-8 20:00
为什么不是从each【0】开始,最后出来的结果是name的得分是:黑夜 80 吗

each遍历的列表都有两个元素,each[0]是指列表内的第一个元素
这部分可能不好理解,咱们慢慢来{:10_282:}

Hello. 发表于 2020-7-8 20:40:52

本帖最后由 Hello. 于 2020-7-8 20:43 编辑

写了注释,你看看,哪里不懂继续问,懂了设置最佳答案^_^
name = input('请输入待查找的用户名:')#等待用户输入用户名并记录
score = [['迷途', 85], ['黑夜', 80], ['小布丁', 65], ['福禄娃娃', 95], ['怡静', 90]]#定义一些数据,方便后面查找
IsFind = False

for each in score:
    if name in each:
      print(name + '的得分是:', each)#当输入的名字在列表中时,查找并打印对应得分 (eg:检测到输入了黑夜,打印>黑夜的得分是 80)
      IsFind = True
      break
   
if IsFind == False:
    print('查找的数据不存在!')

青出于蓝 发表于 2020-7-8 20:47:00

ench遍历了列表score,然后查询这个用户名是否存在,因为每个小列表都有两个元素,第一个元素是用户名,第二个是对应分数。如果存在,则打印列表第二个元素也就是each
页: [1]
查看完整版本: 求助 each【1】是什么