当前位置: 首页 > 图文教程 > 脚本技术 > Python > Python 可爱的大小写

Python
Python入门教程 超详细1小时学会Python
复制粘贴功能的Python程序
python远程登录代码
Python Mysql自动备份脚本
py中的目录与文件判别代码
python下如何让web元素的生成更简单的分析
Python 文件操作技巧(File operation) 实例代码分析
python备份文件的脚本
Python备份Mysql脚本
rhythmbox中文名乱码问题解决方法
Python交换变量
Python字符遍历的艺术
Python字符转换
Python isinstance判断对象类型
Python ljust rjust center输出
Python strip lstrip rstrip使用方法
Python 连接字符串(join %)
Python 字符串中的字符倒转
Python translator使用实例
Python 除法小技巧

Python 可爱的大小写


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 110 ::
收藏到网摘: n/a

和其他语言一样,Python为string对象提供了转换大小写的方法:upper() 和 lower()。还不止这些,Python还为我们提供了首字母大写,其余小写的capitalize()方法,以及所有单词首字母大写,其余小写的title()方法。 函数较简单,看下面的例子:
复制代码 代码如下:

s = 'hEllo pYthon'
print s.upper()
print s.lower()
print s.capitalize()
print s.title()

输出结果:
HELLO PYTHON
hello python
Hello python
Hello Python

判断大小写
Python提供了isupper(),islower(),istitle()方法用来判断字符串的大小写。注意的是:
1. 没有提供 iscapitalize()方法,下面我们会自己实现,至于为什么Python没有为我们实现,就不得而知了。
2. 如果对空字符串使用isupper(),islower(),istitle(),返回的结果都为False。
复制代码 代码如下:

print 'A'.isupper() #True
print 'A'.islower() #False
print 'Python Is So Good'.istitle() #True
#print 'Dont do that!'.iscapitalize() #错误,不存在iscapitalize()方法

实现iscapitalize
1. 如果我们只是简单比较原字符串与进行了capitallize()转换的字符串的话,如果我们传入的原字符串为空字符串的话,返回结果会为True,这不符合我们上面提到的第2点。
def iscapitalized(s):
return s == s.capitalize( )有人想到返回时加入条件,判断len(s)>0,其实这样是有问题的,因为当我们调用iscapitalize('123')时,返回的是True,不是我们预期的结果。
2. 因此,我们回忆起了之前的translate方法,去判断字符串是否包含任何英文字母。实现如下:
复制代码 代码如下:

import string
notrans = string.maketrans('', '')
def containsAny(str, strset):
return len(strset) != len(strset.translate(notrans, str))
def iscapitalized(s):
return s == s.capitalize( ) and containsAny(s, string.letters)
#return s == s.capitalize( ) and len(s) > 0 #如果s为数字组成的字符串,这个方法将行不通调用一下试试:
print iscapitalized('123')
print iscapitalized('')
print iscapitalized('Evergreen is zcr1985')

输出结果:
False
False
True