2016-11-16 4 views
0

Ich lerne Python und wir haben eine Lektion über Sequenzen, wir haben diesen Beispielcode bekommen, aber ich habe ein paar Fragen dazu;Python-Sequenzen Beispiel

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. Was an der Linie geschieht gefunden = word [i] == Brief

  2. Warum wird die Print-Anweisung Staaten einen Brief gefunden bei i-1

I bin sehr neu dazu also wenn du ELI5 hättest wäre das sehr hilfreich. Danke in fortgeschrittenem.

Antwort

0
  1. Wenn der Brief jetzt das Programm betrachtet (word[i]) zu letter gleich ist, wird die Boolesche Variable foundtrue, sonst wird die Schleife bis zum Ende des Wortes fortgesetzt oder bis letter gefunden wird.

  2. Weil i wurde in der while Schleife darüber erhöht, und zwar unabhängig davon, ob letter wurde oder nicht gefunden.

+0

Vielen Dank dieses viel geholfen. – Codeman131

+0

Gern geschehen. Bitte beachte, dass du die Antwort markierst, wenn diese deine Frage beantwortet hat. –

0

Willkommen bei Python. Zur Beantwortung Ihrer Fragen:

  1. Diese Anweisung found weist den Wert des Vergleichs zwischen word[i] und letter. Mit anderen Worten, nimmt found den boolean Wert der Antwort auf die Frage:

    "is `word[i]` equal to `letter`?" 
    
  2. Sie verwenden i-1 statt i weil die Schleife nicht von Inkrementieren i sogar verhindert wird, wenn es gefunden wurde.

0
  1. found = word[i] == letter: Wie Sie in einem früheren Punkt in Ihr Programm sehen können, setzen Sie found-False. Dieser Variablentyp ist , der üblicherweise als "boolesches Flag" bezeichnet wird. In Ihrer for-Schleife wird der Wert von found auf den Booleschen Ausdruck gesetzt word[i] == letter, die in einfachem Englisch bedeutet: Wenn der Wert von word bei Index i, gleich den Wert des Variablen letter return true, sonst ist return false.

  2. Wenn in der print-Anweisung das boolesche Flag (siehe oben) wahr ist, wird der Index gedruckt, bei dem die Übereinstimmung aufgetreten ist. Wie Sie vielleicht bereits gelernt haben, hat jedes Zeichen in jeder Zeichenfolge einen bestimmten Index. z.B.

    >>> 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..