2013-03-04 116 views
4

從學習Python堅硬方式:Python列表和運營商

Python看到你所提到的MyStuff並查找該變量。它可能不得不向後看,看看你是用=創建的,看看它是否是函數參數,或者它可能是全局變量。無論哪種方式,它必須首先找到mystuff。

一旦找到mystuff它就會擊中。 (週期)運算符,並開始 查看屬於mystuff一部分的變量。由於mystuff是一個 列表,它知道mystuff有一堆功能。

然後命中追加並將名稱「附加」與mystuff所擁有的所有 進行比較。如果append在那裏(它是),那麼它抓取 即可使用。接下來的Python看到((括號)並且意識到,「哦, 嘿,這應該是一個函數。」在這一點上它調用(aka runs, 執行)函數就像通常一樣,但是它調用 函數額外的參數。

這額外的參數是...的MyStuff!我知道,奇怪吧?但是,這 Python中是如何工作的,所以最好只記住它,並假設這是 正常的。接下來會發生什麼,在所有的結束這是一個函數 ,看起來像:append(mystuff,'hello')而不是你讀的 這是mystuff.append('hello')。

他從哪裏得到「mystuff」?而我仍然不確定這期間運營商的事情是如何工作的(對不起,我是新在此請多多包涵),後來我們得到這個:

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只是讓我困惑。

幫助?

+2

我鼓勵你在python shell中嘗試這些東西。如果你在windows上,IDLE提供了一個,如果你在Mac或者Linux上,啓動一個終端並輸入'python'。這樣你可以試驗一下東西 – entropy 2013-03-04 01:26:36

+2

例如,如果你想知道變量的類型是什麼,你可以輸入'type(variable)',它會告訴你。或者如果你想知道你可以在'.'後面輸入什麼名字以及他們做了什麼,你可以輸入'help(variable)',它會告訴你一個所有可用方法的列表(那些是綁定到該變量的函數,可以在'.'後面輸入,並描述它們的作用 – entropy 2013-03-04 01:28:33

回答

2

關於「?從 「」 他在哪裏得到」的MyStuff,mystuff是某種類型的對象,並且有方法函數之間的對象的屬性值(或屬性值同級)。點(句點)是一個限定符操作符;例如,mystuff.append將相關append函數限定或標識爲與對象mystuff關聯的函數。對象方法通常具有隱式參數(通常稱爲self)作爲第一個參數,並且該參數與該方法所屬的對象相同。在這種情況下,這是mystuff

正如前面的回答中所提到的,split拆分了一個字符串並返回一個列表。有關詳細信息,還請參閱tutorialspoint關於split

的方法,分裂()返回的字符串中的所有字的列表,使用str作爲分離器(分裂上的所有空格如果未指定),任選地限制分割數量爲num。 ...以下是split()方法的語法:str.split(str="", num=string.count(str))

+0

此外,爲什麼('')甚至在東西= ten_things.split('')? – user2092951 2013-03-05 01:27:46

+0

含義我試過了,沒有使用單引號和空格,我只是將參數留空,並以同樣的方式創建了一個列表。 – user2092951 2013-03-05 01:28:20

+0

'ten_things.split('')'(在兩個單引號之間留有空格)在每個空格字符處拆分「ten_things」。 'ten_things.split()'在任何空白處分割它 - 所以它會在選項卡,返回值,換行符以及空格字符處分割。 – 2013-03-05 01:32:31

4

stuff = ten_things.split(' ')不改變ten_things的值。相反,它會創建一個名爲stuff的新變量並將其保存爲由ten_things.split(' ')創建的列表。這裏作爲參數傳遞給split方法的空間非常重要。它所說的是,Python應該將字符串ten_things分割爲,使用split的參數作爲分隔符。

例子:

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

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

+0

感謝您的快速回復! – user2092951 2013-03-04 01:21:09