2013-03-03 40 views
-1

我正在參加在線Python課程,雖然我在登錄提示符處於頭頂,但我仍然對此感興趣。在Python中看到什麼看起來像「聲明」的關鍵字

的例子在網上全文(迴文程序)它給人的給出一個例子:

def toChars(s): 
   s = s.lower() 
   ans = ‘ ‘ 
   for c in s: 
       if c in ‘abcdefghijklmnopqrstuvwxyz’: 
           ans = ans + c 
   return ans 

是什麼讓我配合是怎樣的「C」得到由Python的瞭解。從我可以收集的內容來看,'c'被視爲關鍵字,被理解爲'char'的關鍵字,但Python從哪裏獲取?沒有任何解釋說我找到了任何地方,想知道是否有人可以直接在我這裏找到我。

+0

要檢查是否有關鍵字只是'import keyword; print(keyword.kwlist)'(在交互式解釋器中),看看你是否在那裏找到它。 – Bakuriu 2013-03-03 19:38:38

回答

4

c不是關鍵字,它是一個變量名。

在Python中,字符串是可迭代的。當你迭代一個字符串時,它會逐個產生它的字符。

因此,以下:

for c in s: 

超過s字符簡單地進行迭代,並且依次在每個字符分配給c

+0

所以簡單地聲明它使它工作?似乎我每次嘗試這樣做都會讓biatch被閒置。 – 2013-03-03 19:48:01

+0

我預計Python會走「是的,那裏有ac,還有一個a,ab,w ...太 – 2013-03-03 19:49:43

+1

@LarryPotterbaum for循環c現在是一個臨時變量,只需調用c,你可以重命名爲TEMPVAR或者是其他東西。在for循環的每一遍中,我們逐字符地遍歷字符串,每次c指向字符串中的新位置(或字符)。 – lgriffiths 2013-03-03 20:03:40

1

全部for c in s:確實需要s中的一個字符,將其分配給變量c,然後執行for循環體。然後,它將s中的下一個字符分配給c和s。例如,讓s = "LARRY123"。首先,s = s.lower()將分配"larry123"s。在for循環中,c首先設置爲'l'。然後if c in "abcdefghijklmnopqrstuvwxyz":檢查c是否爲字母,如果是,則將其附加到ans。在下一次迭代中,c等於'a'。然後'r'。等等。當c1,23時,它不會被附加到ans,因爲它不是字母表。

最後,ans將爲larry。希望有所幫助。

+0

我剛剛檢查了http://docs.python.org/2/library/stdtypes.html#iterator-types和第5.6.2節 - 轉換顯示c確實是Python用作迭代字符的一種方式。謝謝大家。 – 2013-03-03 20:43:32

相關問題