Kann jemand bitte erklären, was mit diesem Code falsch ist?
str1='"xxx"'
print str1
if str1[:1].startswith('"'):
if str1[:-1].endswith('"'):
print "hi"
else:
print "condition fails"
else:
print "bye"
Die Ausgabe, die ich bekam, ist:
Condition fails
aber ich habe erwartet, dass es hi
stattdessen gedruckt wird.
python
string
python-2.7
Chuvi
quelle
quelle
Sie testen gegen die Zeichenfolge abzüglich des letzten Zeichens :
>>> '"xxx"'[:-1] '"xxx'
Beachten Sie, dass das letzte Zeichen, das
"
, nicht Teil der Ausgabe des Slice ist.Ich denke, Sie wollten nur gegen den letzten Charakter testen. Verwenden Sie
[-1:]
diese Option, um nur das letzte Element zu schneiden.Es besteht jedoch keine Notwendigkeit, hier zu schneiden; einfach benutzen
str.startswith()
undstr.endswith()
direkt.quelle
Wenn Sie eine Zeichenfolgenvariable festlegen, werden keine Anführungszeichen gespeichert, sondern sie sind Teil ihrer Definition. Sie müssen also nicht Folgendes verwenden: 1
quelle