For 循环以 "c" 而不是 "d" 开始
For loop starts with "c" instead of "d"
s="abcd"
for i in range(len(s)-1)[::-1]:
print(s[i])
我不明白这个 for 循环是如何工作的?
所以你的范围从 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)
。您只需要从 range (len(s) -1)[::-1]
.
中删除 -1
class 范围(开始,停止[,步骤])
range类型表示一个不可变的数字序列,通常用于在for循环中循环特定次数。 (取自 python 文档)。
如需进一步阅读,请转到 python 文档: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 在幕后做了什么!
对于 s="abcd"
我们有 len(s)-1
等于 3
.
range(3)
生成 (0, 1, 2)
.
(0, 1, 2)[::-1]
结果为 (2, 1, 0)
。
因此 for 循环将打印 s[i]
for i
in (2, 1, 0)
,结果是 cba
.
s="abcd"
for i in range(len(s)-1)[::-1]:
print(s[i])
我不明白这个 for 循环是如何工作的?
所以你的范围从 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)
。您只需要从 range (len(s) -1)[::-1]
.
class 范围(开始,停止[,步骤])
range类型表示一个不可变的数字序列,通常用于在for循环中循环特定次数。 (取自 python 文档)。
如需进一步阅读,请转到 python 文档: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 在幕后做了什么!
对于 s="abcd"
我们有 len(s)-1
等于 3
.
range(3)
生成 (0, 1, 2)
.
(0, 1, 2)[::-1]
结果为 (2, 1, 0)
。
因此 for 循环将打印 s[i]
for i
in (2, 1, 0)
,结果是 cba
.