Python 可爱的大小写


Posted in Python onSeptember 06, 2008

函数较简单,看下面的例子:

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
Python 相关文章推荐
Python中的if、else、elif语句用法简明讲解
Mar 11 Python
利用Python爬虫给孩子起个好名字
Feb 14 Python
R语言 vs Python对比:数据分析哪家强?
Nov 17 Python
python 中文件输入输出及os模块对文件系统的操作方法
Aug 27 Python
对python pandas读取剪贴板内容的方法详解
Jan 24 Python
Python实现去除列表中重复元素的方法总结【7种方法】
Feb 16 Python
python将类似json的数据存储到MySQL中的实例
Jul 12 Python
Django Python 获取请求头信息Content-Range的方法
Aug 06 Python
Django 后台获取文件列表 InMemoryUploadedFile的例子
Aug 07 Python
python使用协程实现并发操作的方法详解
Dec 27 Python
python日志通过不同的等级打印不同的颜色(示例代码)
Jan 13 Python
利用Python读取微信朋友圈的多种方法总结
Aug 23 Python
Python 除法小技巧
Sep 06 #Python
Python translator使用实例
Sep 06 #Python
Python 字符串中的字符倒转
Sep 06 #Python
Python  连接字符串(join %)
Sep 06 #Python
Python strip lstrip rstrip使用方法
Sep 06 #Python
Python ljust rjust center输出
Sep 06 #Python
Python isinstance判断对象类型
Sep 06 #Python
You might like
收音机的保养
2021/03/01 无线电
ie与session丢失(新窗口cookie丢失)实测及解决方案
2013/07/15 PHP
记录一次排查PHP脚本执行卡住的问题
2016/12/27 PHP
PHP正则表达式匹配替换与分割功能实例浅析
2017/02/04 PHP
PHP实现图的邻接矩阵表示及几种简单遍历算法分析
2017/11/24 PHP
jquery实现文本框鼠标右击无效以及不能输入的代码
2010/11/05 Javascript
Knockoutjs快速入门(经典)
2012/12/24 Javascript
javascript四舍五入函数代码分享(保留后几位)
2013/12/10 Javascript
js实现俄罗斯方块小游戏分享
2014/01/31 Javascript
AngularJS的一些基本样式初窥
2015/07/27 Javascript
微信小程序 实战小程序实例
2016/10/08 Javascript
Node.js的环境安装配置(使用nvm方式)
2016/10/11 Javascript
Angular 1.x个人使用的经验小结
2017/07/19 Javascript
通过vue写一个瀑布流插件代码实例
2019/09/07 Javascript
基于vue-cli3创建libs库的实现方法
2019/12/04 Javascript
浅谈Vue3.0新版API之composition-api入坑指南
2020/04/30 Javascript
Vue 中使用lodash对事件进行防抖和节流操作
2020/07/26 Javascript
Vue父子组件传值的一些坑
2020/09/16 Javascript
详解python单元测试框架unittest
2018/07/02 Python
Python读取excel指定列生成指定sql脚本的方法
2018/11/28 Python
在pycharm中配置Anaconda以及pip源配置详解
2019/09/09 Python
Python imread、newaxis用法详解
2019/11/04 Python
Python编程快速上手——Excel到CSV的转换程序案例分析
2020/02/28 Python
python 中 .py文件 转 .pyd文件的操作
2021/03/04 Python
用html5实现语音搜索框的方法
2014/03/18 HTML / CSS
荷兰和比利时时尚鞋店:Van Dalen
2018/04/23 全球购物
BookOutlet加拿大:在网上书店购买廉价折扣图书和小说
2018/10/05 全球购物
乌克兰在线药房:Аптека24
2019/10/30 全球购物
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
2014/09/09 面试题
优秀士兵个人事迹材料
2014/01/19 职场文书
优秀交警事迹材料
2014/01/26 职场文书
人事经理岗位职责范本
2014/08/04 职场文书
工程承包协议书范本
2014/09/29 职场文书
2015社区六五普法工作总结
2015/04/21 职场文书
2016年小学推普宣传周活动总结
2016/04/06 职场文书
评测 | 大屏显示带收音机的高端音箱,JBL TUNE2便携式插卡音箱实测
2021/04/24 无线电