If-Anweisung für Strings in Python? [Duplikat]

8

Ich bin ein totaler Anfänger und habe mir Ссылка angesehen, aber ich kann das Problem hier nicht verstehen. Es ist ziemlich einfach, wenn der Benutzer y eingibt, sollte es drucken, das wird die Berechnung tun, obwohl ich einen Syntaxfehler auf IF antwort == "y"

bekomme %Vor%     
user829084 20.07.2011, 13:44
quelle

6 Antworten

36

Auch wenn Sie den fehlerhaften if und den falschen Einzug in Ihrem Code korrigiert haben, funktioniert er nicht wie erwartet. Verwenden Sie in , um eine Zeichenkette anhand einer Gruppe von Zeichenketten zu prüfen. Hier ist, wie Sie es tun würden (und beachten Sie, dass if ist alles Kleinbuchstaben und dass der Code innerhalb der if -Block eingerückt ist eine Ebene).

Ein Ansatz:

%Vor%

Ein anderer:

%Vor%     
Daniel DiPaolo 20.07.2011 13:46
quelle
7

If sollte if sein. Ihr Programm sollte so aussehen:

%Vor%

Beachten Sie auch, dass der Einzug wichtig ist, da er in Python einen Block markiert.

    
Björn Pollex 20.07.2011 13:47
quelle
6

Python ist eine von Groß- und Kleinschreibung abhängige Sprache. Alle Python-Schlüsselwörter sind Kleinbuchstaben. Verwenden Sie if , nicht If .

Geben Sie nach dem Aufruf von print() auch keinen Doppelpunkt ein. Richten Sie auch die Aufrufe print() und exit() ein, da Python für die Darstellung von Codeblöcken Einrückungen anstelle von Klammern verwendet.

Und auch, proceed = "y" or "Y" wird nicht tun, was Sie wollen. Verwenden Sie proceed = "y" und if answer.lower() == proceed: oder etwas ähnliches.

Es gibt auch die Tatsache, dass Ihr Programm beendet wird, solange der Eingabewert nicht das einzelne Zeichen "y" oder "Y" ist, was der Aufforderung von "N" für den alternativen Fall widerspricht. Statt Ihrer else -Klausel verwenden Sie vorher elif answer.lower() == info_incorrect: , mit info_incorrect = "n" . Dann wiederholen Sie einfach die Antwort oder etwas, wenn der Eingabewert etwas anderes ist.

Ich würde empfehlen, das Tutorial in der Python-Dokumentation zu lesen, wenn Sie so viel Ärger haben, wie Sie jetzt lernen. Ссылка

    
JAB 20.07.2011 13:46
quelle
5

Sie wollen:

%Vor%

Oder

%Vor%

Hinweis:

  1. Es ist "wenn", nicht "wenn". Python unterscheidet zwischen Groß- und Kleinschreibung.
  2. Einrückung ist wichtig.
  3. Am Ende der Python-Befehle gibt es keinen Doppelpunkt oder Semikolon.
  4. Sie möchten raw_input nicht Eingabe ; input entzieht die Eingabe.
  5. "oder" gibt Ihnen das erste Ergebnis, wenn es wahr ist, und das zweite Ergebnis andernfalls. So wird "a" or "b" zu "a" ausgewertet, während 0 or "b" zu "b" ausgewertet wird. Siehe Die eigentümliche Natur von und und oder .
MGwynne 20.07.2011 13:48
quelle
2
%Vor%

Auch wollen Sie nicht

%Vor%

Sie möchten

%Vor%

input() bewertet, was als Python-Ausdruck eingegeben wurde, raw_input() gibt eine Zeichenfolge zurück.

Bearbeiten: Das gilt nur für Python 2. In Python 3 ist input in Ordnung, obwohl str() wrapping immer noch redundant ist.

    
agf 20.07.2011 13:46
quelle
-1

Python unterscheidet zwischen Groß- und Kleinschreibung und benötigt eine korrekte Einrückung. Sie müssen Kleinbuchstaben "if" verwenden, Ihre Bedingungen richtig einrücken und der Code hat einen Fehler. proceed wird als y

ausgewertet     
viraptor 20.07.2011 13:48
quelle