首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python检查字符串的第一个和最后一个字符

Python检查字符串的第一个和最后一个字符
EN

Stack Overflow用户
提问于 2013-11-13 21:05:20
回答 3查看 269.1K关注 0票数 77

谁能解释一下这段代码出了什么问题?

代码语言:javascript
复制
str1='"xxx"'
print str1
if str1[:1].startswith('"'):
    if str1[:-1].endswith('"'):
        print "hi"
    else:
        print "condition fails"
else:
    print "bye"   

我得到的输出是:

代码语言:javascript
复制
Condition fails

但我希望它打印的是hi

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-13 21:06:27

当您说[:-1]时,您正在剥离最后一个元素。您可以将startswithendswith应用于string对象本身,而不是分割字符串,如下所示

代码语言:javascript
复制
if str1.startswith('"') and str1.endswith('"'):

所以整个程序是这样的

代码语言:javascript
复制
>>> str1 = '"xxx"'
>>> if str1.startswith('"') and str1.endswith('"'):
...     print "hi"
>>> else:
...     print "condition fails"
...
hi

更简单的是,使用条件表达式,如下所示

代码语言:javascript
复制
>>> print("hi" if str1.startswith('"') and str1.endswith('"') else "fails")
hi
票数 117
EN

Stack Overflow用户

发布于 2013-11-13 21:08:57

您应该使用

代码语言:javascript
复制
if str1[0] == '"' and str1[-1] == '"'

代码语言:javascript
复制
if str1.startswith('"') and str1.endswith('"')

但不要把开始和检查与/ and放在一起,否则你会切掉你要找的东西……

票数 33
EN

Stack Overflow用户

发布于 2013-11-13 21:08:07

当你设置一个字符串变量时,它不会保存引号,它们是它定义的一部分。所以你不需要使用:1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19954593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档