Seite 2 von 3

Verfasst: Mittwoch 17. September 2008, 02:41
von bremer
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()

Verfasst: Mittwoch 17. September 2008, 06:16
von BlackJack
Versuchs doch mal bei einer Zeichenkette die eingrückt ist. Oder eine nicht eingerückte Zeichenkette in einer Funktion ohne das die Lesbarkeit leidet.

ty

Verfasst: Donnerstag 18. September 2008, 15:35
von Rootmentor
Danke das mit den leerzeichen gefällt mir x)
Ich glaube das werde ich mir angewöhnen

Verfasst: Donnerstag 18. September 2008, 17:41
von Klip
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()
Böse globale Variable!

Verfasst: Donnerstag 18. September 2008, 18:04
von name
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.

Verfasst: Donnerstag 18. September 2008, 18:29
von numerix
Klip hat geschrieben:Böse globale Variable!
Naja, so schlimm ist das hier nicht - es ist ja nur ein Lesezugriff.

Allerdings gibt es auch keinen guten Grund, multistring nicht im lokalen Namensraum der Funktion zu definieren.

Verfasst: Donnerstag 18. September 2008, 18:31
von name
numerix hat geschrieben:
Klip hat geschrieben:Böse globale Variable!
Naja, so schlimm ist das hier nicht - es ist ja nur ein Lesezugriff.

Allerdings gibt es auch keinen guten Grund, multistring nicht im lokalen Namensraum der Funktion zu definieren.
Womit wir wieder am Anfang, dem Einrueckungsproblem, waeren. Ich persoenlich finde """ strings eingerueckt grauslich, weil die folgenen Zeilen sehen immer so aus als waeren sie auf Modul-Ebene.

Verfasst: Donnerstag 18. September 2008, 18:52
von Trundle
name hat geschrieben:Womit wir wieder am Anfang, dem Einrueckungsproblem, waeren. Ich persoenlich finde """ strings eingerueckt grauslich, weil die folgenen Zeilen sehen immer so aus als waeren sie auf Modul-Ebene.
Deshalb wurde ja bereits festgestellt, dass ``textwrap.dedent`` existiert. Oder verstehe ich gerade etwas falsch?

Verfasst: Donnerstag 18. September 2008, 19:09
von Rootmentor
ja dein beispiel war schon sehr hilfreich so sietzt jetzt aus

Code: Alles auswählen

#!/usr/bin/env python
import os
int = 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? \n 1. Php: \n 2. Pyhton: \n 3. Html: "
antwort = raw_input()


if antwort == "2":
    int += 1
    print "Richtig du dein punktestand"
    print int
else:
        print "Das ist leider Falsch"
        print "Die antwort ist : Python"

print " Nun kommt die zweite Frage: Welcher Computer ist der beste? \n 1.windoof \n" + "2. Mac mini \n" + "3.Portablepc"

antwort2 = raw_input()

if antwort2 == "2":
    int += 1
    print "Richtig dein Punktestand:"
    print int
else:
      print "Das ist leider Falsch, Dein Punktestand:"
      print int
      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? /n 1. ein tag :\n 2. Eine woche :\n 3. Zwei Stunden :\n 4.vier bis sechs tage"

antwort3 = raw_input()

if antwort3 == "3":
    int += 1 
    print "Richtig dein Punktestand"
    print int
else:
    print "Das ist leider Falsch, Dein Punktestand:"
    print int
    print "Die richtige antwort ist : Zwei Stunden"


print "So das wars mit dem quiz. Dein punktestand betraegt"
print int
print "Bis dann!"

exit()

Verfasst: Donnerstag 18. September 2008, 19:22
von name
Rootmentor hat geschrieben:ja dein beispiel war schon sehr hilfreich so sietzt jetzt aus
Und was genau von meinem Beispiel hast du jetzt bitte verwendet? :shock:
Beherz dir mal das ganze schoen in Funktionen aufzuteilen, wie eben in meinem Beispiel. Das sollte es ja zeigen.

Verfasst: Donnerstag 18. September 2008, 19:46
von Rootmentor
was bringt das wenn ich jede frage + antworten in eine funktion schreibe?

Verfasst: Donnerstag 18. September 2008, 19:48
von name
Rootmentor hat geschrieben:was bringt das wenn ich jede frage + antworten in eine funktion schreibe?
Hast du mein Bsp. nur ein paar Minuten angeschaut, scheint naemlich nicht so.

PS: Solltest du es wirklich nicht angeschaut haben, was ich vermute, empfinde ich es als Frechheit mir gegenueber. Es mag zwar nicht ein aufwaendiges Programm sein, aber trotzdem hat es mich (ein bisschen) Zeit gekostet.
Solltest du es doch angeschaut haben hast du es nicht verstanden. Schau es dir nochmal an. Da hast du schoen die Fragen in einer Liste, und brauchst nur diese aendern fuer neue Fragen.

Verfasst: Donnerstag 18. September 2008, 20:00
von BlackJack
@Rootmentor: Den Namen `int` sollte man nicht neu binden.

Verfasst: Donnerstag 18. September 2008, 20:02
von Rootmentor
ich kapier das nich is mir zu hoch

Verfasst: Donnerstag 18. September 2008, 20:04
von name
Rootmentor hat geschrieben:ich kapier das nich is mir zu hoch
Ich empfehle das Tutorial zu machen falls du es noch nicht gemacht hast, dann wieder hier zurueck kommen. Danke.

Verfasst: Donnerstag 18. September 2008, 20:11
von Rootmentor
wie lange habt ihr gebraucht bis ihr so weit wart?

Verfasst: Donnerstag 18. September 2008, 20:14
von name
Rootmentor hat geschrieben:wie lange habt ihr gebraucht bis ihr so weit wart?
Wenn wir dir den Code aber schon vorkauen, sollte es nicht mehr so ein Problem sein das anzuwenden.

Falls es konkrete Fragen dazu gibt, stehe ich gerne zu Verfuegung. Doch Empfelungen einfach zu ignorieren, da fuehl' ich mich verarscht, wozu helfe ich dir dann ueberhaupt.

Hier zur Illustration zum Problem vom ueberschreiben von int.

Code: Alles auswählen

>>> a = int(5)
>>> a
5
>>> int = 4
>>> int(2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable
>>> 

Verfasst: Donnerstag 18. September 2008, 20:16
von Rootmentor
genau deswegen hab ich das mit der anfänger base geschrieben....
Ich schreibt alle schon auf einem ganz anderem Niveau wie ich...

Verfasst: Donnerstag 18. September 2008, 20:19
von name
Rootmentor hat geschrieben:genau deswegen hab ich das mit der anfänger base geschrieben....
Ich schreibt alle schon auf einem ganz anderem Niveau wie ich...
Ich bezweifle das das der richtige Ansatz zum Lernen ist. Schau dir ordentlichen Code an, und versuch daraus zu lernen. Evtl. dabei auftretende Fragen werden dir sicher gerne beantwortet.

Verfasst: Donnerstag 18. September 2008, 20:21
von Rootmentor
wenn ich französisch lernen will
dann zieh ich mir auch nich nur französische texte rein..Sondern lerne vokabeln..