ein kleines quiz
Line heisst auf Deutsch Zeile Also ein String der über mehrere Zeilen geht.wuf hat geschrieben:Was ist ein 'Multi-line Strings'? Es ist ein neuer Begriff für mich.
Bsp:
Code: Alles auswählen
In [121]: print """hello
.....: world"""
hello
world
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Natürlich, hier bitte:wuf hat geschrieben:Könntest du bitte ein kleines Beispiel zeigen, welches auf das obige Skript angewendet ist.
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"""
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
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:
Ausgaberesultat auf der Konsole:
Der Code für die Ausgabe, wenn er in eine Funktion geschrieben wird:
Ausgaberesultat auf der Konsole:
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
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? ")
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?
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()
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?
Gruss wuf
Take it easy Mates!
Hallo Leonidas
Danke für deinen Tipp 'textwrap.detent'. War mir bis jetzt nicht bekannt.
Hier das Code-Stück: Ausgabe eines 'Multi-Line-Strings' aus einer Funktion formatiert mit der Methode 'dedent' aus dem Modul 'textwrap'
Besten Dank! Schon wieder etwas neues erfahren.
Gruss wuf
Danke für deinen Tipp 'textwrap.detent'. War mir bis jetzt nicht bekannt.
Hier das Code-Stück: Ausgabe eines 'Multi-Line-Strings' aus einer Funktion formatiert mit der Methode 'dedent' aus dem Modul 'textwrap'
Code: Alles auswählen
# Verfasser: wuf
# Skriptname py_quiz_02_02_01.py (14.09.2008-01)
# Funktion: Ausgabe eines Multi-Line-Strings aus einer Funktion
# oder Methode (mit Einrueckung)
import textwrap
def print_multi_line():
"""Ausgabe eines Multi-Line_Strings"""
print textwrap.dedent("""
--------------------------------
######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()
Gruss wuf
Take it easy Mates!
Hallo Rootmentor
Hier noch einmal dein von mir modifiziertes Code-Snippet mit Einbezug der neuen Erkenntnisse:
Gruss wuf
Hier noch einmal dein von mir modifiziertes Code-Snippet mit Einbezug der neuen Erkenntnisse:
Code: Alles auswählen
#!/usr/bin/env python
# Abgeleitet von:
# Verfasser: Rootmentor Do Sep 11, 2008 20:56
# http://www.python-forum.de/topic-16021.html
# Modifiziert durch wuf:
# Skriptname py_quiz_02.py (14.09.2008-01)
from textwrap import dedent
punktzahl = 0
PUNKTINFO = "Richtig! Dein Punktestand ist:"
def header():
"""Kopfzeile Rootmentor's Quiz"""
print dedent("""
--------------------------------
######Coded by Rootmentor#######
--------------------------------
Willkommen beim Quiz von Rootmentor""")
header()
print """
Erste frage: Mit was wurde dieses quiz Programmiert?
1. Php
2. Python
3. Html"""
antwort = raw_input("Welche Sprache ist es? ")
if antwort == "2":
punktzahl = 1
print PUNKTINFO, punktzahl
else:
print "Das ist leider Falsch!\nDie Antwort ist : Python"
print
print """Nun kommt die zweite Frage: Welcher Computer ist der beste?
1. windoof
2. Macmini
3. portablepc"""
antwort = raw_input("Welche Computer ist es? ")
if antwort == "2":
punktzahl = 2
print PUNKTINFO, punktzahl
else:
print "Das ist leider Falsch, Dein Punktestand: " + str(punktzahl) +\
"\nDie richtige Antwort ist : Macmini"
print
print """Bereit fuer die letzte alles entscheidene Frage? Gut! Hier kommt sie!
Wie lange habe ich fuer dieses Quiz gebraucht?
1. Ein Tag
2. Eine Woche
3. Zwei Stunden
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:" + str(punktzahl) +\
"\nDie 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()
Take it easy Mates!
Wie waers einfach mit
Das geht dann ueberall, auch wenns eingerueckt ist, ohne Probleme.
BTW, Tut mir zwar leid, aber das ganze ist ziemlich broken. Probiers mal in Funktionen aufzuteilen, et cetera. z.B. eine List mit fragen und antworten, dann drueber iterieren, und fragen, wenn richtig punktestand erhoehen.
Bitte Leute, wenn ihr im helft, helft ihm wirklich und verbessert nicht nur seinen Code, der aber viele design-flaws hat.
So in der Art, ist aber nur schnell hingefetzt, wobei ich das mit dem prompt ja weglassen wuerd, aber wie du willst.
Code: Alles auswählen
print ("Foo"
"Bar"
"Baz"
"Spam"
"Eggs")
BTW, Tut mir zwar leid, aber das ganze ist ziemlich broken. Probiers mal in Funktionen aufzuteilen, et cetera. z.B. eine List mit fragen und antworten, dann drueber iterieren, und fragen, wenn richtig punktestand erhoehen.
Bitte Leute, wenn ihr im helft, helft ihm wirklich und verbessert nicht nur seinen Code, der aber viele design-flaws hat.
So in der Art, ist aber nur schnell hingefetzt, wobei ich das mit dem prompt ja weglassen wuerd, aber wie du willst.
Code: Alles auswählen
# (Frage, (Antwort, Andere Antwort), Prompt, Index der richtigen Antwort)
questions = [("Ist dieses Programm sinnlos?", ("Ja", "Nein"), "Sinnlos? ", 0),
("Ist name langweilig?", ("Nein", "Ja"), "Langeweile? ", 1)]
def display_question(question, answers):
print question
for i, answer in enumerate(answers):
print "%d: %s" % (i+1, answer)
def ask_question(question, answers, prompt, right_answer):
display_question(question, answers)
while True:
try:
ans = int(raw_input(prompt))
if 0 < ans <= len(answers):
break
except ValueError:
pass
return ans-1 == right_answer
def main():
score = 0
for qst in questions:
question, answers, prompt, right_answer = qst
if ask_question(question, answers, prompt, right_answer):
score+=1
else:
print "Richtig waere \"%s\" gewesen" % answers[right_answer]
print score
if __name__ == "__main__":
main()
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.
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.
Hallo name
Gruss wuf
Hast du dies auch wirklich ausprobiert?name hat geschrieben:Wie waers einfach mitDas geht dann ueberall, auch wenns eingerueckt ist, ohne Probleme.Code: Alles auswählen
print ("Foo" "Bar" "Baz" "Spam" "Eggs")
Gruss wuf
Take it easy Mates!
Das man da die newlines braucht sollte sich doch von selbst verstehen. Also das waere dann:wuf hat geschrieben:Hallo name
Hast du dies auch wirklich ausprobiert?name hat geschrieben:Wie waers einfach mitDas geht dann ueberall, auch wenns eingerueckt ist, ohne Probleme.Code: Alles auswählen
print ("Foo" "Bar" "Baz" "Spam" "Eggs")
Gruss wuf
Code: Alles auswählen
print ("Foo\n"
"Bar\n"
"Baz\n"
"Spam\n"
"Eggs")
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.
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.
Hallo Rootmentor
Habe den Vorschlag von 'name' für die Ausgabe eines 'Multi-Line-Strings angewendet.
Übrigens dein Ansatz-Code für das Quiz-Programm finde ich gut (fast flaw-less).
Gruss wuf
Habe den Vorschlag von 'name' für die Ausgabe eines 'Multi-Line-Strings angewendet.
Code: Alles auswählen
# Abgeleite von meinem Beitrag (So Sep 14, 2008 15:16)
# Habe den Vorschlages für die Ausgabe eines Multi-Line-Strings
# von 'name' angewendet.
# Verfasser: wuf
# Skriptname py_quiz_02_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 ("\n--------------------------------\n"
"######Coded by Rootmentor#######\n"
"--------------------------------\n\n"
"Willkommen beim Quiz von Rootmentor\n\n"
"Erste frage: Mit was wurde dieses quiz Programmiert?\n"
"1. Php\n"
"2. Python\n"
"3. Html")
antwort = raw_input("Welche Sprache ist es? ")
print_multi_line()
Wenn es jeder von selbst verstehen würde brauchte es dieses Forum nicht mehr.name hat geschrieben: Das man da die newlines braucht sollte sich doch von selbst verstehen. Also das waere dann:
Übrigens dein Ansatz-Code für das Quiz-Programm finde ich gut (fast flaw-less).
Gruss wuf
Take it easy Mates!
@name: Du könntest das zusätzliche Feld für die Angabe der korrekten Antwort noch sparen, wenn du diese immer im ersten Element den Antwort-Tupels ablegst. Vor der Ausgabe mischt man dann einfach alle möglichen Antworten und zeigt diese dann dem Benutzer.
Das ueberlass ich mal dem OP als Fleissaufgabe, sonst schreib ich ihm ja sein ganzes Programm.EyDu hat geschrieben:@name: Du könntest das zusätzliche Feld für die Angabe der korrekten Antwort noch sparen, wenn du diese immer im ersten Element den Antwort-Tupels ablegst. Vor der Ausgabe mischt man dann einfach alle möglichen Antworten und zeigt diese dann dem Benutzer.
Dankeschoenwuf hat geschrieben:Übrigens dein Ansatz-Code für das Quiz-Programm finde ich gut (fast flaw-less).
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.
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.
Man braucht kein textwrap.dedent um das Einrückungsproblem zu beheben.
Code: Alles auswählen
multistring = """
--------------------------------
######Coded by Rootmentor#######
--------------------------------
Willkommen beim Quiz von Rootmentor
Erste frage: Mit was wurde dieses quiz Programmiert?
1. Php
2. Python
3. Html"""
def print_multi_line():
print multistring
antwort = raw_input("Welche Sprache ist es? ")
print_multi_line()
Versuchs doch mal bei einer Zeichenkette die eingrückt ist. Oder eine nicht eingerückte Zeichenkette in einer Funktion ohne das die Lesbarkeit leidet.
-
- User
- Beiträge: 54
- Registriert: Sonntag 17. August 2008, 18:26
- Wohnort: Lingen
- Kontaktdaten:
Danke das mit den leerzeichen gefällt mir x)
Ich glaube das werde ich mir angewöhnen
Ich glaube das werde ich mir angewöhnen
Böse globale Variable!bremer hat geschrieben:Man braucht kein textwrap.dedent um das Einrückungsproblem zu beheben.
Code: Alles auswählen
multistring = """ -------------------------------- ######Coded by Rootmentor####### -------------------------------- Willkommen beim Quiz von Rootmentor Erste frage: Mit was wurde dieses quiz Programmiert? 1. Php 2. Python 3. Html""" def print_multi_line(): print multistring antwort = raw_input("Welche Sprache ist es? ") print_multi_line()
Neben dem ganzen multi-line-string getue eine Frage an den OP: a) Hat dir mein Beispiel geholfen und b) Wie sieht das Programm jetzt aus.
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.
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.