《Python CookBook2》 第一章 文本 - 控制大小写 && 访问子字符串

控制大小写



任务:

  将一个字符串由大写转成小写,或者泛起到而行之。

解决方案:

>>> a = ‘a‘.upper()
>>> a
‘A‘
>>> b = ‘b‘.lower()
>>> b
‘b‘
>>> print "I loVe pythOn".capitalize()
I love python
>>> print "I loVe pythOn".title()
I Love Python

访问子字符串



任务:

  获取字符串的某个部分。

解决方案:

  切片是个好方法,但是它一次只能取得一个字段:

afield = theline[3:6]

  如果还需要考虑字段的长度,struct.unpack可能更适合。例如:

>>> import struct
>>> baseformat = "5s 3x 8s 8s"
>>> theline = ‘qqqwwweeerrrtttyyyaaasssdddfff‘
>>> numremain = len(theline)- struct.calcsize(baseformat)
>>> format = "%s %ds" %(baseformat,numremain)
>>> len(theline)
30
>>> l,s1,s2,t = struct.unpack(format,theline)
>>> l
‘qqqww‘
>>> s1
‘errrttty‘
>>> s2
‘yyaaasss‘
>>> t
‘dddfff‘

注:

struct.calcsize用于计算格式字符串所对应的结果的长度,如:struct.calcsize(‘ii‘),返回8

Format C Type Python type Standard size Notes
x pad byte no value    
c char string of length 1 1  
b signed char integer 1 (3)
B unsignedchar integer 1 (3)
? _Bool bool 1 (1)
h short integer 2 (3)
H unsignedshort integer 2 (3)
i int integer 4 (3)
I unsignedint integer 4 (3)
l long integer 4 (3)
L unsignedlong integer 4 (3)
q long long integer 8 (2), (3)
Q unsignedlong long integer 8 (2), (3)
f float float 4 (4)
d double float 8 (4)
s char[] string    
p char[] string    
P void * integer   (5), (3)

struct.pack用于将Python的值根据格式符,转换为字符串(因为Python中没有字节 (Byte)类型,可以把这里的字符串理解为字节流,或字节数组)

struct.unpack做的工作刚好与struct.pack相反,用于将字节流转换成python数据类型。它的函数原型为:struct.unpack(fmt, string),该函数返回一个元组。

时间: 2024-10-10 09:06:36

《Python CookBook2》 第一章 文本 - 控制大小写 && 访问子字符串的相关文章

《Python CookBook2》 第一章 文本 - 改变多行文本字符串的缩进 && 扩展和压缩制表符(此节内容待定)

改变多行文本字符串的缩进 任务: 有个包含多行文本的字符串,需要创建该字符串的一个拷贝.并在每行行首添加或者删除一些空格,以保证每行的缩进都是指定数目的空格数. 解决方案: # -*- coding: UTF-8 -*- ''' Created on 2014年8月29日 path:E:\Se\core_python\[email protected]: Administrator function: 改变多行文本字符串的缩进 ''' def reindent(s,numSpaces): lea

《Python CookBook2》 第一章 文本 - 测试一个对象是否是类字符串 && 字符串对齐

测试一个对象是否是类字符串 任务 有时候需要测试一个对象,尤其是当你在写一个函数或者方法的时候,经常需要测试传入的参数是否是一个字符串. 解决方案 利用内建的isinstance 和basestring 来简单快速地查询某个对象是否是字符串或者是Unicode 对象方法,如下: 代码: >>> def isAString(aaa): return isinstance(aaa,basestring) 运行结果: >>> isAString('aaa') True 字符串

《Python CookBook2》 第一章 文本 - 每次处理一个字符 && 字符和字符值之间的转换

文本 - 总结: 什么是文本Python 中的string 类型是不可变类型.文本,一个字符的矩阵,每一个单独的文本快可以被缩进和组织起来. 基本的文本操作①解析数据并将数据放入程序内部的结构中:②将数据以某种方式转化为另一种相似的形式,数据本身发生了改变:③生成全新的数据 每次处理一个字符: 任务用每次处理一个字符的方式处理字符串. 解决方案可以创建一个列表,列表的子项是字符串的字符.代码如下: >>> thelist = list('thestring') >>>

《HeadFirst Python》第一章学习笔记

对于Python初学者来说,舍得强烈推荐从<HeadFirst Python>开始读起,这本书当真做到了深入浅出,HeadFirst系列,本身亦是品质的保证.这本书舍得已在<Python起步:写给零编程基础的童鞋>一文中提供了下载.为了方便大家的学习,舍得特意制作了Jupyter Notebook格式的笔记,文章末尾舍得提供了笔记的下载地址. 读<HeadFirst Python>的同时,最紧要的是及时做练习,你甚至可以在快速浏览过一章后,便拿起练习来做. 做练习的时候

Linux 第一章文本安装 red hat

享受生活  热爱挑战 明远分享 Linux 第一章文本安装 red hat 每章一段话 有些人似荷,只能远观:有些人似茶,可以细细品味:有些人似风,不必在意:有些人是树,值得依靠.人生就像是一场修行,修的就是一颗心.心顺,一切就会完美:心静,出境就会美好:心乐,人生就幸福了.多点踏实,少点浮躁,活得真实才能自在. 目标:   学会用文本方式安装red hat (建议先练习图形化安装,对比着学习文本安装) 理论部分: 一丶了解linux的系统内核 对于操作系统来说,内核就好像是人的"心脏"

第一章、主线程与子线程

第一章.主线程与子线程 但我们打开FBReader程序的一刻,代码会立即创建一个子线程.之后,主线程会负责在屏幕上显示一个进度条,而子线程则在后台开始读取epub文件. PS:进度条的样子如下图所示,不过由于加载速度很快,这进度条都是一闪而过的.这张图片是在单步调试的环境下截取的. 在这一章,我们将详细介绍,程序如何创建子线程,以及如何控制进度条的显示与消失. 本章涉及的核心类是UIUtil类. FBReader默认首先进入的FBReader类,这是在AndroidManifes.xml设定的.

python 学习第一章(python基础编程第二版)

第一章:基础知识 1.双斜线:实现整除的操作符 >>>1//2 0 就算是浮点数,双斜线也会执行整除 >>>1.0//2.0 0.0 2.幂(乘方)运算符:双星 >>>2**3 8 tip:可以用函数pow代替运算符,pow(2,3) 3.十六进制和八进制 十六进制:前面加0x,第一个是数字0 >>>0xAF 175 八进制:在3.0以上版本的python中加0o,首数字是0,第二个是字母o >>>0o10 8 4.

《Python CookBook2》 第一章 文本 - 过滤字符串中不属于指定集合的字符 &amp;&amp; 检查一个字符串是文本还是二进制

过滤字符串中不属于指定集合的字符 任务: 给定一个需要保留的字符串的集合,构建一个过滤函数,并可将其应用于任何字符串s,函数返回一个s的拷贝,该拷贝只包含指定字符集合中的元素. 解决方案: import string allchars = string.maketrans('','') #all chars table def makefilter(keep): delchars = allchars.translate(allchars,keep) def thefilter(s): retu

《Python CookBook2》 第一章 文本 - 检查字符串中是否包含某字符集合中的字符 &amp;&amp; 简化字符串的translate方法的使用

检查字符串中是否包含某字符集合中的字符  任务: 检查字符串中是否出现了某个字符集合中的字符 解决方案: 方案一: import itertools def containAny(seq,aset): for item in itertools.ifilter(aset.__contains__,seq): return True return False if __name__ == "__main__": l1 = list('python') l2 = set('x') prin