if und raw_input

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.
Benutzeravatar
Agroschim
User
Beiträge: 28
Registriert: Sonntag 16. September 2007, 15:19

if und raw_input

Beitragvon Agroschim » Sonntag 16. September 2007, 15:21

Hallo!
Ich bin absoluter Python Neuling und frage mich, warum folgendes nicht geht bzw. wie ich es geschickt lösen kann:

Code: Alles auswählen

if str(raw_input('War dies die letzte Eingabe? (ja/nein)')) == 'ja':
   break
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

Beitragvon BlackVivi » Sonntag 16. September 2007, 15:37

Warum funktioniert dies nicht?... Post' mal den gesamten Quelltext.

Code: Alles auswählen

if str(raw_input('War dies die letzte Eingabe? (ja/nein)')) == 'ja':
    print "test"


Funktioniert beispielsweise super...
CrackPod
User
Beiträge: 205
Registriert: Freitag 30. Juni 2006, 12:56

Beitragvon CrackPod » Sonntag 16. September 2007, 15:38

Hallo,

wieso sollte es nicht funktionieren?
Ansonsten: str(raw_input()) is doppelt gemoppelt. raw_input() liefert standardmäßig Strings zurück.

LG Tobsl
Benutzeravatar
Agroschim
User
Beiträge: 28
Registriert: Sonntag 16. September 2007, 15:19

Beitragvon Agroschim » Sonntag 16. September 2007, 15:45

Das ist der ganze Code (das Programm poste ich lieber nicht :D )

Code: Alles auswählen

while True:
   s.append([raw_input('x-Wert Pos.'),raw_input('y-Wert Pos.')])
   v.append([raw_input('x-Wert Geschw.'),raw_input('y-Wert Geschw.')])
   m.append(raw_input('Masse:')
   if raw_input('War dies die letzte Eingabe? (ja/nein)') == 'ja':
      break
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

Beitragvon BlackVivi » Sonntag 16. September 2007, 15:58

Öhm, und was geht nicht?...

Code: Alles auswählen

while True:
    if raw_input('War dies die letzte Eingabe? (ja/nein)') == 'ja':
        break


Schließt die Endlosschleife erfolgreich, bei der eingabe von "ja"...

(Außerdem sieht's ein bissel komisch aus mit den ganzen raw_inputs, könntest das vllt übersichtlicher lösen indem du eins nach dem anderen machst...)

Achja, ich seh grad... du hast bei

Code: Alles auswählen

m.append(raw_input('Masse:')


die schließende Klammer vergessen.

Code: Alles auswählen

while True:
    s.append([raw_input('x-Wert Pos.'),raw_input('y-Wert Pos.')])
    v.append([raw_input('x-Wert Geschw.'),raw_input('y-Wert Geschw.')])
    m.append(raw_input('Masse:'))
    if raw_input('War dies die letzte Eingabe? (ja/nein)') == 'ja':
        break


So is's richtig...
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

Beitragvon rayo » Sonntag 16. September 2007, 16:01

Hi

Könnte es sein dass bei gewissen Konsolen raw_input noch ein \n mitliefert?
Dann würde raw_input('letzte Eingabe').strip() == 'ja' das gewünschte ergeben. Vielleicht gleich noch .lower() damit man au Ja und JA schreiben kann.

Code: Alles auswählen

while True:
    if raw_input('War dies die letzte Eingabe? (ja/nein)').strip().lower() == 'ja':
        break


Gruss
Benutzeravatar
Agroschim
User
Beiträge: 28
Registriert: Sonntag 16. September 2007, 15:19

Beitragvon Agroschim » Sonntag 16. September 2007, 16:09

Er liefert mir ja einen Syntax-Error, das verstehe ich nicht und zwar beim Doppelpunkt.

AHHH! Danke!
BlackJack

Beitragvon BlackJack » Sonntag 16. September 2007, 16:11

Sprechendere Bezeichner wären nicht schlecht. `s`, `v` und `m` sind ziemlich nichtssagend.

Ausserdem sieht der Quelltext so aus, als wenn die Objekte an den gleichen Indexen in den drei Listen jeweils zusammen gehören. Da sollte man die Informationen in der Regel auch zusammen in *einer* Liste speichern.
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

Beitragvon BlackVivi » Sonntag 16. September 2007, 16:12

Agroschim hat geschrieben:Er liefert mir ja einen Syntax-Error, das verstehe ich nicht und zwar beim Doppelpunkt.

AHHH! Danke!
Früher hat' mir geholfen bei einem Syntax Error alles auszukommentieren, was in Frage kommen könnte... So kann man es schonmal auf eine Reihe reduzieren. Und dann anschließend zu schauen, worand es liegen könnte, meistens sind's eckige oder runde Klammern.
Benutzeravatar
Agroschim
User
Beiträge: 28
Registriert: Sonntag 16. September 2007, 15:19

Beitragvon Agroschim » Sonntag 16. September 2007, 16:23

BlackJack hat geschrieben:Sprechendere Bezeichner wären nicht schlecht. `s`, `v` und `m` sind ziemlich nichtssagend.


s = Ort
v = Geschwindigkeit
m = Masse

Für Physiker mehr als bezeichnend ;)
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

Beitragvon BlackVivi » Sonntag 16. September 2007, 16:30

Agroschim hat geschrieben:
BlackJack hat geschrieben:Sprechendere Bezeichner wären nicht schlecht. `s`, `v` und `m` sind ziemlich nichtssagend.


s = Ort
v = Geschwindigkeit
m = Masse

Für Physiker mehr als bezeichnend ;)
Und für den Informatiker total kryptisch. Es ist nicht wichtig ob du es verstehst, die paar Minuten um

locat
spd
mass

dürften doch wohl drin sein, oder?
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Sonntag 16. September 2007, 16:35

BlackVivi hat geschrieben:locat
spd
mass

Local cat? Sozialdemokratische Partei Deutschlands? Gratuliere, kryptische Bezeichner durch noch kryptischere ersetzt, mit denen jetzt auch Physiker nichts mehr anfangen können.

Nein, wenn schon dann ``location`` und ``speed`` (oder ``velocity``) oder im Physiker-Slang bleiben ;)
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
Agroschim
User
Beiträge: 28
Registriert: Sonntag 16. September 2007, 15:19

Beitragvon Agroschim » Sonntag 16. September 2007, 16:36

An anderer Stelle ist es kommentiert...
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Sonntag 16. September 2007, 16:40

Agroschim hat geschrieben:An anderer Stelle ist es kommentiert...

Letztens wurde auch wieder darüber diskutiert. Aber wenn die Variablennamen selbsterklärend und daher selbstdokumentierend sind, warum dann darauf verzichten. So muss man nachschlagen was die Variablen sollen.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

Beitragvon BlackVivi » Sonntag 16. September 2007, 16:40

Leonidas hat geschrieben:
BlackVivi hat geschrieben:locat
spd
mass

Local cat? Sozialdemokratische Partei Deutschlands? Gratuliere, kryptische Bezeichner durch noch kryptischere ersetzt, mit denen jetzt auch Physiker nichts mehr anfangen können.

Nein, wenn schon dann ``location`` und ``speed`` (oder ``velocity``) oder im Physiker-Slang bleiben ;)
War auch nur'n Beispiel ._. Bei locat hab ich ja selbst ein biss'l geschmunzelt, aber spd find ich gar nicht so kryptisch. ._.

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]