python小问题,谢谢。

小爽昵称已被占用 2009-12-27 02:29:26
不是很理解
i = -1
s = 'abcde'
for i in [None] + range(-1,-len(s),-1)
这句怎么解释,书上说,是为了把i = 0的情况,也遍历出来。。不明白这个[None] .给解释下吧。谢谢
...全文
75 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
thy38 2009-12-28
  • 打赏
  • 举报
回复
你那书是错的,你自己也能看出:
i = -1
s = 'abcde'
print [None] + range(-1,-len(s),-1)
>>>[None, -1, -2, -3, -4]

第一个并不是0。

有两个更改方法:
1.
i = -1
s = 'abcde'

for i in [None] + range(-1,-len(s),-1):
ii = i if i else 0
print ii


2.如果仅仅是为了得到0,-1,...-4,那干脆
i = -1
s = 'abcde'

for i in range(0,-len(s),-1):
print i
  • 打赏
  • 举报
回复
奥,,s[:None] 相当于 s[:],就打印全部了,然后逐一减少。。ok。。
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 thy38 的回复:]
你那书是错的,你自己也能看出:
Python codei=-1
s='abcde'print [None]+ range(-1,-len(s),-1)>>>[None,-1,-2,-3,-4]
第一个并不是0。

有两个更改方法:
1.Python codei=-1
s='abcde'for iin [None]+ range(-1,-len(s),-1):
ii= iif ielse 0print ii

2.如果仅仅是为了得到0,-1,...-4,那干脆
Python codei=-1
s='abcde'for iin range(0,-len(s),-1):print i
[/Quote]
应该不是吧,我是想输出

abcde
abcd
abc
ab
a

书上那种用None的方法是可以正确答应
而从0开始,就不行。
angel_su 2009-12-27
  • 打赏
  • 举报
回复
大概是需要在任何情况下都要进入循环代码块里,譬如len(s)=0或1时,起码有个元素。不喜欢这种形式自己可以尝试改写...
  • 打赏
  • 举报
回复
希望解答下啊。

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧