Skip to main content
 首页 » 编程设计

每次在另一个字符串中找到一个字符串时,Python 都会计数

2025年05月04日29jirigala

我正在尝试枚举程序在较长文本中找到特定字符串的时间,但我卡住了,程序显示响应字符串的长度而不是出现 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 ".