Seite 1 von 1
Hilfe bei eine programm
Verfasst: Mittwoch 29. Juni 2016, 17:54
von abdou
Code: Alles auswählen
# Zufall spiel
import random
random.seed()
# zufall defeniert 1 bis 5"
a = random.randint(1,5)
b = random.randint(1,5)
c = a+b
print ("Der computer wählt eine zufall zahl von 1 bis 10")
print ("Und du sollst raten welche es ist")
print ("Du hast 5 versuche")
print ("Bitte eine Zahl eingeben")
for i in range(5):
z = input()
zahl = int(z)
if zahl == c:
print(" Deine zahl ist richtig")
break
else: zahl != c , print("versuche nochmal")
print ("Zufal zahl ist: ",c)
if zahl == c:
print("Du hast gewonnen")
else: print(" Du hast verloren")
Hallo leute bin neue hier und auch un python gerade angefangen python zu lernen hoffe komme ich weiter und werde gut mal schauen:
so zu meine sache ich möchte in meine programm zwei sachen bauen und zwar
wenn ich 2 nummer zu hoch oder 2 nummer zu klein als c den zufall zahl möchte ich das er mir sagt warm ,und wen ich 1 nummer zu hoch oder zu klein als c den zufall zahl das er mir wärme schreibt als hilfe tip für den spieke wie baue ich das am besten
Re: Hilfe bei eine programm
Verfasst: Mittwoch 29. Juni 2016, 18:44
von Sirius3
@abdou: Dein computer wählt aber eine Zahl zwischen 2 und 10 und mit 6 hat man die größten Gewinnchancen. Die Einrückung sollte immer 4 Leerzeichen sein und nicht mal 3 und mal 4. Nach : sollte immer eine neue Zeile anfangen (außer bei dicts und lambdas). Wo ist der Sinn, beim ersten "else" ein Tupel zu erzeugen, das nicht verwendet wird?
Wo ist Dein Problem, die richtige Bedingung für Deine Ausgaben zu finden?
Re: Hilfe bei eine programm
Verfasst: Mittwoch 29. Juni 2016, 18:50
von Pygoscelis papua
Code: Alles auswählen
if abs(c-zahl) <= 2:
print('warm')
elseif abs(c-zahl) <= 1:
print('noch wärmer')
Re: Hilfe bei eine programm
Verfasst: Mittwoch 29. Juni 2016, 19:24
von BlackJack
@abdou: Der `seed()`-Aufruf ist unnötig, den solltest Du raus nehmen.
Re: Hilfe bei eine programm
Verfasst: Mittwoch 29. Juni 2016, 22:22
von Dirki
BlackJack hat geschrieben:@abdou: Der `seed()`-Aufruf ist unnötig, den solltest Du raus nehmen.
Hallo,
mal für einen Neuling...
Das Codebeispiel kommt so ähnlich in dem Buch "Einstieg in Python" vor.
Da ist das genau so beschrieben mit dem seed.
Kannst du vielleicht erklären, warum das unnötig ist, und was das evtl. eigentlich verursachen sollte?
Danke vielmals!
Gruß
Dirk
Re: Hilfe bei eine programm
Verfasst: Mittwoch 29. Juni 2016, 23:09
von snafu
Pygoscelis papua hat geschrieben:Code: Alles auswählen
if abs(c-zahl) <= 2:
print('warm')
elseif abs(c-zahl) <= 1:
print('noch wärmer')
Die Verwendung von
abs() ist eine gute Idee. Es heißt allerdings in Python
elif und nicht
elseif. Außerdem würde ich hier mit
== anstelle von
<= arbeiten. Bei deinem Beispiel würde der
elif-Zweig gar nicht erst betreten werden, da eine Zahl <= 1 immer auch <= 2 ist. Insofern guckt sich der Programmfluss den zweiten Zweig gar nicht mehr an, sobald der erste Zweig betreten wurde.
Re: Hilfe bei eine programm
Verfasst: Mittwoch 29. Juni 2016, 23:31
von BlackJack
@Dirki: Der (Pseudo)Zufallsgenerator wird beim importieren des Moduls bereits mit einem passenden ”seed”-Wert versorgt. Im besten Fall ist der Aufruf einfach überflüssig, im schlechtesten Fall kann er sogar dafür sorgen das es weniger ”Zufall” gibt.
Re: Hilfe bei eine programm
Verfasst: Donnerstag 30. Juni 2016, 00:11
von snafu
@Dirki:
Wir reden hier von Pseudozufall. Der Zufallszahlengenerator wird einmalig mit einem möglichst zufälligen Wert initialisiert (z.B. die aktuelle Uhrzeit). Von da an läuft das Erzeugen von Zufallszahlen nach einem festen Muster ab. Im Grunde funktioniert das ähnlich wie bei einem Zustandsautomaten. Mit
random.seed() setzt du den Generator wieder auf einen Initialwert. Du kannst hier auch ein Argument mitgeben. Zum Testen ist das ganz nett, weil der weitere "zufällige" Ablauf dann immer auf diesem Argument beruht:
Code: Alles auswählen
import random
for _ in range(3):
random.seed(123)
for _ in range(3):
print(random.randint(0, 10))
...aber ansonsten braucht man das eigentlich nicht.
Re: Hilfe bei eine programm
Verfasst: Donnerstag 30. Juni 2016, 08:55
von Dirki
Ahh! Vielen Dank! Jetzt bin ich wieder etwas schlauer. Nicht mal Büchern kann man vertrauen.

Re: Hilfe bei eine programm
Verfasst: Donnerstag 30. Juni 2016, 09:28
von BlackJack
Das man nicht glauben darf was man liest, kann man doch schon in den fünf Geboten in der Principia Discordia nachlesen. Das steht da schwarz auf weiss, also muss es stimmen.

Re: Hilfe bei eine programm
Verfasst: Donnerstag 30. Juni 2016, 12:15
von Pygoscelis papua
@snafu ja sorry ich hatte nicht so viel Zeit...
Code: Alles auswählen
if abs(c-zahl) == 2:
print('warm')
elif abs(c-zahl) == 1:
print('noch wärmer')