2024-04-25 23:49:28 发布
网友
我对python和beauthoulsoup非常陌生。在
在for语句中,incident是什么?它是类、类型、变量吗? 下一行。。完全迷路了。在
for
incident
有人能给我解释一下这个密码吗?在
for incident in soup('td', width="90%"): where, linebreak, what = incident.contents[:3] print where.strip() print what.strip() break print 'done'
首先,Python关心换行符和空格的位置,因此应该使用code标记来表示Python代码。因此,我必须猜测您的代码最初是如何格式化的。在
“for x in y:”语句假定“y”是某种iterable(类似于列表的)事物—对象的有序集合。然后,对于列表中的每个元素,它将元素指定为名称“x”,并运行缩进块。在
在本例中,似乎有一个函数soup(),它返回事件列表。每个事件都是一个对象,它包含一个名为“contents”的属性,它本身就是一个列表;[:3]表示“列表的前三个元素”。所以这一行是把事件内容中的前三件事赋给它们“where”、“linebreak”和“what”。函数的作用是:删除字符串开头和结尾的空格。所以我们把“哪里”和“什么”打印出来break'退出for循环,因此在本例中它只运行一次,这有点奇怪。在
欢迎使用堆栈溢出!让我们看看发生了什么。我已经添加了进一步阅读的链接,在问进一步的问题之前一定要看一下。在
for incident in soup('td', width="90%"):
incident只是soup返回的iterable的任意局部变量。一般来说,^{} statement中的局部变量可能是一个列表,但也可能是元组,甚至是字符串。如果可以迭代某些东西,比如文件,那么Python可能会接受for来遍历这些项。在
soup
在本例中,soup返回一个宽度为90%的tdHTML元素列表。我们可以看到这是因为下一行发生了什么:
td
where、linebreak和{}都是任意的局部变量。它们都被分配在一个语句中。在Python中,这称为multiple assignment。这三个元素从何而来?incident.contents[:3]使用slice notation请求前三个元素。在
where
linebreak
incident.contents[:3]
这两行将where和what打印到屏幕上。但是^{}在做什么呢?它正在清除空白。所以," some text "变成{}。在
what
" some text "
break
break在第一个循环之后刚刚打破了for循环。它不会破坏整个程序。相反,它将程序流返回到循环后的下一行。在
print 'done'
这只是做它所说的,把“完成”这个词发送到屏幕上。如果您正在使用此程序,当您看到屏幕上出现“done”(不带引号)时,您就知道它已完成。在
¹更精确地说,它们将字节发送到标准输出(通常称为stdout)。在
第一条语句启动一个循环,该循环解析HTML文档,寻找宽度设置为90%的td元素。表示td元素的对象绑定到名称incident。在
第二行是多重赋值,可以重写如下:
where = incident.contents[0] linebreak = incident.contents[1] what = incident.contents[2]
td从每个单词中提取一个有意义的单词。在
循环中的最后一行在只检查第一个元素后导致循环中断。代码本可以重写为不使用循环,这样可以使代码更清晰。在
首先,Python关心换行符和空格的位置,因此应该使用code标记来表示Python代码。因此,我必须猜测您的代码最初是如何格式化的。在
“for x in y:”语句假定“y”是某种iterable(类似于列表的)事物—对象的有序集合。然后,对于列表中的每个元素,它将元素指定为名称“x”,并运行缩进块。在
在本例中,似乎有一个函数soup(),它返回事件列表。每个事件都是一个对象,它包含一个名为“contents”的属性,它本身就是一个列表;[:3]表示“列表的前三个元素”。所以这一行是把事件内容中的前三件事赋给它们“where”、“linebreak”和“what”。函数的作用是:删除字符串开头和结尾的空格。所以我们把“哪里”和“什么”打印出来break'退出for循环,因此在本例中它只运行一次,这有点奇怪。在
欢迎使用堆栈溢出!让我们看看发生了什么。我已经添加了进一步阅读的链接,在问进一步的问题之前一定要看一下。在
incident
只是soup
返回的iterable的任意局部变量。一般来说,^{for
来遍历这些项。在在本例中,
^{pr2}$soup
返回一个宽度为90%的td
HTML元素列表。我们可以看到这是因为下一行发生了什么:}都是任意的局部变量。它们都被分配在一个语句中。在Python中,这称为multiple assignment。这三个元素从何而来?
^{3}$where
、linebreak
和{incident.contents[:3]
使用slice notation请求前三个元素。在这两行将} 在做什么呢?它正在清除空白。所以,}。在
where
和what
打印到屏幕上。但是^{" some text "
变成{break
在第一个循环之后刚刚打破了for
循环。它不会破坏整个程序。相反,它将程序流返回到循环后的下一行。在这只是做它所说的,把“完成”这个词发送到屏幕上。如果您正在使用此程序,当您看到屏幕上出现“done”(不带引号)时,您就知道它已完成。在
¹更精确地说,它们将字节发送到标准输出(通常称为stdout)。在
第一条语句启动一个循环,该循环解析HTML文档,寻找宽度设置为90%的td元素。表示td元素的对象绑定到名称
incident
。在第二行是多重赋值,可以重写如下:
td从每个单词中提取一个有意义的单词。在
循环中的最后一行在只检查第一个元素后导致循环中断。代码本可以重写为不使用循环,这样可以使代码更清晰。在
相关问题 更多 >
编程相关推荐