noob循环的Python

noob循环的Python,python,Python,我正在参加麻省理工学院6期的Python编程课程,学习kicks和一个习题集,包括teach在内的每个人都编写了他们的for循环,如下所示: s="whataboutbob" for char in range(len(s)): 这不就是: s="whataboutbob" for char in s: 如果可以使用变量,为什么会有人使用range和len函数?我错过了什么?我会问他们,但我是一个人在上这门课,论坛上也空荡荡的。谢谢。它们不是一回事 for char in s:

我正在参加麻省理工学院6期的Python编程课程,学习kicks和一个习题集,包括teach在内的每个人都编写了他们的for循环,如下所示:

s="whataboutbob"
for char in range(len(s)):
这不就是:

s="whataboutbob"
 for char in s: 

如果可以使用变量,为什么会有人使用range和len函数?我错过了什么?我会问他们,但我是一个人在上这门课,论坛上也空荡荡的。谢谢。

它们不是一回事

for char in s:
    print(char)
将在
s
中打印字符。例如“w”、“h”、“a”等

for n in range(len(s)):
    print(n)

将打印范围(len(s))中字符的数字0、1、2等。

:迭代从零到字符串长度的数字,另一个循环迭代字符串的字符:w、h、a、t,。。。这是不一样的。

如果需要在python中对列表或字符串的索引执行某种操作,那么可以使用
range
函数。从这个意义上讲,在一个范围内迭代提供了更大的灵活性

使用for循环时的另一种选择是使用
enumerate
函数。如果你要写

s="whataboutbob"
for n, char in enumerate(s):
然后在循环中,可以使用变量
n
引用字符串中的索引,使用变量
char
引用该索引中的实际字符。

函数
len()
从0开始获取当前启用的字符数。例如,在苹果公司,a是0,p是1,等等

另一方面

for char in (variable):
    print char
将打印该变量中的每个字母,如下所示
a-p-p-l-e.

这不是同一件事:

s=“whataboutbob”
对于s中的字符:
打印(字符)
会给我们一个结果吗

w
h
a
t
a
b
o
u
t
b
o
b
同时

s=“whataboutbob”
对于范围(len)中的字符:
打印(字符)
会给我们这个结果:

0
1
2
3
4
5
6
7
8
9
10
11

在python中搜索range函数,你会找到答案。试着执行课程中示例的python代码。