2016-11-16 59 views
0

即時通訊學習Python,我們正在上一個關於序列的課程,我們已經給出了這個示例代碼,但是我有一些關於它的問題;Python序列示例

word = input("Word? ") 
letter = input("Letter? ") 
i = 0 
found = False 
while not found and i != len(word): 
    found = word[i] == letter 
    i = i + 1 
if found : 
    print("letter ", letter, " found in word ", word, " at position ", i -1) 
else: 
    print("letter ", letter, " not found in word ", word) 
  1. 在該行會發生什麼發現=字[I] ==信

  2. 爲什麼print語句州發現了一封信,在I-1

我這對我來說是非常新的,所以如果你能夠ELI5那會非常有幫助。 謝謝先進。

回答

0
  1. 如果程序看,現在(word[i])信等於letter,布爾變量found變得true,否則,循環將一直持續到單詞的末尾或者直到letter被發現。

  2. 因爲i已經在while之上的循環中遞增,無論是否找到letter

+0

非常感謝你這幫助了很多。 – Codeman131

+0

不客氣。如果這回答了您的問題,請考慮標記答案。 –

0

歡迎來到python。要回答你的問題:

  1. 這個語句分配給foundword[i]letter之間的比較 的價值。換句話說,found需要 的boolean值答案的問題:

    "is `word[i]` equal to `letter`?" 
    
  2. 您使用i-1代替i因爲循環不是從增加,即使發現i防止 。

0
  1. found = word[i] == letter:正如你所看到的,在 你的程序中靠前的點設置foundFalse。這種類型的變量是 通常稱爲「布爾標誌」。裏面的for循環的 found的值設置爲布爾表達式word[i] == letter,這 意味着用簡單的英語:如果word在指數i價值,是 等於變量letter迴歸真實的價值,否則 返回假

  2. 在您的打印語句中,當布爾標誌found(請參閱上面的答案)爲true時,它將打印匹配發生的索引。正如您可能已經知道的那樣,每個字符串中的每個字符都有特定的索引。例如。

    >>> string = "string" 
    >>> string[0] # what is the value of the character at postion zero? 
    's' 
    >>> string[1] # what is the value of the character at postion one? 
    't' 
    >>> etc..