《Python Cookbook(第2版)中文版》——1.12 控制大小写

简介:

本节书摘来自异步社区《Python Cookbook(第2版)中文版》一书中的第1章,第1.12节,作者[美]Alex Martelli , Anna Martelli Ravenscrof , David Ascher ,高铁军 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.12 控制大小写

任务

将一个字符串由大写转成小写,或者反其道而行之。

解决方案

这正是字符串对象提供upper和lower方法的原因。每个方法都不需要参数,直接返回一个字符串的拷贝,其中的每个字母都被改变成大写形式—或小写形式:

big = little.upper( )
little = big.lower( )

非字母的字符按照原样被复制。

s.capitalize和s[:1].upper()+s[1:].lower()相似:第一个字符被改成大写,其余字符被转成小写。s.title也很相似,不过它将每个单词的第一个字母大写(这里的单词可以是字母的序列),其余部分则转成小写:

>>> print 'one tWo thrEe'.capitalize( )
One two three
>>> print 'one tWo thrEe'.title( )
One Two Three

讨论

操作字符串大小写是很常见的需求,有很多方法可以让你创建需要的字符串。另外,还可以检查一个字符串是否已经是满足需求的形式,比如isupper、islower和istitle方法,如果给定的字符串不是空的,至少含有一个字母,而且分别满足全部大写、全部小写、每个单词开头大写的条件,这三种方法都会返回一个True,但是却没有类似的iscapitalized方法。不过如果我们需要一个行为方式类似于“is…”的方法,自己编写代码也很简单。如果给定的字符串是空的,那些方法都会返回False。如果给定的字符串非空,但是却不包含任何字母字符,也将全部返回False。

最清楚简单的iscapitalized,仅需简洁的一行:

def iscapitalized(s):
      return s == s.capitalize( )

不过,这偏离了“is…”方法们的行为模式,对于空字符串和不含字母的字符串,它也返回True。我们再给出一个严格点的版本:

import string
notrans = string.maketrans('', '') #identity''translation''
def containsAny(str, strset):
     return len(strset) != len(strset.translate(notrans, str))
def iscapitalized(s):
     return s == s.capitalize( ) and containsAny(s, string.letters)

这里,我们用了第1.8节中的函数来确保,当遇到了空字符串或不含字母的字符串,返回值是False。不过也正如第1.8节的提示一样,那意味着这个特别的iscapitalized只适用于普通字符串,对Unicode字符串不适用。

相关文章
|
4月前
|
Python
Pycharm 如何更改成中文版| Python循环语句| for 和 else 的搭配使用
Pycharm 如何更改成中文版| Python循环语句| for 和 else 的搭配使用
22 0
|
数据采集 存储 算法
python处理smap level2c 数据---根据 iqc_flag进行数据质量控制(二进制&十进制)
最近在处理SMAP_level2c_sss数据时,再进行偏差估计时发现数据存在问题,根据卫星图像对比,发现在数据筛选之前未进行质量控制,因此有较大的问题。再次,进行一定的总结:
python处理smap level2c 数据---根据 iqc_flag进行数据质量控制(二进制&十进制)
|
Python
好教程推荐系列:力扣《Python Cookbook 3rd Edition》和《LeetCode Cookbook》
好教程推荐系列:力扣《Python Cookbook 3rd Edition》和《LeetCode Cookbook》
671 0
python:字符串大小写的转换
在日常练题,写程序中,经常用到的字符串转换方法,总结如下
Python 条件控制 — if语句
生活中的判断几乎是无所不在的,我们每天都在做各种各样的选择,如果这样?如果那样?……
|
存储 Python
【Python】if 条件控制专题
文章目录 一 条件测试 1.检查是否相等 2.检查是否相等时不考虑大小写 3.检查是否不相等 4.比较数字 5.检查多个条件 1.使用and检查多个文件 2.使用or检查多个文件 6.检查特定值是否包含在列表中 7.检查特定值是否不包含在列表中 二 if语句 1.if - else 语句 2.if - elif - else结构 3.测试多个条件 三 使用if语句处理列表 1.检查特殊元素 2.确定列表不是空的 3.使用多个列表
|
Web App开发 测试技术
Selenium+python之隐藏浏览器的“Chrome正在受到自动软件的控制“提示语
Selenium+python之隐藏浏览器的“Chrome正在受到自动软件的控制“提示语
317 0
|
存储 Python
Python基础 文本控制 文件编码格式 使用python读写文件 常用的文件打开方式
Python基础 文本控制 文件编码格式 使用python读写文件 常用的文件打开方式,文件对象的常用方法,文件读写的原理,读取磁盘文件中的内容
Python基础 文本控制 文件编码格式 使用python读写文件 常用的文件打开方式
|
JavaScript Python
简单WiFi控制小车系统(树莓派+python+web控制界面)
好丑😂 对不对 ,不过反正可以蛇皮走位就行。 蛇皮走位演示视频: 只需要 一个 index.html 和Index.py 就可以实现 简单WiFi 控制小车。 你需要准备的有
288 1
简单WiFi控制小车系统(树莓派+python+web控制界面)