4

来自艰难地学习 Python:

Python 看到您提到的 mystuff 并查找该变量。它可能必须向后看,看看你是否用 = 创建,看看它是否是一个函数参数,或者它是否是一个全局变量。无论哪种方式,它都必须首先找到神秘的东西。

一旦它找到了 mystuff,它就会点击 . (句点)运算符并开始查看属于 mystuff 的变量。由于 mystuff 是一个列表,它知道 mystuff 有一堆函数。

然后它点击 append 并将名称“append”与 mystuff 所说的所有名称进行比较。如果 append 在那里(它是),那么它会抓住它来使用。接下来,Python 看到 ((括号)并意识到,“哦,嘿,这应该是一个函数。”此时它像正常一样调用(也就是运行,执行)该函数,但它使用一个额外的参数调用该函数。

那个额外的论点是......神秘的!我知道,很奇怪吧?但这就是 Python 的工作方式,所以最好记住它并假设没问题。然后会发生什么,最后是一个看起来像这样的函数调用:append(mystuff, 'hello') 而不是你读到的 mystuff.append('hello')。

他从哪里得到“神秘的东西”?而且我仍然不确定那个时期运算符的工作原理(对不起,我是新手,请多多包涵),稍后我们会得到这个:

ten_things = "Apples Oranges Crows Telephone Light Sugar"

print "Wait there's not 10 things in that list, let's fix that."

stuff = ten_things.split(' ')

我没有看到该字符串是如何在最后一行之后变成一个列表的,.split 会自动将它变成一个还是什么?他正在做的那个时期“分裂”或“追加”的事情的名称是什么?在编程中搞砸我的主要事情之一是我不知道很多东西实际上叫什么。我知道函数、变量等,但是像 .split 这样的东西让我很困惑。

帮助?

4

2 回答 2

4

stuff = ten_things.split(' ')不会改变 的值ten_things。相反,它会创建一个名为的新变量并将其创建stuff的列表保存ten_things.split(' ')到其中。这里作为参数传递给split方法的空间很重要。它的意思是 Python 应该使用s 参数作为分隔符来获取字符串ten_things并将其拆分。split

例子:

"This is a string".split(' ') == ["This", "is", "a", "string"]

或者

"This|is|a|string".split('|') == ["This", "is", "a", "string"]

于 2013-03-04T01:15:03.483 回答
2

关于“他从哪里得到‘神秘的东西’?”,mystuff是某种对象,在对象的属性值之间(或在其类的属性值之间)有方法函数。点(句点)是限定符运算符;例如,mystuff.append将相关功能限定或标识为append与 object 关联的功能mystuff。对象方法通常有一个隐式参数(通常称为self)作为第一个参数,并且该参数等于该方法所属的对象。在这种情况下,就是mystuff.

如上一个答案中所述,split拆分字符串并返回一个列表。有关更多信息,另请参阅 关于以下内容的教程split点:

split() 方法返回字符串中所有单词的列表,使用 str 作为分隔符(如果未指定,则在所有空格上拆分),可选择将拆分数限制为 num。... 以下是 split() 方法的语法str.split(str="", num=string.count(str))

于 2013-03-04T01:55:09.860 回答