谁能解释这个代码有什么问题吗?

str1='"xxx"'
print str1
if str1[:1].startswith('"'):
    if str1[:-1].endswith('"'):
        print "hi"
    else:
        print "condition fails"
else:
    print "bye"

我得到的输出是:

Condition fails

但我希望它改为打印hi

最佳答案

当您说[:-1]时,您正在剥离最后一个元素。无需切片字符串,您可以像这样在字符串对象本身上应用startswithendswith

if str1.startswith('"') and str1.endswith('"'):

所以整个程序变成这样
>>> str1 = '"xxx"'
>>> if str1.startswith('"') and str1.endswith('"'):
...     print "hi"
>>> else:
...     print "condition fails"
...
hi

像条件表达式这样更简单
>>> print("hi" if str1.startswith('"') and str1.endswith('"') else "fails")
hi

关于python - Python检查字符串的第一个和最后一个字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19954593/

10-12 06:28