星空攻城狮 发表于 2020-7-12 09:30:02

新人求助,各位大神 最后的 print(s[i]) 可以换成 print(i) 吗? 为什么啊?

s = 'welcome'
for i in range (0 , len(s) , 2):
    print(s)

Twilight6 发表于 2020-7-12 09:31:25



不能 因为你 for 循环是循环一个 range 整数序列,而此时 s 表示索引的是 s 字符串的第 i 个字符


s = 'welcome'
for i in range (0 , len(s) , 2):
    print(s)

打印结果:
w
l
o
e
去掉 s 后
s = 'welcome'
for i in range (0 , len(s) , 2):
    print(i)

打印结果:
0
2
4
6

Twilight6 发表于 2020-7-12 09:33:25



如果你想直接打印字符,那么可以改成这样:
s = 'welcome'
for i in s[::2]:
    print(i)
输出结果:
w
l
o
e

liuzhengyuan 发表于 2020-7-12 09:33:30

for 循环遍历的 是 s 字符串 的下标,而不是 s 字符串每一个的字符

星空攻城狮 发表于 2020-7-12 09:46:41

liuzhengyuan 发表于 2020-7-12 09:33
for 循环遍历的 是 s 字符串 的下标,而不是 s 字符串每一个的字符

谢谢! 我的理解是
s = 'welcome'
for i in s[::2]:   
    print(i)

i 代表的是 s() 里面的字符

s = 'welcome'
for i in range (0 , len(s) , 2):
    print(i)

i 代表的是 s() 里面的字符的下标

这样对不对啊?

星空攻城狮 发表于 2020-7-12 09:47:19

Twilight6 发表于 2020-7-12 09:31
不能 因为你 for 循环是循环一个 range 整数序列,而此时表示索引的是 s 字符串的第 i 个字符




谢谢! 我的理解是
s = 'welcome'
for i in s[::2]:   
    print(i)

i 代表的是 s() 里面的字符

s = 'welcome'
for i in range (0 , len(s) , 2):
    print(i)

i 代表的是 s() 里面的字符的下标

这样对不对啊?

Twilight6 发表于 2020-7-12 09:49:36

星空攻城狮 发表于 2020-7-12 09:47
谢谢! 我的理解是
s = 'welcome'
for i in s[::2]:   


这里 for 循环的 i 代表的是 s 里面的字符

对这里 i 代表的是 s 里面的字符的下标

对的,不能加括号

星空攻城狮 发表于 2020-7-12 10:02:41

Twilight6 发表于 2020-7-12 09:49
这里 for 循环的 i 代表的是 s 里面的字符

对这里 i 代表的是 s 里面的字符的下标


不能加括号是什么意思?不太明白

Twilight6 发表于 2020-7-12 10:03:51

星空攻城狮 发表于 2020-7-12 10:02
不能加括号是什么意思?不太明白



这是语法规则,括号一般指的是调用函数,字符串不是函数,你可以自己去试试在字符串后面加上括号,看看运行会发生什么~
页: [1]
查看完整版本: 新人求助,各位大神 最后的 print(s[i]) 可以换成 print(i) 吗? 为什么啊?