Seite 2 von 3

Re: Hilfe meine if statements funktionieren nicht

Verfasst: Freitag 25. April 2014, 17:39
von anogayales
Schau doch mal in deine Zeile 5 und in meine Zeile 1 und schau ob du da einen Unterschied erkennst. Kleiner Tipp: Ersetze meine Zeile mit deiner Zeile.

EDIT: Okay, da stand definitiv was Anderes als ich gepostet habe. Finde ich schon ein wenig dreist.

Re: Hilfe meine if statements funktionieren nicht

Verfasst: Freitag 25. April 2014, 17:46
von Littlejofel
EDIT: Anmerkung: In deinem Code stand

Code: Alles auswählen

Eingabe = '3'
Grüße,
anogayales[/quote]

ja für die Variable

Re: Hilfe meine if statements funktionieren nicht

Verfasst: Freitag 25. April 2014, 17:50
von Littlejofel
meinst du das so?

Code: Alles auswählen

print '1: Tastatur und Maus'
print '2: USB Stick'
print '3: Drucker'
Eingabe == '3'
f1 = raw_input('Welche der unten aufgelistteten Dinge sind Ausgabegeräte?')
if f1 == "3":
    print 'Genau'
else:
    print 'Leider Falsch'
wenn ich Eingabe == zum code hinzufüge steht in der shell ich soll Eingabe definieren. Was meinst du? :| was soll wo hin? :(

Edit:Hab den anderen code von der Seite hiervor angeguckt in deiner zeile: == in meiner: = aber was ändert das?

Re: Hilfe meine if statements funktionieren nicht

Verfasst: Freitag 25. April 2014, 18:13
von Littlejofel
Das hier geht (Aber nur mit Zahlen)

Code: Alles auswählen

print 'Schreibe 1  2  oder  3'
print 'Was ist ne Software?'
print '1  ein Programm'
print '2  Nutella auf tost'
print '3  Tastatur Maus ...'

a = int(input())

if a == 1:
    print 'Du hast recht'
else:
    print 'Falsch'
wie kann ich denn 1 2 und 3 durch A) B) oder C) auswechseln.Dann bräuchte ich ja einen anderen input befehl z.B raw_input aber damit hat es ja noch nicht funktioniert...

Re: Hilfe meine if statements funktionieren nicht

Verfasst: Freitag 25. April 2014, 18:15
von Hyperion
Littlejofel hat geschrieben: Edit:Hab den anderen code von der Seite hiervor angeguckt in deiner zeile: == in meiner: = aber was ändert das?
Ersters ist ein Vergleich, zweiteres eine Zuweisung! Das ist ein erheblicher Unterschied.

Wieso trennst Du nicht einfach mal von dem Programm und gibst in einer Shell einfach einzelne Anweisungen Schritt für Schritt an?

Gib doch einfach mal in einer Python-Shell (nimm am besten *nicht* Idle, sondern starte einfach nur die ganz normale Standard-Python-Shell!) folgendes ein:

Code: Alles auswählen

gesucht = "Ja"
eingegeben = "Ja"
gesucht == eingegeben
Und dann sag uns, was die Shell als Antwort hinschreibt!

Re: Hilfe meine if statements funktionieren nicht

Verfasst: Samstag 26. April 2014, 09:00
von Littlejofel
@Hyperion

Die Shell schreibt True nachdem ich alles eingegeben habe

und wenn ich z.B statt

Code: Alles auswählen

eingeben = '9'

Code: Alles auswählen

eingeben == '9'
mache

steht in der shell ich soll 'eingeben' definieren.

Re: Hilfe meine if statements funktionieren nicht

Verfasst: Samstag 26. April 2014, 12:30
von Hyperion
Also arbeitet Dein Python-Shell wie erwartet richtg ;-)

Nun probiere doch mal, was passiert, wenn Du für ``eingeben`` das "Ja" in Hockommata setzt, also so:

Code: Alles auswählen

eingeben = "'ja'"
(Beachte die kleinen ' um das "Ja"!)

Was denkst Du, sollte dabei rauskommen?

Re: Hilfe meine if statements funktionieren nicht

Verfasst: Sonntag 27. April 2014, 09:41
von Littlejofel
Hyperion hat geschrieben:Was denkst Du, sollte dabei rauskommen?
nun ich würde mal sagen ich muss 'ja' eingeben , doch das klappt nicht. Hier ist der Code nur etwas abgespeckt:

Code: Alles auswählen

beginn = raw_input('willst du anfangen?')
eingeben = "'ja'"

if beginn == eingeben:
    print 'Funktioniert'
else:
    print 'Funktioniert nicht'
so sah das dann in der shell aus : willst du anfangen? 'ja'
Funktioniert nicht

Re: Hilfe meine if statements funktionieren nicht

Verfasst: Sonntag 27. April 2014, 10:15
von pillmuncher
Bei mir funktioniert dein Code:

Code: Alles auswählen

>>> beginn = raw_input('willst du anfangen?')
willst du anfangen?'ja'
>>> eingeben = "'ja'"
>>> if beginn == eingeben:
...     print 'Funktioniert'
... else:
...     print 'Funktioniert nicht'
...
Funktioniert
Aber vergleich mal:

Code: Alles auswählen

willst du anfangen? 'ja'  # <-- deins
willst du anfangen?'ja'  # <-- meins
" 'ja'" ist offensichtlich nicht das gleiche wie "'ja'".

Re: Hilfe meine if statements funktionieren nicht

Verfasst: Sonntag 27. April 2014, 10:16
von Hyperion
Die simple Anwtort wäre ``False`` gewesen! ;-)

Code: Alles auswählen

gesucht == eingegeben
Dies *vergleicht* ja eben den von den beiden Objekten die den Operator (``==``) umschließen. Zwei Strings sind eben nur gleich, wenn jeder einzelne Buchstabe an jeder einzelnen Stelle exakt dem an der selben Stelle im anderen String entspricht!

Ja ist also ungleich 'Ja'!

Und genau das solltest Du lernen, denn das ist Dir bei Deinem Ursprungsproblem auf die Füße gefallen! :mrgreen:

Irgend wie habe ich allerdings das Gefühl, dass Du das immer noch nicht wirklich verstanden hast :(

Re: Hilfe meine if statements funktionieren nicht

Verfasst: Sonntag 27. April 2014, 15:50
von Littlejofel
Hyperion hat geschrieben:Irgend wie habe ich allerdings das Gefühl, dass Du das immer noch nicht wirklich verstanden hast :(
Du hast recht xD damit kann ich nicht viel anfangen...

sagen wir einfach ich muss statt :willst du anfangen? 'ja'
willst du anfangen?'ja' schreiben :D

trotzdem vielen dank für die hilfe ^^

Re: Hilfe meine if statements funktionieren nicht

Verfasst: Sonntag 27. April 2014, 16:49
von Sirius3
@Littlejofel: Dein Problem zeigt aber auf schöne Weise, in welche Probleme man kommt, wenn man vom Benutzer Eingaben in natürlicher Sprache verlangt, auch wenn es sich nur um ein »ja« handelt: Groß/Kleinschreibung, Leerzeichen, Satzzeichen, usw.

Das Beispiel mit den Anführungszeichen sollte Dir nur nochmal verdeutlichen, dass man Anführungszeichen im Programmcode braucht, um Strings zu kennzeichnen (denn die können ja Zeichen enthalten, die eine besondere Bedeutung für die Programmiersprache haben). Der Inhalt des Strings, der mit der Eingabe dann verglichen wird, enthält aber nicht die Anführungszeichen.