谁能解释一下这段代码出了什么问题?
str1='"xxx"'
print str1
if str1[:1].startswith('"'):
if str1[:-1].endswith('"'):
print "hi"
else:
print "condition fails"
else:
print "bye"
我得到的输出是:
Condition fails
但我希望它打印的是hi
。
发布于 2013-11-13 21:06:27
当您说[:-1]
时,您正在剥离最后一个元素。您可以将startswith
和endswith
应用于string对象本身,而不是分割字符串,如下所示
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
发布于 2013-11-13 21:08:57
您应该使用
if str1[0] == '"' and str1[-1] == '"'
或
if str1.startswith('"') and str1.endswith('"')
但不要把开始和检查与/ and放在一起,否则你会切掉你要找的东西……
发布于 2013-11-13 21:08:07
当你设置一个字符串变量时,它不会保存引号,它们是它定义的一部分。所以你不需要使用:1
https://stackoverflow.com/questions/19954593
复制相似问题