Ich möchte gerne wissen wie oft geraten wurde, aber leider funktioniert es nicht mit der "anzahl" . Wäre nett wenn ihr mir hilft.
anzahl = 0
def ergebnisPruefen():
while True:
import random
eingabe = int(input('Raten Sie eine Zahl: '))
zufallsz = random.randint(1, 10)
if zufallsz == eingabe:
print('Sie haben richtig geraten.')
print('Sie haben ' + str(anzahl) + ' Versuche gebraucht.')
break
else:
print('Nicht richtig. Versuchen Sie es nochmal')
anzahl = anzahl + 1
print(ergebnisPruefen())
Kann mir jemand helfen, irgendwie funktioniert dieser Code nicht richtig
importe gehören an den Anfang der Quelltextdate - nicht irgendwo in Funktionen.
Einrückungen sind in Python wichtig.
Bitte benutzte die Code-Tags, indem du in dem "Vollständigen Editor" den Button mit </> darauf verwendest.
Ohne Einrückungen kann man nicht sehen, in welcher Hierachieebene welche Zeile steht.
Einrückungen sind in Python wichtig.
Bitte benutzte die Code-Tags, indem du in dem "Vollständigen Editor" den Button mit </> darauf verwendest.
Ohne Einrückungen kann man nicht sehen, in welcher Hierachieebene welche Zeile steht.
@reza331: eigentlich wäre es nett, wenn Du verraten würdest, was nicht funktioniert, also die Fehlermeldung, die ganz klar sagt, dass Du eine lokale Variable ›anzahl‹ hast, die Du verwendest, ohne ihr einen Wert zuzuweisen.
Also, warum steht das ›anzahl = 0‹ nicht in der Funktion?
›ergebnisPruefen‹ hat keinen expliziten Rückgabewert, die ›print‹-Ausgabe am Schluß ist daher nicht sinnvoll.
Variablen- und Funktionsnamen sind wichtig für das Verständnis. ›ergebnisPruefen‹ prüft ja gar kein Ergebnis, ist also falsch. ›zufallsz‹ ist eine Abkürzung, die jeden rätseln läßt, was denn das z bedeuten soll, also keine Abkürzungen benutzen.
Variablen- und Funktionsnamen werden per Konvention klein_mit_unterstrich geschrieben: ergebnis_pruefen.
Strings stückelt man nicht mit + zusammen, sondern benutzt Stringformatierung:
Also, warum steht das ›anzahl = 0‹ nicht in der Funktion?
›ergebnisPruefen‹ hat keinen expliziten Rückgabewert, die ›print‹-Ausgabe am Schluß ist daher nicht sinnvoll.
Variablen- und Funktionsnamen sind wichtig für das Verständnis. ›ergebnisPruefen‹ prüft ja gar kein Ergebnis, ist also falsch. ›zufallsz‹ ist eine Abkürzung, die jeden rätseln läßt, was denn das z bedeuten soll, also keine Abkürzungen benutzen.
Variablen- und Funktionsnamen werden per Konvention klein_mit_unterstrich geschrieben: ergebnis_pruefen.
Strings stückelt man nicht mit + zusammen, sondern benutzt Stringformatierung:
Code: Alles auswählen
import random
def zufallszahl_raten():
anzahl = 0
while True:
eingabe = int(input('Raten Sie eine Zahl: '))
zufallszahl = random.randint(1, 10)
if zufallszahl == eingabe:
print('Sie haben richtig geraten.')
print(f'Sie haben {anzahl} Versuche gebraucht.')
break
else:
print('Nicht richtig. Versuchen Sie es nochmal')
anzahl += 1
zufallszahl_raten()