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下载Bing图片(代码)
Nov 07 Python
python使用reportlab实现图片转换成pdf的方法
May 22 Python
深入源码解析Python中的对象与类型
Dec 11 Python
pandas多级分组实现排序的方法
Apr 20 Python
对python For 循环的三种遍历方式解析
Feb 01 Python
Flask使用Pyecharts在单个页面展示多个图表的方法
Aug 05 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
Aug 31 Python
详解python中groupby函数通俗易懂
May 14 Python
tensorflow从ckpt和从.pb文件读取变量的值方式
May 26 Python
python小技巧——将变量保存在本地及读取
Nov 13 Python
python实现图片,视频人脸识别(dlib版)
Nov 18 Python
pytorch MSELoss计算平均的实现方法
May 12 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
PHP和XSS跨站攻击的防范
2007/04/17 PHP
php抽象方法和普通方法的区别点总结
2019/10/13 PHP
基于jquery 的一个progressbar widge
2010/10/29 Javascript
jQuery之日期选择器的深入解析
2013/06/19 Javascript
使用jquery菜单插件HoverTree仿京东无限级菜单
2014/12/18 Javascript
Javascript 完美运动框架(逐行分析代码,让你轻松了运动的原理)
2015/01/23 Javascript
javascript实现简单的进度条
2015/07/02 Javascript
解决webpack打包速度慢的解决办法汇总
2017/07/06 Javascript
详解Vue学习笔记进阶篇之列表过渡及其他
2017/07/17 Javascript
JavaScript输入分钟、秒倒计时技巧总结(附代码)
2017/08/17 Javascript
NodeJS 实现多语言的示例代码
2018/09/11 NodeJs
JS实现的杨辉三角【帕斯卡三角形】算法示例
2019/02/26 Javascript
vue-路由精讲 二级路由和三级路由的作用
2020/08/06 Javascript
在Heroku云平台上部署Python的Django框架的教程
2015/04/20 Python
Python中文竖排显示的方法
2015/07/28 Python
Python基础教程之内置函数locals()和globals()用法分析
2018/03/16 Python
对Python3中的print函数以及与python2的对比分析
2018/05/02 Python
对pycharm代码整体左移和右移缩进快捷键的介绍
2018/07/16 Python
Python不同目录间进行模块调用的实现方法
2019/01/29 Python
Django框架验证码用法实例分析
2019/05/10 Python
Python3.7 新特性之dataclass装饰器
2019/05/27 Python
将python安装信息加入注册表的示例
2019/11/20 Python
python线程定时器Timer实现原理解析
2019/11/30 Python
Python 中的pygame安装与配置教程详解
2020/02/10 Python
tensorflow从ckpt和从.pb文件读取变量的值方式
2020/05/26 Python
英国高档百货连锁店:John Lewis
2017/11/20 全球购物
英国比较机场停车场网站:Airport Parking Essentials
2019/12/01 全球购物
启动一个线程是用run()还是start()
2016/12/25 面试题
给民警的表扬信
2014/01/08 职场文书
检讨书1000字
2014/10/11 职场文书
一年级数学上册复习计划
2015/01/17 职场文书
2015年业务工作总结范文
2015/04/10 职场文书
继续教育心得体会(共6篇)
2016/01/19 职场文书
详解Java实践之抽象工厂模式
2021/06/18 Java/Android
vue中 this.$set的使用详解
2021/11/17 Vue.js
Pyhton爬虫知识之正则表达式详解
2022/04/01 Python