s="abcd"
for i in range(len(s)-1)[::-1]:
print(s[i])
我不知道此for循环如何工作?
类范围(开始,停止[,步骤])
范围类型表示数字的不变序列,通常用于在for循环中循环特定次数。 (取自python docs)。
有关进一步的阅读,请转到python docs:range
阅读上面的内容(取自python文档)并打印表达式:range(len(s)-1)[::-1]
,
print(range(len(s)-1)[::-1])
产生:
range(2, -1, -1)
所以我们的代码成为:
s="abcd"
for i in range(2, -1, -1):
print(s[i])
现在我希望您了解python在幕后的作用!
所以您的范围从0到2 (len(s)-1) - 1
,但是[::-1]
反转了范围发送的任何内容。
所以您的循环从2变为1到0
s = "abcd"
for 2 > it prints c
for 1 > it prints b
for 0 > it prints a
如果要从d开始:
s="abcd"
for i in range(len(s))[::-1]:
print(s[i])
因为您的范围将转换为range(2,-1,-1)。您只需要从范围(len s -1)[::-1]中删除-1。
对于s="abcd"
,我们有len(s)-1
等于3
。
[range(3)
生成(0, 1, 2)
。
[(0, 1, 2)[::-1]
产生(2, 1, 0)
。
因此for循环将在s[i]
中为i
打印(2, 1, 0)
,结果为cba
。