鱼C论坛

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

[已解决]010讲的动动手2. 上一题打印的样式不是很好,能不能修改一下代码打印成下图的样式...

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

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

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

x
010讲的动动手2. 上一题打印的样式不是很好,能不能修改一下代码打印成下图的样式呢?【请至少使用两种方法实现】

                               
登录/注册后可看大图

member=['dfaf',3,'dfaa',4,'fazaaf',2]
length=len(member)
for each in range(length):
    print(member[each],member[each+1])
    each+=2
这样写为什么错?
最佳答案
2020-2-14 16:46:27
如果 each 为 length - 1,那么 member[each + 1] 就是 member[length - 1 + 1] 即 member[length],这样写会索引越界。所以应该这样写:

  1. member = ['dfaf', 3, 'dfaa', 4, 'fazaaf', 2]
  2. length = len(member)
  3. for each in range(0, length - 1, 2):    # 设置步长为 2
  4.     print(member[each], member[each + 1])
  5.     # 这里的 each += 2 可以省略
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-14 16:46:27 | 显示全部楼层    本楼为最佳答案   
如果 each 为 length - 1,那么 member[each + 1] 就是 member[length - 1 + 1] 即 member[length],这样写会索引越界。所以应该这样写:

  1. member = ['dfaf', 3, 'dfaa', 4, 'fazaaf', 2]
  2. length = len(member)
  3. for each in range(0, length - 1, 2):    # 设置步长为 2
  4.     print(member[each], member[each + 1])
  5.     # 这里的 each += 2 可以省略
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-14 17:00:29 | 显示全部楼层
zltzlt 发表于 2020-2-14 16:46
如果 each 为 length - 1,那么 member[each + 1] 就是 member[length - 1 + 1] 即 member[length],这样写 ...

嗯嗯我后来也想出来了,但是想问超过范围不执行不是就好了吗,c++是这样的。还想问range里的参数可以是2个吗,还有range(5)在交互面板下回车一下为什么是rang(0,5)不是(0,4)吗一共5个数
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-14 17:02:00 | 显示全部楼层
wr1994 发表于 2020-2-14 17:00
嗯嗯我后来也想出来了,但是想问超过范围不执行不是就好了吗,c++是这样的。还想问range里的参数可以是2 ...

1. Python 不一样。
2. 你应该将其转化成列表:

  1. >>> list(range(5))
  2. [0, 1, 2, 3, 4]
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-14 17:10:54 | 显示全部楼层
zltzlt 发表于 2020-2-14 17:02
1. Python 不一样。
2. 你应该将其转化成列表:

对,列表就是这样的,所以range(5)的范围是不是0,4
还有就是range里可以写2个参数吗,起始跟步长可以省略,但是写2个的话不就搞不清楚了吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-14 17:11:39 | 显示全部楼层
wr1994 发表于 2020-2-14 17:10
对,列表就是这样的,所以range(5)的范围是不是0,4
还有就是range里可以写2个参数吗,起始跟步长可以 ...

写两个参数,第一个参数是起始值,第二个参数就是结束值。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-14 17:14:01 | 显示全部楼层
zltzlt 发表于 2020-2-14 17:11
写两个参数,第一个参数是起始值,第二个参数就是结束值。

range(5)的话是不是应该跟range(0,4)一样的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-14 17:14:40 | 显示全部楼层
wr1994 发表于 2020-2-14 17:14
range(5)的话是不是应该跟range(0,4)一样的

不一样,range(5) 等于 range(0, 5),range(4) 等于 range(0, 4)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-14 17:21:22 | 显示全部楼层
zltzlt 发表于 2020-2-14 17:14
不一样,range(5) 等于 range(0, 5),range(4) 等于 range(0, 4)

那他的范围是不是就是0,1,2,3,4
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-14 17:21:48 | 显示全部楼层
wr1994 发表于 2020-2-14 17:21
那他的范围是不是就是0,1,2,3,4

是,range(5) 的范围是 0 ~ 4,range(4) 的范围是 0 ~ 3
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-14 21:54:08 | 显示全部楼层
zltzlt 发表于 2020-2-14 17:21
是,range(5) 的范围是 0 ~ 4,range(4) 的范围是 0 ~ 3

py的范围是不包括后者的吗,range(0,5)就不包括5,member[1:3]也不包括3
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-14 21:55:19 | 显示全部楼层
wr1994 发表于 2020-2-14 21:54
py的范围是不包括后者的吗,range(0,5)就不包括5,member[1:3]也不包括3

是啊,range(5) 不包括 5
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-15 11:45:01 | 显示全部楼层
zltzlt 发表于 2020-2-14 21:55
是啊,range(5) 不包括 5

range(0,5,2)这里的步长2跟range(0,5)下面写each+=2不一样吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-3 06:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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