博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python对字母字符(串)中大小写转换函数--upper() 和 lower()
阅读量:4286 次
发布时间:2019-05-27

本文共 1352 字,大约阅读时间需要 4 分钟。

转换大小写

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

=
 
'
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
你可能感兴趣的文章
C语言socket编程(十)a'c'cept()
查看>>
C语言socket编程(十一)CFNetworking框架/CFSocket////CFStream属于CoreFoundation
查看>>
java 基础IO/inputStream/outputStream/buffInputStrem/buffOutputStrem
查看>>
java 多线程一
查看>>
java基础/IO流/、序列化和反序列化、浅复制和深复制
查看>>
java基础/IO流(二)
查看>>
java/多线程二
查看>>
java/设计原则
查看>>
java/GUI 编程
查看>>
java/socket编程
查看>>
java/反射/JDK新特性
查看>>
java/AJAX
查看>>
java/AJAX/JSON/XML/JQUERY
查看>>
iOS加载控制器的三种方式/loadNibName与initwithNibName的区别
查看>>
java/tomcat /http协议
查看>>
java/severelet
查看>>
iOS编译问题的N种可能
查看>>
java/session/cookie/jsp(一)
查看>>
java/jsp/cookie/session/EL\context和request的生命周期(二)
查看>>
java/jsp/page/include/talib/javaBean、BeanUtils
查看>>