Verständnisprobleme
Verfasst: Sonntag 29. Juli 2018, 13:49
Aloah!
Ich bin neu. Sowohl hier im Forum, als auch in der Welt von Python. Ich lerne nach einem Buch und habe mein erstes Quiz erstellt, aber eine winzige Kleinigkeit verstehe ich nicht.
(Eine Spoiler Funktion wäre gut!)
def pruef_rate(rate, antwort):
global punkte
noch_rate = True
versuch = 0
while noch_rate and versuch < 3:
if rate.lower() == antwort.lower():
print('Richtige Antwort.')
punkte = punkte + 1
noch_rate = False
else:
if versuch < 2:
rate = input('Falsch. Versuch\'s ermeut!')
versuch = versuch + 1
if versuch == 3:
print('Die richtige Antwort ist ' + antwort)
punkte = 0
print('Rate das Tier!')
rate1 = input('Welcher Bär lebt am Nordpol?')
pruef_rate(rate1, 'Eisbär')
rate2 = input('Was ist das schnellste Landtier?')
pruef_rate(rate2, 'Gepard')
rate3 = input('Was ist das größte Tier?')
pruef_rate(rate3, 'Blauwal')
print('Du hast ' + str(punkte) + ' Punkte.')
Ich verstehe den Wert "rateX" nicht. Der Befehl pruef_rate führt das Skript zur ersten Zeile. Hier habe ich aber den Wert "rate" und nicht "rate1". Ich verstehe den Wert "rate" innerhalb des ersten Blocks ja, weil er mit dem Befehl "rate=input..." zum Prüfwert wird, welcher mit der richitgen Antwort geprüft wird. Aber die richtige Antwort in der ersten Frage wird ja mit "rate1" verglichen und nicht mit "rate". Oder wird "rate1" in der ersten Zeile in "rate" verwandelt?
------------------------------------------------------------------
Und hier gleich eine zweite Frage:
alter = input('Wie alte bist du?')
x = '7'
if alter > x:
print('Du bist älter als 7.')
if alter < x:
print('Du bist jünger als 7.')
if alter == x:
print('Du bist genau 7.')
Wenn ich die Zahlen 0-6 eingebe kommt die richitge Antwort, bei 7 auch und bei 8-9 ebenfalls. Allerdings kommt bei der Eingabe von Buchstaben die Antwort ich sei älter als 7 und wenn ich eine größere Zahl als 9 eingebe, wird wird nur die erste Zahl gewertet. Also die Antwort 23 wird als 2 und die Antwort 89 als 8 gewertet. Wo ist der Fehler?
Ich bin neu. Sowohl hier im Forum, als auch in der Welt von Python. Ich lerne nach einem Buch und habe mein erstes Quiz erstellt, aber eine winzige Kleinigkeit verstehe ich nicht.
(Eine Spoiler Funktion wäre gut!)
def pruef_rate(rate, antwort):
global punkte
noch_rate = True
versuch = 0
while noch_rate and versuch < 3:
if rate.lower() == antwort.lower():
print('Richtige Antwort.')
punkte = punkte + 1
noch_rate = False
else:
if versuch < 2:
rate = input('Falsch. Versuch\'s ermeut!')
versuch = versuch + 1
if versuch == 3:
print('Die richtige Antwort ist ' + antwort)
punkte = 0
print('Rate das Tier!')
rate1 = input('Welcher Bär lebt am Nordpol?')
pruef_rate(rate1, 'Eisbär')
rate2 = input('Was ist das schnellste Landtier?')
pruef_rate(rate2, 'Gepard')
rate3 = input('Was ist das größte Tier?')
pruef_rate(rate3, 'Blauwal')
print('Du hast ' + str(punkte) + ' Punkte.')
Ich verstehe den Wert "rateX" nicht. Der Befehl pruef_rate führt das Skript zur ersten Zeile. Hier habe ich aber den Wert "rate" und nicht "rate1". Ich verstehe den Wert "rate" innerhalb des ersten Blocks ja, weil er mit dem Befehl "rate=input..." zum Prüfwert wird, welcher mit der richitgen Antwort geprüft wird. Aber die richtige Antwort in der ersten Frage wird ja mit "rate1" verglichen und nicht mit "rate". Oder wird "rate1" in der ersten Zeile in "rate" verwandelt?
------------------------------------------------------------------
Und hier gleich eine zweite Frage:
alter = input('Wie alte bist du?')
x = '7'
if alter > x:
print('Du bist älter als 7.')
if alter < x:
print('Du bist jünger als 7.')
if alter == x:
print('Du bist genau 7.')
Wenn ich die Zahlen 0-6 eingebe kommt die richitge Antwort, bei 7 auch und bei 8-9 ebenfalls. Allerdings kommt bei der Eingabe von Buchstaben die Antwort ich sei älter als 7 und wenn ich eine größere Zahl als 9 eingebe, wird wird nur die erste Zahl gewertet. Also die Antwort 23 wird als 2 und die Antwort 89 als 8 gewertet. Wo ist der Fehler?