我正在尝试枚举程序在较长文本中找到特定字符串的时间,但我卡住了,程序显示响应字符串的长度而不是出现 ultrias
的时间作为回应。这是代码:
ultrias = "am 17"
response = "Hi i am 17, did you know I am 17"
num = 0
for ultrias in response:
num += 1
print (num)
其他人已经回答了几种不同的方法来实现您的要求,但是,没有人解释为什么您的代码输出是输入字符串的长度。
for
循环有一个循环变量,它从被迭代的对象中赋值。在对象是字符串的情况下,for 循环将按顺序遍历字符串中的每个字符,将字符分配给循环变量,例如
>>> for i in "Hi there":
... print i
...
H
i
t
h
e
r
e
因此您可以看到 i
被依次分配了字符串“Hi there”中的一个字符。您的代码中也发生了同样的事情:ultrias
是循环变量,并从字符串 "Hi i am 17, did you know I am 17"
中分配连续的字符.
ultrias = "am 17"
response = "Hi i am 17, did you know I am 17"
num = 0
for ultrias in response:
print(ultrias)
num += 1
print (num)
输出将是:
H
i
i
a
m
1
7
.
.
.
3
另请注意,循环终止后 ultrias
的值是循环为其分配的最后一个值 - 不是 "am 17"
而是 "7 "
.
我是一名优秀的程序员,十分优秀!