Code: Alles auswählen
In [18]: string.uppercase[-2:-12:-2]
Out[18]: 'YWUSQ'
Code: Alles auswählen
In [18]: string.uppercase[-2:-12:-2]
Out[18]: 'YWUSQ'
Code: Alles auswählen
# -*- coding: iso-8859-1 -*-
import easygui, random, sys
frage_antwort = [
("Was ist Fifa13?", "Ein Computerspiel", ["Ein Computerspiel", "Ein Monster", "Eine Uhrzeit"]),
("Was ist eine Computermaus?", "Ein Steuerungsgeraet", ["Ein Steuerungsgeraet", "Eine Tastatur", "Ein Bildschirm"]),
("Test1", "Test2", ["Test2", "Test3", "Test4"])
]
punkte = 0
versuche = 2
for frage, loesung, antwort in frage_antwort:
antworten = random.sample(antwort, len(antwort))
frage_gui = easygui.buttonbox(frage, choices = antworten)
if frage_gui == loesung:
print "richtig"
Seit wann gibt es im "Wer wird Millionär" mehr Antwortmöglichkeiten?Falls aber irgendwann mal mehrere Antwortmöglichkeiten korrekt sein können, muss man sich natürlich wieder etwas anderes ausdenken, um dies einigermaßen benutbar in Code zu bringen...
Es kommt halt darauf an, was für Anwendungen erwartet werden. Der Vorschlag von Leonidas ist daher sicher der flexibelste, da eine Menge an richtigen und eine Menge an falschen Antworten übergeben werden kann.snafu hat geschrieben:Falls aber irgendwann mal mehrere Antwortmöglichkeiten korrekt sein können, muss man sich natürlich wieder etwas anderes ausdenken, um dies einigermaßen benutbar in Code zu bringen...
Du hast es aber offensichtlich nicht verstanden. Du machst doch jetzt genau das, von dem dir weiter oben abgeraten wurde: du führst das richtige Element noch einmal extra auf. Das hat alle Nachteile des Indexansatzes und macht Fehler noch wahrscheinlicher, da sich ein kleiner Schreibfehler schneller einschleicht als ein Indexfehler. Schau dir den Ansatz von Leonidas noch einmal genau an.Gary123456 hat geschrieben:@snafu) Danke Dir habe ich im Code viel dazugelernt. Die Aufteilung in mehreren Zeilen der Listen ist klug.
Und mal sehen, ob ich mal Zeit für Deine Aufgabe habe
Code basiert auf Strategie von Leonidas. Ist übersichtlicher und besser für mich.
Eine Änderung der Anforderung passiert häufiger als man denkt (also eigentlich fast immer). Daher muss immer ein Zwischenweg aus Allgemeinheit und Aufwand gefunden werden.Gary123456 hat geschrieben:Seit wann gibt es im "Wer wird Millionär" mehr Antwortmöglichkeiten?
Code: Alles auswählen
# -*- coding: iso-8859-1 -*-
import easygui, random, sys
frage_antwort = [
("Was ist Fifa13?", ["Ein Computerspiel", "Ein Monster", "Eine Uhrzeit"]),
("Was ist eine Computermaus?", ["Ein Steuerungsgeraet", "Eine Tastatur", "Ein Bildschirm"]),
("Test1", ["Test2", "Test3", "Test4"])
]
punkte = 0
versuche = 2
for frage, antwort in frage_antwort:
antworten = random.sample(antwort, len(antwort))
frage_gui = easygui.buttonbox(frage, choices = antworten)
if frage_gui == antwort[0]:
print "richtig"
Code: Alles auswählen
import easygui, random, sys
frage_antwort = [
("Was ist Fifa13?", ["Ein Computerspiel"], ["Ein Monster", "Eine Uhrzeit"]),
("Was ist eine Computermaus?", ["Ein Steuerungsgeraet"], ["Eine Tastatur", "Ein Bildschirm"]),
("Test1", ["Test2"], ["Test3", "Test4"])
]
for frage, richtige_antworten, falsche_antworten in frage_antwort:
antworten = random.sample(richtige_antworten+falsche_antworten,
len(richtige_antworten)+len(falsche_antworten))
antwort = easygui.buttonbox(frage, choices = antworten)
if antwort in richtige_antworten:
print "richtig"
Erfahrungsgemäß macht man sich mit solchen Aussagen selbst was vor...Gary123456 hat geschrieben: [...] und in der Theorie ist mir eh alles klar!![]()
Wo denn bitteschön? Ich habe alles versucht, die Vorschläge anzunehmen? Und am aktuellen Code scheint auch alles super zu laufen.Du bekommst hier viele nützliche Hinweise, bist aber immer nur am erklären, warum du deins trotzdem besser findest und dass du eh schon alles verstanden hast. Kannst du ja machen, aber so wird das mit Programmieren lernen viel länger dauern, als eigentlich nötig wäre
Code: Alles auswählen
liste = ["Test1, Test2, Test3"]
Code: Alles auswählen
liste = ["Test1", "Test2", "Test3"]
Code: Alles auswählen
# -*- coding: iso-8859-1 -*-
import easygui, random, sys
frage_antwort = [
("Was ist Fifa13?", ["Ein Computerspiel", "Ein Monster", "Eine Uhrzeit"]),
("Was ist eine Computermaus?", ["Ein Steuerungsgeraet", "Eine Tastatur", "Ein Bildschirm"]),
("Test1", ["Test2", "Test3", "Test4"])
]
punkte = 0
versuche = 2
frage_an_user = raw_input("Moechten sie eine Frage hinzufuegen? 'ja' fuer Ja")
if frage_an_user == "ja":
frage_liste = raw_input("Welche Frage wuenschen sie sich?")
antwort_moeglichkeiten = raw_input("Welche Antworten wuenschen sie sich (per Leerzeichen getrennt!)") #immer index 0 richtige Antwort!
frage_antwort.extend([(frage_liste, antwort_moeglichkeiten.split())])
for fragen, antworten in frage_antwort:
frage_gui = easygui.buttonbox(fragen, choices = random.sample(antworten, len(antworten)))
if frage_gui == antworten[0]:
print "richtig"
punkte += 100
versuche -= 1
Öh... Listen fügt man Elemente mittels ``list.append`` hinzu! Wozu Du da string-Methoden brauchst, erschließt sich uns hier nicht...Gary123456 hat geschrieben:Vielen Dank. Diese Funktion kannte ich vorher noch nicht. Ich brauche das für mein Gewinnspiel, um der Liste was hinzuzufügen