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中使用poplib模块收取邮件的教程
Apr 29 Python
Python中List.count()方法的使用教程
May 20 Python
Django框架中render_to_response()函数的使用方法
Jul 16 Python
Python新手入门最容易犯的错误总结
Apr 24 Python
Python 多进程和数据传递的理解
Oct 09 Python
Python 实现一行输入多个值的方法
Apr 21 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
Apr 03 Python
centos 安装Python3 及对应的pip教程详解
Jun 28 Python
django model通过字典更新数据实例
Apr 01 Python
10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例
Dec 16 Python
python实现不同数据库间数据同步功能
Feb 25 Python
tensorflow学习笔记之tfrecord文件的生成与读取
Mar 31 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远程连接MYSQL数据库非常慢的解决方法
2008/07/05 PHP
md5 16位二进制与32位字符串相互转换示例
2013/12/30 PHP
yii实现使用CUploadedFile上传文件的方法
2015/12/28 PHP
PHP5.3新特性小结
2016/02/14 PHP
extjs中grid中嵌入动态combobox的应用
2011/01/01 Javascript
纯js分页代码(简洁实用)
2013/11/05 Javascript
完美解决IE低版本不支持call与apply的问题
2013/12/05 Javascript
zepto.js中tap事件阻止冒泡的实现方法
2015/02/12 Javascript
JavaScript 匿名函数和闭包介绍
2015/04/13 Javascript
seajs加载jquery时提示$ is not a function该怎么解决
2015/10/23 Javascript
浅谈JavaScript 标准对象
2016/06/02 Javascript
使用JS轻松实现ionic调用键盘搜索功能(超实用)
2016/09/06 Javascript
JavaScript简单验证表单空值及邮箱格式的方法
2017/01/20 Javascript
工作中常用到的ES6语法
2018/09/04 Javascript
angular4强制刷新视图的方法
2018/10/09 Javascript
javascript实现考勤日历功能
2018/11/29 Javascript
基于Vue-Cli 打包自动生成/抽离相关配置文件的实现方法
2018/12/09 Javascript
微信小程序实现工作时间段选择
2019/02/15 Javascript
微信小程序全局变量GLOBALDATA的定义和调用过程解析
2019/09/23 Javascript
JS实现省市县三级下拉联动
2020/04/10 Javascript
一篇文章带你使用Typescript封装一个Vue组件(简单易懂)
2020/06/05 Javascript
[48:48]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Dream TIME
2014/05/21 DOTA
[04:23]DOTA2上海特锦赛小组赛第一日 TOP10精彩集锦
2016/02/27 DOTA
[03:55]DOTA2完美大师赛选手传记——LFY.MONET
2017/11/18 DOTA
写了个监控nginx进程的Python脚本
2012/05/10 Python
跟老齐学Python之使用Python查询更新数据库
2014/11/25 Python
Python中一些不为人知的基础技巧总结
2018/05/19 Python
在Python dataframe中出生日期转化为年龄的实现方法
2018/10/20 Python
PyCharm设置每行最大长度限制的方法
2019/01/16 Python
Pandas之Dropna滤除缺失数据的实现方法
2019/06/25 Python
Python3和pyqt5实现控件数据动态显示方式
2019/12/13 Python
Static Nested Class 和 Inner Class的不同
2013/11/28 面试题
教学改革实施方案
2014/03/31 职场文书
公司授权委托书范本
2014/04/03 职场文书
一封真诚的自荐信帮你赢得机会
2019/05/07 职场文书
Windows server 2022创建创建林、域树、子域的步骤
2022/06/25 Servers