Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python readline().strip()的用途是什么? readline().strip()的用途是什么(尤其是在下面的代码中)?_Python_List_For Loop_Readline_Strip - Fatal编程技术网

Python readline().strip()的用途是什么? readline().strip()的用途是什么(尤其是在下面的代码中)?

Python readline().strip()的用途是什么? readline().strip()的用途是什么(尤其是在下面的代码中)?,python,list,for-loop,readline,strip,Python,List,For Loop,Readline,Strip,上下文: 我正在查看以下代码: op = open('encyin.txt', 'r') n, q = op.readline().split() n = int(n) q = int(q) dic = {} for i in range(1, n + 1): dic[str(i)]=(op.readline().strip()) 并试图解释它 我的解释: 启动非常简单-它在读取模式下打开一个文件encyin.txt。它从行中提取输入-n和p,将两个输入分开。然后将它们分类为整

上下文:


我正在查看以下代码:

op = open('encyin.txt', 'r')
n, q = op.readline().split()
n = int(n)
q = int(q)
dic = {}

for i in range(1, n + 1):
    dic[str(i)]=(op.readline().strip())
并试图解释它


我的解释:


启动非常简单-它在读取模式下打开一个文件
encyin.txt
。它从行中提取输入-
n
p
,将两个输入分开。然后将它们分类为整数,并创建一个空列表
dict

从这里开始,将使用
for
循环

但最后一行是什么意思?我不熟悉(a)
readline().strip()
和(b)这如何影响列表
dict
和输入值:


例如

如果
ency.txt
为以下内容:

6 5
1151
723
1321
815
780
931

第二行向下的其他数字会发生什么变化?
readline().split
是否为它们分配了行号?它是否将其添加到列表
dict
,有点像
.append


顶部代码的最后一行是什么意思?我不熟悉(a)
readline().strip()
和(b)这是如何影响list
dict
和输入值的:

在文本文件中,有这些称为空白字符的东西。通常,这些都是您要删除的空格或输入('\n')。strip()帮助您删除这些空白字符

如果您在阅读数字后打印这些数字,并且不进行剥离,您将得到:

number1

number2

number3

...
因为您尚未删除隐藏的“enter”字符。

.readline()
从文件中读取一行。结果包括一个尾随的
'\n'

.strip()
从字符串中删除所有前导和尾随空格(例如上面提到的
'\n'

因此,最后一行代码dic[str(i)]=(op.readline().strip())执行以下操作:

6 5
1151
723
1321
815
780
931
  • 从打开的文件中读取行
  • 删除行中的空白
  • 使用索引(转换为字符串)作为键在字典中存储剥离行
  • readline()从文件中以字符串形式返回单行

    例如:对于给定的txt文件信息:

    Danni Loss
    Shani Amari
    Michele favarotti
    
    readline()将返回第一行:

    Danni Loss\n
    
    然后使用strip()删除字符串开头和结尾的所有空字符,因此您将得到:

    Danni Loss
    

    当阅读python脚本时,您遇到一些不知道的函数,您的目标应该首先是在上下文之外理解函数,然后您可以了解它们在上下文中做什么

    理解内置/标准库函数的第一个调用端口应该是。当文档失败时,请转到其他来源(有很多)

    在本例中,您想知道
    op.readline()
    的作用。那么,什么是
    op
    ?我将转到,并看到它创建了一个,它告诉您实际使用的实现在中。在这里,我们可以在页面中搜索

    关于
    readline
    ,文档有什么要说的

    从流中读取并返回一行

    在这里,我假设,因为它是一个文本文件,“流中的一行”是一个字符串对象(但您始终可以打开python解释器进行检查),然后查找,它说:

    返回删除前导字符和尾随字符的字符串副本。chars参数是一个字符串,指定要删除的字符集。如果省略或无,chars参数默认为删除空白

    现在把它们放在一起。它们调用
    (op.readline().strip())

    • 我们知道
      op
      是一个使用
      io
    • io
      的readline从流中读取一行
    • some\u string.strip()
      不带参数调用会删除
      some\u string
    尽管python使用duck类型,但对象仍然有类型/行为,理解代码通常需要知道您在任何时候处理的对象是什么类型的,这样您就可以了解它应该如何工作


    例如,如果你知道某件事是一本
    词典,但你不知道什么是词典,那么你应该先在文档中搜索一些信息,并尝试理解它在上下文之外的作用。

    如果你想做类似(int(dic[1])的事情,这将产生一个错误,因为该行还将包含一个\n基本上用于删除代码中任何不需要的内容,以便使用实际值。那么dict[str(i)]做什么呢?这有助于将字典的i键分配给数字。字典就像列表,除了没有索引之外,它们还有键,键也可以是字符串。哦,那么dic是一个字典,而不是一个列表?问题是关于
    strip
    ,而不是
    split
    我不熟悉字典,“键”是什么意思?@global05字典将一组键映射到值。键是唯一的,这就是访问存储值的方式。例如,在上述代码中,dic['5']
    将返回
    '780'
    。有关更多信息,请参阅官方文档:。如果您想理解python代码,我强烈建议您这样做。@global05研究词典??好主意-可以。“删除所有空白”-仅在字符串的开头和结尾