ich habe mir ein Einstieg in Python Buch gekauft und wollte nun ein einfaches Programm programmieren, das ich auch schon in Pascal programmiert habe, jedoch nicht so umfangreich.
Das ist mir auch ganz gut gelungen, jetzt wollte ich aber mal fragen, da der Code nicht so ordentlich aussieht, und ich glaube, das der viel einfacher ginge, wie ich den Code verbessern könnte.
Hier mal der Code:
Code: Alles auswählen
"""Zahlenraten.
Mann muss eine mit random.randint ermittelte zahl herausfinden.
Der PC sagt einem, ob die Zahl größer/kleiner als die ist, die man geraten hat.
So kommt man der Zahl immer näher.
1. Bereich der Zufallszahl (zzahl) kann selbst ausgewählt werden.
2. Versuche werden gezählt.
"""
import random #Modul importieren
random.seed() #modul initialisieren
fortsetzen = 1 #Variable für Schleife1 definieren
while fortsetzen == 1: #schleife1 zum wiederholen des ges. programms
print()
print("Zahlenraten")
print()
print("Bitte gib den Bereich an, in dem sich die zu erratene "
"Zufallszahl befinden soll."
"Gib dazu zuerst die kleinste "
"Zahl ein, die die Zufallszahl sein können soll:")
zahl1 = 3.2 #Variable schleife2 definieren
while zahl1 != int(zahl1):
try: #Ausnahme überprüfung
zahl1=int(input())
except:
print("Bitte gib eine ganze Zahl ein:")
continue
print("Bitte gib die größte Zahl ein, die die Zufallszahl sein können soll:")
zahl2 = 3.5 #Variable schleife 3 definieren
while zahl2 != int(zahl2) or zahl2 < zahl1: #erst weiter wenn zahl2 == int UND zahl1 > zahl2
try: #Ausnahme überprüfung
zahl2 = int(input())
except:
if zahl1 > zahl2: #wenn nötig eingabe wiederholen
print("Bitte gib eine Zahl ein, die größer als die erste Zahl"
" ist")
continue
print("Bitte gib eine ganze Zahl ein:")
continue
zzahl = random.randint(zahl1,zahl2) #zzahl wird ermittelt
eingabe = 'a' #variable eingabe wird vordefiniert
while eingabe != zzahl:
print("Bitte gib eine Zahl zwischen",zahl1,"und",zahl2,"ein:")
fehler = 0 #variable fehler definieren
versuch = 0 #variable versuch definieren
while fehler == 0: #schleife ermittelt ob eingabe == im gültigen bereich und ob sie integer ist
try:
eingabe = int(input()) #ob eingabe == integer überprüfung
versuch = versuch + 1 #Versuchanzahl ermitteln
print("Versuch:",versuch) #aktuelle versuchnummer ausgeben
if eingabe < zahl1 or eingabe > zahl2: #eingabe im gültigem bereich überprüfung
print("Bitte gib eine Zahl zwischen",zahl1,"und",zahl2,"ein:")
except:
if eingabe > zzahl: #überprüfung ob eingabe == zzhal oder > oder < zzahl
print("Die Zufallszahl ist kleiner als",eingabe,"!")
elif eingabe < zzahl:
print("Die Zufallszahl ist größer als",eingabe,"!")
elif eingabe == zzahl:
print("Richtig!!! Die Zufallszahl ist",eingabe,"!!!")
print("Benötigte Versuche:",versuch) #versuche werden angegeben
print()
fehler = 1 #schleife wird nic ht wiederholt wenn fehler == 1
print("Willst du noch ein Spiel spielen?") #frage ob wiederholen
print("Drücke 'J' um eine weitere Runde zu spielen.")
antwort = input()
if antwort == 'j' or antwort == 'J': #wenn 'J' erste schleife fängt vorne an
fortsetzen = 1
else:
fortsetzen = 0 #wenn fortsetzen == 0 programm zu ende
Code: Alles auswählen
Zahlenraten
Bitte gib den Bereich an, in dem sich die zu erratene Zufallszahl befinden soll.Gib dazu zuerst die kleinste Zahl ein, die die Zufallszahl sein können soll:
0
Bitte gib die größte Zahl ein, die die Zufallszahl sein können soll:
50
Bitte gib eine Zahl zwischen 0 und 50 ein:
25
Versuch: 1
Die Zufallszahl ist größer als 25 !
35
Versuch: 2
Die Zufallszahl ist größer als 35 !
40
Versuch: 3
Die Zufallszahl ist kleiner als 40 !
37
Versuch: 4
Richtig!!! Die Zufallszahl ist 37 !!!
Benötigte Versuche: 4
Willst du noch ein Spiel spielen?
Drücke 'J' um eine weitere Runde zu spielen.
j
Zahlenraten
Bitte gib den Bereich an, in dem sich die zu erratene Zufallszahl befinden soll.Gib dazu zuerst die kleinste Zahl ein, die die Zufallszahl sein können soll:
danke
MfG