anfänger probleme :)

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Skuhl
User
Beiträge: 8
Registriert: Sonntag 30. März 2008, 11:03

Jo ich hab erst vor 2 tagen angefangen zu Programmieren mit python, da es ein kumpel von mir sehr empfohlen hat.
Muss sagen gefällt mir echt gut aber ich gebe in einem compiler vollgendes ein:

Code: Alles auswählen


Name = raw_input()
satz = "hy Name, wie, geht es dir?"
print satz

aber wen ich des ausühren will, geht nix, da muss irgendwo ein fehler sein :)
bitte net lachen, kann mir vorstellen das es ein richtig doofer anfänger fehler ist der eigentlich simpel zu beheben ist :) aber ich hoffe es erklärt mir jemand gut den fehler, bitte.

Liebe grüsse aus der Schweiz

Andi

p.s. ich arbeite mit dem KDevelop auf SuSE 10.2, arbeite irgendwie nicht gerne mit der konsole direkt obwohl dann gibt es:

smot@linux-sbbm:~/xc> python xc.py
Peter
hy Name, wie, geht es dir?
smot@linux-sbbm:~/xc>

aus.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Hallo und willkommen im Forum,

Versuche mal

Code: Alles auswählen

name = raw_input("Wie heisst du denn? ")
print "Hallo %s, wie geht es dir?" % name
Mehr dazu findest Du im Tutorial

Gruss
Christian
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hallo Skuhl, willkommen im Forum,
Skuhl hat geschrieben:p.s. ich arbeite mit dem KDevelop auf SuSE 10.2, arbeite irgendwie nicht gerne mit der konsole direkt obwohl dann gibt es:
Natürlich, denn die Ausgaben erscheinen auf stdout. Wenn du keine Konsole offen hast, dann siehst du die Ausgaben nicht. So einfach ist das.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Skuhl
User
Beiträge: 8
Registriert: Sonntag 30. März 2008, 11:03

jo danke :) bin jetzt bissl mit dem tutorial weiter gekommen :)

Jetzt is mir nur wieder etwas komisches pasiert, hab ne aufgabe nach tutorial gemacht, eine passwort + name abfragung aber wen ich auch falsches eingebe ist das eigentlich richtig :) strange---->

Code: Alles auswählen


def passwort():
    print "Dein name?: ",
    eingabe = raw_input()
    print "Zauberwort: ",
    wort = raw_input()
    if (eingabe, wort == "Skuhl, Pocus"):
       print "Salut Skuhl !"
    else:
       print "weg von meinem Rechner !!"
passwort()

Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

``if (eingabe, wort == "Skuhl, Pocus"):`` -> ``if eingabe, wort == "Skuhl", "Pocus":``

Außerdem solltest du schauen, dass due die Einrückung mit konstant 4 Leerzeichen hinbekommst. Im Beispiel hast du einmal 4und einmal 3 Leerzeichen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Code: Alles auswählen

    if eingabe, wort == "Skuhl", "Pocus":
Versuchs mal damit
Skuhl
User
Beiträge: 8
Registriert: Sonntag 30. März 2008, 11:03

ok, vielen dank :) geht ja schnell hier mit dem geholfen werden :)
Skuhl
User
Beiträge: 8
Registriert: Sonntag 30. März 2008, 11:03

hmmm geht aber immer noch net,

Code: Alles auswählen

def passwort():
    print "Dein name?: ",
    eingabe = raw_input()
    print "Zauberwort: ",
    wort = raw_input()
    if eingabe, wort == "Skuhl", "Pocus":
       print "Salut Skuhl !"
    else:
       print "weg von meinem Rechner !!"
passwort()

gibt mir in der konsole dann:

smot@linux-sbbm:~/xc> python passwd-test.py
File "passwd-test.py", line 6
if eingabe, wort == "Skuhl", "Pocus":
^
SyntaxError: invalid syntax
smot@linux-sbbm:~/xc>

aus, auch ohne komma gibt es die gleiche fehlermeldung nur ist es dann das e von eingabe das falsch sein sollte :)
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Kann es sein, daß Du

Code: Alles auswählen

def passwort():
    login = raw_input("Dein name?: ")
    passwd = raw_input("Zauberwort: ")
    if login == "Skuhl" and passwd == "Pocus":
       print "Salut Skuhl !"
    else:
       print "weg von meinem Rechner !!"
passwort() 
möchtest?

Wie die anderen beiden auf ihre Vorschläge kommen, weiß ich nicht, aber das ist ohnehin ein Syntaxfehler. Hier beißt sich meine persönliche Logik und die Syntax. Was bedeutet denn 'if eingabe, ...' ? Der Interpreter, weiß es offenbar auch nicht ;-).

Gruß,
Christian
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

CM hat geschrieben:Wie die anderen beiden auf ihre Vorschläge kommen, weiß ich nicht, aber das ist ohnehin ein Syntaxfehler.
Weil man dann zwei Tupel vergleichen würde. Das funktioniert sogar, wenn man Klammern darum macht (wie eben in LCs, lambdas etc. auch).

Code: Alles auswählen

if (eingabe, wort) == ("Skuhl", "Pocus"):
    pass
Edit: Typos..
Zuletzt geändert von Trundle am Sonntag 30. März 2008, 14:21, insgesamt 2-mal geändert.
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Das Komma erzeugt normalerweise ein Tupel, in diesem Fall scheint das so nicht zu funktionieren, da muesste man Klammern:

Code: Alles auswählen

if (eingabe, wort) == ("Skuhl", "Pocus"):
Aber die Variante mit dem and finde ich da schon schoener.

Hier geht's ohne Klammern:

Code: Alles auswählen

>>> a = 1, 2, 3
>>> print a
(1, 2, 3)
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Skuhl
User
Beiträge: 8
Registriert: Sonntag 30. März 2008, 11:03

boeh echt geil leute, fühle mich hier ja schon echt wohl, obwohl ich das gefühl habe euch bald auf die nerven zu gehen mit meiner fragerei :) aber eben bin ein blutiger anfänger :) werde mir jetzt gleich auch noch n buch bestellen über Python.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Mal zur Klarstellung:

Code: Alles auswählen

>>> a, b = 1, 1
>>> a, b == 1, 1
(1, True, 1)
>>> (a, b) == (1, 1)
True
Wenn der Ausdruck nicht zu lang wird, nutze ich meist "and". Aber das ist natürlich Geschmackssache. Aber die Variante ohne Klammer würde ich nicht nutzen wollen. Kann gut gehen, muß aber nicht.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hmm, wundert mich ein wenig, warum es da nur mit Klammern funktioniert. Da müssteman in der Grammatik nachschlagen, warum es das nicht tut.

Ansonsten finde ich die Tupel-Methode gar nicht mal schlecht, da man damit hässliche ``and``-Kaskaden vermeidet. Vielleicht mag ich auch einfach keine Schlüsselwörter.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Leonidas hat geschrieben:Hmm, wundert mich ein wenig, warum es da nur mit Klammern funktioniert. Da müssteman in der Grammatik nachschlagen, warum es das nicht tut.
Das Komma hat einfach eine ziemlich niedrige Priorität, u.a. auch niedriger als ==.
Ansonsten finde ich die Tupel-Methode gar nicht mal schlecht, da man damit hässliche ``and``-Kaskaden vermeidet. Vielleicht mag ich auch einfach keine Schlüsselwörter.
Nur leider ist die Methode langsamer, weil erst sinnlose Tupel gebaut werden müssen. Außerdem shortcuttet (:)) "and".
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

birkenfeld hat geschrieben:Ansonsten finde ich die Tupel-Methode gar nicht mal schlecht, da man damit hässliche ``and``-Kaskaden vermeidet. Vielleicht mag ich auch einfach keine Schlüsselwörter.
Nur leider ist die Methode langsamer, weil erst sinnlose Tupel gebaut werden müssen. Außerdem shortcuttet (:)) "and".[/quote]
Das Tupel gebaut werden ist mir klar, aber zumindest im Fall von zweielementigen Tupel sollte das kein großes Problem sein, da die gecached sind. Das Kurzschließen von "and"... ja, stimmt - nur im vorliegenden Fall macht es für die Programmausführung keinen Unterschied.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten