Seite 1 von 3
ein kleines quiz
Verfasst: Donnerstag 11. September 2008, 19:56
von Rootmentor
Moin hier ich habe zu lernzwecken ein kleines quiz programmiert.
Die fragen sind so najaa
Aber das wäre ja leicht zu ändern.
Code: Alles auswählen
#!/usr/bin/env python
import os
punktzahl = 0
punktinfo = "Dein punktestand:"
print "--------------------------------"
print "######Coded by Rootmentor#######"
print "--------------------------------"
print "Wilkommen beim Quiz von Rootmentor"
print "Erste frage: Mit was wurde dieses quiz Programmiert? / 1. Php : 2. Pyhton : 3. Html"
antwort = raw_input()
if antwort == "2":
punktzahl = 1
print "Richtig du dein punktestand"
print punktzahl
else:
print "Das ist leider Falsch"
print "Die antwort ist : Python"
print " Nun kommt die zweite Frage: Welcher Computer ist der beste? / 1. windoof : 2. Macmini : 3. portablepc"
antwort2 = raw_input()
if antwort2 == "2":
punktzahl = 2
print "Richtig dein Punktestand:"
print punktzahl
else:
print "Das ist leider Falsch, Dein Punktestand:"
print punktzahl
print "Die richtige antwort ist : Macmini"
print "Bereit fuer die Letzte alles entscheidene Frage?Gut!Hier kommt sie!"
print "Wie lange habe ich fuer dieses quiz gebraucht? / 1. ein tag : 2. Eine woche : 3. Zwei Stunden : 4.vier bis sechs tage"
antwort3 = raw_input()
if antwort3 == "3":
punktzahl = 3
print "Richtig dein Punktestand"
print punktzahl
else:
print "Das ist leider Falsch, Dein Punktestand:"
print punktzahl
print "Die richtige antwort ist : Zwei Stunden"
print "So das wars mit dem quiz. Dein punktestand betraegt"
print punktzahl
print "Bis dann!"
exit()
Verfasst: Donnerstag 11. September 2008, 20:13
von BlackJack
Viele Codewiederholungen und die Fragen sind *nicht* leicht zu ändern. Wenn man zum Beispiel irgendwo eine Frage einfügen will muss man überall `punktzahl` anpassen. Unter "leicht" stelle ich mir etwas anderes vor.
Die Fragen und Antworten gehören in eine Datenstruktur, die vom Programm dann verarbeitet wird. Das hätte man selbst auf'm C64 in BASIC so gemacht.
Verfasst: Donnerstag 11. September 2008, 20:13
von Leonidas
Also erstmal solltest du deine Einrückung mal konsistent hinbekommen. Was Du auch nutzen solltest sind Multi-Line-Strings ``"""mit drei Anführungszeichen"""`` und String-Formatting ``"Du hast %d Punkte." % 0``.
Inhaltlich finde ich "Pyhton" etwas seltsam und dass der Macmini der beste Computer ist zweifle ich jetzt auch mal an
Verfasst: Donnerstag 11. September 2008, 20:14
von numerix
Oh Schreck!
Wenn du schon laut Quizfrage 3 zwei Stunden für diesen Code gebraucht hast, vielleicht hättest du die 121. Minute noch dranhängen und die Unmengen an Rechtschreibfehlern reduzieren können.
Über die Qualität des Python-Codes äußere ich mich lieber erst gar nicht. Das werden andere sicher in aller Kürze tun ...
Edit: Haben andere vor Kürze schon getan ...
Verfasst: Donnerstag 11. September 2008, 21:11
von BlackJack
Nur mal so aus Nostalgiegründen in den C64 gehackt:
Code: Alles auswählen
10 print "========="
20 print "quiz v1.0"
30 print "========="
40 dim a$(10):p=0
50 read f$:if f$="" then end
60 print f$;"?":read n,c:for i=1 to n:read a$(i):print i;") ";a$(i):next i
70 input a:if a=c then print "richtige antwort!":p=p+1:goto 90
80 print "leider falsch.":print "die richtige antwort lautet: ";a$(c)
90 print "punktestand:";p:print:goto 50
100 rem --------------------------------
110 rem datenstruktur fuer fragen und
120 rem antworten.
130 rem * frage
140 rem * anzahl der antworten (n)
150 rem * nummer der richtigen antwort
160 rem * n antworten
170 rem endmarkierung ist eine leere
180 rem zeichenkette.
190 data "mit welcher sprache wurde dieses quiz programmiert"
200 data 3,2,"php","basic","html"
210 data "welcher computer ist der beste"
220 data 4,3,"windows pc","mac mini","c64","speccy"
230 data "wie lange habe ich fuer dieses quiz gebraucht"
240 data 4,3,"einen tag","eine woche","10 minuten","vier bis sechs tage"
250 data "":rem endmarkierung
Verfasst: Freitag 12. September 2008, 01:05
von abgdf
Yo, mich hat das auch an C64er-Zeiten erinnert. Da gab's mal so ein primitives Basic-"Adventure", da mußte man
> Drachen Chip-Heft ins Maul werfen
Erinnert sich vielleicht jemand ?
Viele Grüße
Verfasst: Freitag 12. September 2008, 21:57
von abgdf
@BlackJack:
Läuft super:
Viele Grüße
Verfasst: Freitag 12. September 2008, 23:53
von Leonidas
abgdf hat geschrieben:@BlackJack:
Läuft super
Etwas anderes hätte mich auch an BlackJack zweifeln lassen
Verfasst: Samstag 13. September 2008, 23:01
von Rootmentor
Wie geil xDDD
Nja die fragen sind nicht gut durchdacht ich weis.
ich muss dazu sagen ich bin jetzt seit ein paar Wochen dabei in Python zu programmieren und hatte vorher keine programmierkenntnisse, dass war halt jetzt mein größtes Projekt. Ich bin eig. zufrieden damit
Verfasst: Samstag 13. September 2008, 23:31
von tiax
egal wie richtig oder falsch die ersten zwei Fragen beantwortet werden - wenn man die dritte richtig hat, hat man alle (drei) Punkte
Autsch
Verfasst: Sonntag 14. September 2008, 09:23
von Rootmentor
Okay scheiße habs auch gesehn....
Nja beim testen is mir das nicht aufgefallen...
Am besten ich setze die punktzahl in einen integer oder?
Und dann bei einer richtigen antwort +1
Wie würde das aussehen?
Wie bekomm ich bei den fragen einen zeilenumbruch?
Verfasst: Sonntag 14. September 2008, 09:36
von apollo13
Indem du das Python-Tutorial liest und verstehst
Verfasst: Sonntag 14. September 2008, 10:25
von name
... welches du auf
http://docs.python.org/tut/ finden kannst.
Verfasst: Sonntag 14. September 2008, 10:42
von wuf
Hallo Rootmentor
Hier etwas zum studieren. Leicht angepasst. Leerzeilen in eine Skript sind nicht verboten.
Eine von vielen Varianten:
Code: Alles auswählen
#!/usr/bin/env python
# Verfasser: Rootmentor Do Sep 11, 2008 20:56
# http://www.python-forum.de/topic-16021.html
# Skriptname py_quiz_01.py (14.09.2008-01)
import os
punktzahl = 0
PUNKTINFO = "Richtig! Dein Punktestand ist:"
print
print "--------------------------------"
print "######Coded by Rootmentor#######"
print "--------------------------------"
print
print "Willkommen beim Quiz von Rootmentor"
print
print "Erste frage: Mit was wurde dieses quiz Programmiert?"
print " 1. Php"
print " 2. Python"
print " 3. Html"
antwort = raw_input("Welche Sprache ist es? ")
if antwort == "2":
punktzahl = 1
print PUNKTINFO, punktzahl
print
else:
print "Das ist leider Falsch"
print "Die Antwort ist : Python"
print
print "Nun kommt die zweite Frage: Welcher Computer ist der beste?"
print " 1. windoof"
print " 2. Macmini"
print " 3. portablepc"
antwort = raw_input("Welche Computer ist es? ")
if antwort == "2":
punktzahl = 2
print PUNKTINFO, punktzahl
print
else:
print "Das ist leider Falsch, Dein Punktestand:", punktezahl
print "Die richtige Antwort ist : Macmini"
print
print "Bereit fuer die letzte alles entscheidene Frage? Gut! Hier kommt sie!"
print "Wie lange habe ich fuer dieses Quiz gebraucht?"
print " 1. Ein Tag"
print " 2. Eine Woche"
print " 3. Zwei Stunden"
print " 4. Vier bis sechs Tage"
antwort = raw_input("Wie lange? ")
if antwort == "3":
punktzahl = 3
print PUNKTINFO, punktzahl
print
else:
print "Das ist leider Falsch, Dein Punktestand ist:", punktzahl
print "Die richtige Antwort ist : Zwei Stunden"
print
print "So das wars mit dem Quiz. Dein Punktestand betraegt", punktzahl
print
print "BIS ZUM NAECHSTEN MAL !!!"
print
exit()
Gruss wuf
Verfasst: Sonntag 14. September 2008, 10:58
von Leonidas
wuf, gerade in diesem Beispiel sind Multi-line Strings sehr nützlich.
Verfasst: Sonntag 14. September 2008, 11:17
von wuf
Hallo Leonidas
Was ist ein 'Multi-line Strings'? Es ist ein neuer Begriff für mich. Könntest du bitte ein kleines Beispiel zeigen, welches auf das obige Skript angewendet ist.
Danke Gruss wuf
Verfasst: Sonntag 14. September 2008, 11:23
von DasIch
wuf hat geschrieben:Was ist ein 'Multi-line Strings'? Es ist ein neuer Begriff für mich.
Line heisst auf Deutsch Zeile
Also ein String der über mehrere Zeilen geht.
Bsp:
Verfasst: Sonntag 14. September 2008, 11:23
von Leonidas
wuf hat geschrieben:Könntest du bitte ein kleines Beispiel zeigen, welches auf das obige Skript angewendet ist.
Natürlich, hier bitte:
Code: Alles auswählen
print """
--------------------------------
######Coded by Rootmentor#######
--------------------------------
Willkommen beim Quiz von Rootmentor
Erste frage: Mit was wurde dieses quiz Programmiert?
1. Php
2. Python
3. Html"""
Letztendlich sind das Strings die mit dreifachen (Doppel)Quotes eingefasst sind und über mehrere Zeilen gehen können.
Verfasst: Sonntag 14. September 2008, 11:36
von wuf
Hallo Leonidas
Danke für dein Beispiel. Alles klar.
@DasIch Danke für deine belehrende Aufklärung
Gruss wuf
Verfasst: Sonntag 14. September 2008, 13:24
von wuf
Hallo Leonidas
Ich habe mit der Ausgabe eines Multi-Line-Strings noch ein wenig herum experimentiert. Hier noch meine ergänzende Feststellung:
Der Code für die Ausgabe, wenn er auf Modulebene geschrieben wird:
Code: Alles auswählen
# Verfasser: wuf
# Skriptname py_quiz_02_01.py (14.09.2008-01)
# Funktion: Ausgabe eines Multi-Line-Strings auf Modulebene
print """
--------------------------------
######Coded by Rootmentor#######
--------------------------------
Willkommen beim Quiz von Rootmentor
Erste frage: Mit was wurde dieses quiz Programmiert?
1. Php
2. Python
3. Html"""
antwort = raw_input("Welche Sprache ist es? ")
Ausgaberesultat auf der Konsole:
Code: Alles auswählen
--------------------------------
######Coded by Rootmentor#######
--------------------------------
Willkommen beim Quiz von Rootmentor
Erste frage: Mit was wurde dieses quiz Programmiert?
1. Php
2. Python
3. Html
Welche Sprache ist es?
Der Code für die Ausgabe, wenn er in eine Funktion geschrieben wird:
Code: Alles auswählen
# Verfasser: wuf
# Skriptname py_quiz_02_02.py (14.09.2008-01)
# Funktion: Ausgabe eines Multi-Line-Strings aus einer Funktion
# oder Methode (mit Einrueckung)
def print_multi_line():
"""Ausgabe eines Multi-Line_Strings"""
print """
--------------------------------
######Coded by Rootmentor#######
--------------------------------
Willkommen beim Quiz von Rootmentor
Erste frage: Mit was wurde dieses quiz Programmiert?
1. Php
2. Python
3. Html"""
antwort = raw_input("Welche Sprache ist es? ")
print_multi_line()
Ausgaberesultat auf der Konsole:
Code: Alles auswählen
--------------------------------
######Coded by Rootmentor#######
--------------------------------
Willkommen beim Quiz von Rootmentor
Erste frage: Mit was wurde dieses quiz Programmiert?
1. Php
2. Python
3. Html
Welche Sprache ist es?
Fesstellung: Wenn der Code für die Ausgabe eines 'Multi-Line-Strings' in eine Funktion bzw. Methode geschrieben wird, übernimmt der 'Multi-Line-String' die Leerzeichen der Einrückung!
Gruss wuf