2016-08-01 16 views
2
def palindrome(s): 
    s=input ("Enter a phrase (**use quotation marks for words**): ") 
    s.lower() 
    return s[::-1]==s 

palindrome(s) 

Dies ist mein Code. Wie ändere ich es, damit ich den fettgedruckten Abschnitt herausnehmen kann? Ich benutze Python 2 und akzeptiert keine String-Eingaben ohne die Anführungszeichen.Wie integriere ich Anführungszeichen in eine Benutzereingabe? Ich möchte, dass sie eine Zeichenfolge eingeben, aber es ist akward zu sagen, in Anführungszeichen gesetzt

+2

Mögliche Duplikat [Python - Verwenden von Anführungszeichen in Anführungszeichen] (http://stackoverflow.com/questions/9050355/python-using-quotation-marks-inside-quotation-marks) –

+2

Sind Sie sicher, willst du 'input()' benutzen? Verwenden Sie stattdessen 'raw_input()'. – cdarke

Antwort

1

Verwenden Sie raw_input anstelle von input. In Python 2 input versucht, die Eingabe des Benutzers zu bewerten, so Buchstaben werden als Variablen ausgewertet.

1

Ein raw_input wird die Arbeit erledigen. This question über Unterschiede in Python 2 und 3 möglicherweise helfen Ihnen.

Außerdem denke ich, der Parameter s ist nicht notwendig. Und allein ändert nicht den Wert von s.

def palindrome(): 
    s = raw_input("Enter a phrase : ") 
    s = s.lower() 
    return s[::-1] == s 

palindrome() 
+0

Eine andere Sache, so dass die raw_input es wie eine Zeichenfolge betrachtet? Und ich benutzte auch den unteren, denn wenn ich versuchte "Eat Tae" zu spielen, würde es sagen, dass es kein Palindrom war. Wie löse ich das? – jk23541

+0

Ja, im Gegensatz zu 'input 'versucht' raw_input' in Python 2 nicht, was Sie schreiben, und nimmt es als String. Sie brauchen also keine Anführungszeichen und es funktioniert. Für 'lower' gibt 's.lower() 'nur einen String zurück, der' s 'mit allen Kleinbuchstaben entspricht. Aber es wird nicht automatisch in 's' gespeichert. Dazu musst du 's = s.lower()' machen – BusyAnt