请向我解释变量“count”如何自动将其自身与字符串的每个索引相关联,“你好!”
greeting = 'Hello!'
count = 0
for letter in greeting:
count += 1
if count % 2 == 0:
print(letter)
print(letter)
print('done')
基本上,以下问题询问字符串的每个字母打印的次数。在检查讨论板后,我发现逻辑是输出是H = [1],e = [2],l = [3],l = [4],o = [5],! = [6]。问题是,我不明白为什么会这样。
答案 0 :(得分:1)
Count不与字符串的每个索引相关联。
'Hello'
是一个由不同索引处的多个字符组成的字符串:
`'Hello!'[0] = 'H'`
`'Hello!'[1] = 'e'`
`'Hello!'[2] = 'l'`
`'Hello!'[3] = 'l'`
`'Hello!'[4] = 'o'`
`'Hello!'[5] = '!'`
在for
循环中,每次都在递增变量count
。因此,在第一次迭代中,count=0
。在第二次迭代中,count=1
,依此类推。你的循环只检查count
是否可被2整除。如果是,则它会再次输出与其值对应的字母。因此,您的代码将打印出来
H
e
e
l
l
l
o
!
!
done
答案 1 :(得分:0)
你问:
请向我解释变量" count"如何自动将自己与字符串的每个索引相关联," Hello!"
但是在你的代码中,没有必要使用if语句。您应该将索引或计数添加到字符串项的附近。 只需代码如下:
greeting = 'Hello!'
count = 0
for item in greeting:
print("item={}, index={}, count={:d}".format(item,greeting.index(item),count))
count += 1
这将打印出来:
item=H, index=0, count=0
item=e, index=1, count=1
item=l, index=2, count=2
item=l, index=2, count=3
item=o, index=4, count=4
item=!, index=5, count=5
使用上面的代码,您可以看到计数自动与字符串" Hello!"的每个索引相关联。但是,当您将计数值设置为1时,1&#s; s索引(Index0)字符串与count = 1时相关联,然后将其值相乘,直到带有for循环的索引结束。
在"你好!"字符串有6个项目。第一项索引始终以0开头。但是为了打印更漂亮的显示,例如第一项,第二项,第三项......'您可以添加计数变量,也可以使用枚举函数,如下例所示:
greeting = 'Hello!'
count = 1
for item in greeting:
print("item={}, index={}, count={:d}".format(item,greeting.index(item),count))
count += 1
greeting = 'Hello!'
for count,item in enumerate(greeting,1):
print("item={}, index={}, count={:d}".format(item,greeting.index(item),count))
最后两个代码会给出相同的结果:
item=H, index=0, count=1
item=e, index=1, count=2
item=l, index=2, count=3
item=l, index=2, count=4
item=o, index=4, count=5
item=!, index=5, count=6