ein kleines quiz

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Rootmentor
User
Beiträge: 54
Registriert: Sonntag 17. August 2008, 18:26
Wohnort: Lingen
Kontaktdaten:

Donnerstag 11. September 2008, 19:56

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()
BlackJack

Donnerstag 11. September 2008, 20:13

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.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 11. September 2008, 20:13

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 ;)
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Donnerstag 11. September 2008, 20:14

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 ...
BlackJack

Donnerstag 11. September 2008, 21:11

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
abgdf

Freitag 12. September 2008, 01:05

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
abgdf

Freitag 12. September 2008, 21:57

@BlackJack:

Läuft super:
Bild
:P Viele Grüße
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Freitag 12. September 2008, 23:53

abgdf hat geschrieben:@BlackJack:

Läuft super
Etwas anderes hätte mich auch an BlackJack zweifeln lassen 8)
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Rootmentor
User
Beiträge: 54
Registriert: Sonntag 17. August 2008, 18:26
Wohnort: Lingen
Kontaktdaten:

Samstag 13. September 2008, 23:01

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 :D
Benutzeravatar
tiax
User
Beiträge: 152
Registriert: Samstag 23. Juli 2005, 17:28
Kontaktdaten:

Samstag 13. September 2008, 23:31

egal wie richtig oder falsch die ersten zwei Fragen beantwortet werden - wenn man die dritte richtig hat, hat man alle (drei) Punkte :D
Ne invoces expellere non possis
[url=xmpp://florian@florianheinle.de]xmpp:florian@florianheinle.de[/url]
Rootmentor
User
Beiträge: 54
Registriert: Sonntag 17. August 2008, 18:26
Wohnort: Lingen
Kontaktdaten:

Sonntag 14. September 2008, 09:23

Okay scheiße habs auch gesehn....
Nja beim testen is mir das nicht aufgefallen...:oops:
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?
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Sonntag 14. September 2008, 09:36

Indem du das Python-Tutorial liest und verstehst
Benutzeravatar
name
User
Beiträge: 254
Registriert: Dienstag 5. September 2006, 16:35
Wohnort: Wien
Kontaktdaten:

Sonntag 14. September 2008, 10:25

... welches du auf http://docs.python.org/tut/ finden kannst.
Ohloh | Mein Blog | Jabber: segfaulthunter@swissjabber.eu | asynchia – asynchrone Netzwerkbibliothek

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.
Benutzeravatar
wuf
User
Beiträge: 1483
Registriert: Sonntag 8. Juni 2003, 09:50

Sonntag 14. September 2008, 10:42

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 :wink:
Take it easy Mates!
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 14. September 2008, 10:58

wuf, gerade in diesem Beispiel sind Multi-line Strings sehr nützlich.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten