鱼C论坛

 找回密码
 立即注册
查看: 1933|回复: 9

python 010视频

[复制链接]
发表于 2016-12-7 18:24:02 | 显示全部楼层 |阅读模式
1鱼币
member = ['小甲鱼', '88', '黑夜', '90', '迷途', '85', '怡静', '90', '秋舞斜阳', '88']
for i in range(len(member)):
    if i%2 == 0:
        print(member[i],member[i + 1])

上述程序中,首先len(member)是返回member的每个元素的长度
range()把返回的数字作为列表排列也就是:
for i in range(3, 2, 2, 2, 2, 2, 2, 2, 4, 2)

为什么会打印出以下结果???
小甲鱼 88
黑夜 90
迷途 85
怡静 90
秋舞斜阳 88
以上思路有哪些问题

最佳答案

查看完整内容

核心问题是对 len()函数用法理解错误, len(对象),统计对象的长度并返回长度值:详细用法见下图 member = ['小甲鱼', '88', '黑夜', '90', '迷途', '85', '怡静', '90', '秋舞斜阳', '88'] for i in range(len(member)): # for 循环,先统计member的长度,也就是元素的个数,然后range(长度)构建一个列表[0、1。。、8、9], i 从这个列表中取,遍历每一个元素 if i%2 == 0: # 余数是0的i,才执行下面的打印语句 符 ...
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-12-7 18:24:03 | 显示全部楼层
本帖最后由 人zai旅途 于 2016-12-8 11:05 编辑

核心问题是对 len()函数用法理解错误,
len(对象),统计对象的长度并返回长度值:详细用法见下图


member = ['小甲鱼', '88', '黑夜', '90', '迷途', '85', '怡静', '90', '秋舞斜阳', '88']
for i in range(len(member)):  # for 循环,先统计member的长度,也就是元素的个数,然后range(长度)构建一个列表[0、1。。、8、9], i 从这个列表中取,遍历每一个元素
    if i%2 == 0:  # 余数是0的i,才执行下面的打印语句  符合条件都是偶数,0,2,4,6,8
        print(member【i】,member[i + 1])   # member【i】利用下标访问元素
所以,打印的是

member[0] member[1]    小甲鱼 88
member[2] member[3]    黑夜  90
member[4] member[5]    迷途 85
member[6] member[7]    怡静 90
member[8] member[9]   秋舞斜阳  88

微信截图_20161208103020.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-12-7 18:51:31 | 显示全部楼层
len(member)不是计算member中有多少个元素?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-12-7 19:31:45 | 显示全部楼层
len(member结果是10,
member = ['小甲鱼', '88', '黑夜', '90', '迷途', '85', '怡静', '90', '秋舞斜阳', '88']
for i in range(10):
    if i%2 == 0:#(0-9其中是偶数)
        print(member[i],member[i + 1])
不知明白没?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-12-8 10:06:27 | 显示全部楼层
本帖最后由 小能豆 于 2016-12-8 10:07 编辑

首先这句话 “上述程序中,首先len(member)是返回member的每个元素的长度”
思路就不正确len(member)是返回member这个列表的长度  是10,而不是返回member列表的每个元素的长度

其次按照正确的思路来分析:
1、len(member)是返回member列表的长度,所以返回值为10,代码简化如下:
for i in range(10)
    if i%2 == 0:
       print(member[i],member[i+1])
2、接着分析程序执行for循环:
for循环的结果是 0、1、2、3、4、5、6、7、8、9
第一次循环i = 0     if 条件中i%2 == 0成立,所以接着执行:print(member[0],member[1])  返回为(member列表中的第一个和第二个的值) 小甲鱼   88
第二次循环i = 1    if 条件中i%2 == 0不成立,所以不执行if语句,接着进行for循环
第三次循环i = 2    if 条件中i%2 == 0成立,所以接着执行:print(member[2],member[3])  返回为(member列表中第二个和第三个的值)    黑夜  90
以后循环如上......

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

使用道具 举报

发表于 2016-12-8 10:28:50 | 显示全部楼层
小能豆 发表于 2016-12-8 10:06
首先这句话 “上述程序中,首先len(member)是返回member的每个元素的长度”
思路就不正确len(member)是返 ...

第三次循环i = 2    if 条件中i%2 == 0成立,所以接着执行:print(member[2],member[3])  返回为(member列表中第二个和第三个的值)    黑夜  90
这里应该是(member列表中第三个和第四个的元素)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-12-8 10:49:07 | 显示全部楼层
人zai旅途 发表于 2016-12-8 10:28
第三次循环i = 2    if 条件中i%2 == 0成立,所以接着执行:print(member[2],member[3])  返回为(member ...

是的是的,想了半天没想出来该怎么描述
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-12-8 13:14:13 | 显示全部楼层
懂了,谢谢大家
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-7 11:16:54 | 显示全部楼层
我也看明白了,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-2-6 23:22:03 | 显示全部楼层
明白了, 谢谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-24 10:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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