【发布时间】:2019-03-14 11:22:25
【问题描述】:
在Codio中,有一个取文件的挑战,搜索a的次数 字符串出现在其中,然后打印该数字。我能够使用一些建议得到结果,但我仍然不清楚一些事情。
主要问题是,循环在什么时候搜索子字符串S?我随处可见的count() 语法涉及使用要搜索的字符串,后跟点运算符,然后是带有我们要查找的子字符串作为参数的函数。它看起来像:P.count(S)
让我困惑的是该函数使用line 代替P。那么这是否意味着该函数正在搜索line 的子字符串?如果是这样,如果line 只是for 循环的计数器变量,那它是如何工作的?我只是想更清楚地了解这个函数在这种情况下是如何工作的,以便让我得到子字符串S 出现在文件P 中的正确次数。
import sys
P= sys.argv[1]
S= sys.argv[2]
# Your code goes here
f = open(P, 'r')
c = 0
for line in f.readlines():
c += line.count(S)
print(c)
【问题讨论】:
-
如果
S是您尝试在文件P中计算出现次数的子字符串,那么当您调用line.count(S)时,它会计算S在字符串中出现的次数line。line不是 for 循环的计数器,它是 for 循环遍历的f.readlines()返回的列表中的每个单独的行字符串。
标签: python string function for-loop readlines