如果有很多例子都是非自我解释且文档没有太大帮助,那么我可以在代码中使用 with 语句来实现这一点:
def r_f(fn, n, vl):
cn, rd = 0, 0
with open(fn, 'r') as f:
for value in f.readlines():
rd += 1
if rd > n:
break
if int(value) == vl:
cn += 1
return cn
在互联网上花了一个小时之后,我发现了一些让我有一个可以理解的解释,即with语句意味着使用多个语句,但那又意味着什么,我不太确定。花了好几个小时之后,我发现open(fn, 'r')
代码的目的是读取文件名为(with other operations of 'w', etc.)
的文件,但以下几行f.readlines()
很难找到。因此,我不知道上面的代码是做什么的。因此,我的问题被列为:
代码究竟做了什么?
with语句究竟是什么以及如何使用multiple语句 声明?
代码中的内容是什么?
f.readline()在代码中实现了什么?
为什么要比较:
如果int(value)== vl: cn + = 1
甚至做过?答案 0 :(得分:2)
我评论说要尝试解释;
{{1}}
代码究竟做了什么?
它计算一些数字出现在文件中的次数,但很难说,因为它的确切行为取决于运行时提供的参数!
编辑:作为后续行动,我建议阅读评论中张贴的@PascalvKooten链接,非常明确地解释{{1}}陈述是什么
答案 1 :(得分:1)
在开始阅读他人撰写的源代码之前,您必须阅读文档。
检查this official documentation with
语句。
您复制的功能有以下几点:
它有三个参数。然后它将cn
和rd
变量设置为0. with open(fn, 'r') as f
表示在阅读模式下打开名为fn
的文件,并从现在开始称之为f
。然后你有for
循环读取当前打开文件的每一行f
并为每一行做一些事情。首先它增加rd
,如果rd
大于n
循环中断,否则如果值(通过int()函数转换为value
到整数)等于vl,然后它递增cn
并返回它。