Ich habe letztens mit Phython angefangen, ich komme bei meinem Code aber nicht weiter. Das Programm soll den Benutzer fragen was er von den drei möglichkeiten machen will und dann soll die jeweilige Sequenz ausgegeben werden.
import random
print("Wilkommen zum Spiel"\n)
print("Du hast die Auswahl"\n)
print("Münzenwurf, Würfel werfen oder einer Zufallszahl(1-100)")
#Auswahl
print("Wähle nun, du hast die Aufwahl zwischen:"\n)
print("Münzenwurf [M], Würfelwurf [W], Zufallszahl [Z]"\n)
#Zufallszahl
print randint(1,100)
#Würfel
for i in range(15):
print(random.randint(1,6))
def wuerfeln():
return(random.randint(1,6))
wuerfeln()
#Münze
tipp = input("Kopf [K] oder Zahl [Z]: ")
zufallszahl = randint(0, 1)
if zufallszahl == 0:
print("Kopf")
seite = 'K'
else:
print("Zahl")
seite = 'Z'
Auswahl random
- __blackjack__
- User
- Beiträge: 14053
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Marlala: Eine Frage wäre nett gewesen, oder bei Fehlern die komplette Fehlermeldung:
Du hast da anscheinend eine ziemliche Menge an Code geschrieben ohne den zu testen. Man schreibt Programme nicht erst komplett runter bevor man die das erste mal testet. Der Fehler hätte viel früher auffallen müssen. Denn im Nachfolgenden Code sind weitere Fehler.
Entwickle das Programm Schritt für Schritt und teste jeden davon. Zerlege das Problem in kleinere Teilprobleme und die wieder in kleinere Teilprobleme, solange bis die Teilprobleme in jeweils einer Funktion mit ein paar Zeilen Code lösbar sind. Schreibe diese Funktionen und teste sie. Mache erst mit der nächsten Funktion weiter wenn die vorhandenen machen was sie sollen. Das Hauptprogramm steht auch in einer Funktion, die per Konvention `main()` heisst.
Code: Alles auswählen
File "./forum21.py", line 4
print("Wilkommen zum Spiel"\n)
^
SyntaxError: unexpected character after line continuation character
Entwickle das Programm Schritt für Schritt und teste jeden davon. Zerlege das Problem in kleinere Teilprobleme und die wieder in kleinere Teilprobleme, solange bis die Teilprobleme in jeweils einer Funktion mit ein paar Zeilen Code lösbar sind. Schreibe diese Funktionen und teste sie. Mache erst mit der nächsten Funktion weiter wenn die vorhandenen machen was sie sollen. Das Hauptprogramm steht auch in einer Funktion, die per Konvention `main()` heisst.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
-
- User
- Beiträge: 8
- Registriert: Montag 21. Dezember 2020, 14:15
@__Blackjack__ hat schon recht, du solltest deine Programme unbedingt vorher testen, sonst gibt's ein riesen Chaos... Ich habe den Code mal korrigiert:
Von
Zu
Von
Code: Alles auswählen
import random
print("Wilkommen zum Spiel"\n)
print("Du hast die Auswahl"\n)
print("Münzenwurf, Würfel werfen oder einer Zufallszahl(1-100)")
#Auswahl
print("Wähle nun, du hast die Aufwahl zwischen:"\n)
print("Münzenwurf [M], Würfelwurf [W], Zufallszahl [Z]"\n)
#Zufallszahl
print randint(1,100)
#Würfel
for i in range(15):
print(random.randint(1,6))
def wuerfeln():
return(random.randint(1,6))
wuerfeln()
#Münze
tipp = input("Kopf [K] oder Zahl [Z]: ")
zufallszahl = randint(0, 1)
if zufallszahl == 0:
print("Kopf")
seite = 'K'
else:
print("Zahl")
seite = 'Z'
Code: Alles auswählen
from random import randint
def Muenzenwurf():
tipp = input("Kopf [K] oder Zahl [Z]: ")
zufallszahl = randint(0, 1)
if zufallszahl == 0:
print("Kopf")
seite = 'K'
else:
print("Zahl")
seite = 'Z'
def Wuerfelwurf():
for counter in range(0, 15):
print(randint(1,6))
def Zufallszahl():
Z = randint(1, 100)
print('Deine Zahl lautet: ' + str(Z))
print('Willkommen zum Spiel\n')
print('Du hast die Auswahl\n')
print("Münzenwurf, Würfel werfen oder einer Zufallszahl (1-100)")
print('Wähle nun, du hast die Auswahl zwischen:\n')
Auswahl = input('Münzenwurf [M], Würfelwurf [W], Zufallszahl [Z]\n').lower()
if Auswahl == 'm':
Muenzenwurf()
elif Auswahl == 'w':
Wuerfelwurf()
else:
Zufallszahl()
- DeaD_EyE
- User
- Beiträge: 1240
- Registriert: Sonntag 19. September 2010, 13:45
- Wohnort: Hagen
- Kontaktdaten:
Die Namen der Funktionen sollten kleingeschrieben werden und Verben sein.
Kein CamelCase, trennen mit Unterstrich _.
Also:
Für Ausländer wäre es besser keine Umlaute zu verwenden.
Englische Namen wären besser. So lernt man auch gleichzeitig noch ein bisschen Englisch beim Programmieren.
Kein CamelCase, trennen mit Unterstrich _.
Also:
Code: Alles auswählen
def münzeinwurf():
...
Englische Namen wären besser. So lernt man auch gleichzeitig noch ein bisschen Englisch beim Programmieren.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Hallo,
@Boruto_2200
was mir auffällt Strings formatiert man mit f-Strings, das würde dann so aussehen
Der Würfelwurf leuchtet mir nicht so ganz ein, wieso gibt der 15 Zahlen aus?
Was bewirkt bei dem Müntzenwurf die 'seite = 'K'' bzw 'seite = 'Z'' ?
In der Abfrage nach dem Input, sorgst du durch das letzte 'else' dafür, das man mit jedem Buchstaben außer 'm' und 'w' zu den Zufallszahlen gelangt.
Dann könnte man die Funktionen noch in der Hauptfunktion 'main' aufrufen.
Vielleicht etwas in diese Richtung? Müsste man noch eine Bedingung für das Beenden einbauen, jetzt läuft das Spiel durch. Ich habe deine Funktionen weitestgehend übernommen.
Grüße
Dennis
@Boruto_2200
was mir auffällt Strings formatiert man mit f-Strings, das würde dann so aussehen
Code: Alles auswählen
print(f"Deine Zahl lautet: {Z}")
Was bewirkt bei dem Müntzenwurf die 'seite = 'K'' bzw 'seite = 'Z'' ?
In der Abfrage nach dem Input, sorgst du durch das letzte 'else' dafür, das man mit jedem Buchstaben außer 'm' und 'w' zu den Zufallszahlen gelangt.
Dann könnte man die Funktionen noch in der Hauptfunktion 'main' aufrufen.
Vielleicht etwas in diese Richtung? Müsste man noch eine Bedingung für das Beenden einbauen, jetzt läuft das Spiel durch. Ich habe deine Funktionen weitestgehend übernommen.
Code: Alles auswählen
#!usr/bin/env python3
from random import randint
from time import sleep
def muenzenwurf():
tipp = input("Kopf [K] oder Zahl [Z]: ")
zufallszahl = randint(0, 1)
if zufallszahl == 0:
print("Kopf")
elif zufallszahl ==1:
print("Zahl")
def wuerfelwurf():
for counter in range(0, 15):
print(randint(1,6))
def zufallszahl():
Zahl = randint(1, 100)
print(f'Deine Zahl lautet: {Zahl}')
def willkommen(choice):
print('Du hast die Auswahl\n')
print("Münzenwurf, Würfel werfen oder einer Zufallszahl (1-100)")
print('Wähle nun, du hast die Auswahl zwischen:\n')
Auswahl = input('Münzenwurf [M], Würfelwurf [W], Zufallszahl [Z]\n').lower()
return Auswahl
def auswahl(Auswahl):
if Auswahl == 'm':
muenzenwurf()
elif Auswahl == 'w':
wuerfelwurf()
elif Auswahl == 'z':
zufallszahl()
else:
print('Bitte nur M, W oder Z zur Auswahl eingeben. Warten Sie für Neustart')
def main():
print('Willkommen zum Spiel\n')
while True:
choice = willkommen(auswahl)
auswahl(choice)
sleep(2)
if __name__=='__main__':
main()
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
@Dennis89: Variablennamen schreibt man wie Funktionsnamen komplett klein. Bei `range` ist der Startwert schon von sich aus 0, das muß man nicht angeben.
In `muenzenwurf` kann zufallszahl nur 0 oder 1 annehmen, das elif sollte also ein else sein. Bei Dir frag man sich, was denn in einem else-Block stehen müßte, weil der fehlt.
Warum hat `willkommen` einen Parameter choice, der nicht verwendet wird? Und warum rufst Du diese Funktion in `main` mit der Funktion auswahl als Parameter auf?
In `muenzenwurf` kann zufallszahl nur 0 oder 1 annehmen, das elif sollte also ein else sein. Bei Dir frag man sich, was denn in einem else-Block stehen müßte, weil der fehlt.
Warum hat `willkommen` einen Parameter choice, der nicht verwendet wird? Und warum rufst Du diese Funktion in `main` mit der Funktion auswahl als Parameter auf?
Guten Morgen,
die Parameter hatte ich vergessen zu entfernen
Das war von einem anderen Versuch noch drin.
Den Rest habe ich auch noch angepasst.
Der TE könnte sich dann ja auf eine einheitliche Sprache festlegen. Das Programm sollte ja eh noch eine Bedingung zum Beenden bekommen.
Grüße
Dennis
die Parameter hatte ich vergessen zu entfernen

Den Rest habe ich auch noch angepasst.
Code: Alles auswählen
#!usr/bin/env python3
from random import randint
from time import sleep
def muenzenwurf():
tipp = input("Kopf [K] oder Zahl [Z]: ")
zufallszahl = randint(0, 1)
if zufallszahl == 0:
print("Kopf")
else:
print("Zahl")
def wuerfelwurf():
for counter in range(15):
print(randint(1,6))
def zufallszahl():
zahl = randint(1, 100)
print(f'Deine Zahl lautet: {zahl}')
def willkommen():
print('Du hast die Auswahl\n')
print("Münzenwurf, Würfel werfen oder einer Zufallszahl (1-100)")
print('Wähle nun, du hast die Auswahl zwischen:\n')
choice = input('Münzenwurf [M], Würfelwurf [W], Zufallszahl [Z]\n').lower()
return choice
def auswahl(choice):
if choice == 'm':
muenzenwurf()
elif choice == 'w':
wuerfelwurf()
elif choice == 'z':
zufallszahl()
else:
print('Bitte nur M, W oder Z zur Auswahl eingeben. Warten Sie für Neustart')
def main():
print('Willkommen zum Spiel\n')
while True:
choice = willkommen()
auswahl(choice)
sleep(2)
if __name__=='__main__':
main()
Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]