文档状态:编辑中....
...
暂无评论
分好几种,因为存在编码问题鉴于使用%d%s%u等等标识占位符类型实在是太...,比如又一次我就判断类型出错,不如使用字符串模板,Template也确保了string包的地位.
#from string import Template >>> from string import Template >>> s = Template('hello ${name}, i am a ${sex}') >>> me ='lyc' >>> mysex='male' >>> s.substitute(name=me,sex=mysex) 'hello lyc, i am a male' //caution: >>> s.safe_substitute(sex=mysex) 'hello ${name}, i am a male'
关于字符串操作的函数
[1]. cmp[函数][1]. enumrate()for i in enumerate([1,2,3,4])python3.x好像添加了惰性求值[函数][2]. len[函数][3]. max/min[函数][4]. zip[函数][5]. sorted()/reserved()适用于可变对象序列类型[函数][6]. sum对int类值有效[函数][7]. list/tuple[算符][8]. in/not/in[成员关系][算符][9]. 切片操作[算符][A]. 连接操作符+[算符][B]. 重复操作符*#zip use >>> a,b='helloa','iamb' >>> a 'helloa' >>> b 'iamb' >>> zip(a,b) [('h', 'i'), ('e', 'a'), ('l', 'm'), ('l', 'b')] >>>
print (chr(65))-->Aord
字符串内建函数
string.isdigit()string.islower()string.stripstring.leftstripetcPython 已经可以应付大部分应用对 Unicode 的存储、访问、操作的需要了
其次着重说一下python中对字符串的处理
操作系统编码
输入法
可视化应用程序[terminal]
内存
python的repr()有所改变,自动的对''
python 2.x默认以ascii对字符串进行解码
栈队列我准备从寄存器,堆栈和堆角度来谈一下关于深浅拷贝的问题
很多人诧异于区别与c语言python的类型自由,关于类型自动转换我目前没有了解太多,所以仅仅谈一谈在自己角度上的抽象性理解
首先说a=1,这里面涉及三个"物理"器件,其中a是地址存放在寄存器,他并不是单纯的指向内存中1的地址,他的目标指向堆栈,而在当前的堆栈中存放的并不是数字1的编码数据,而是1在堆中的地址,也可以说是1的引用,以后会上一个图.
我们看一下存放在堆栈中1的引用(属于地址),这个存放在堆栈中的引用应该不仅仅是地址而且包括了一些类型信息,这些类型信息决定了你对其引用的内存对象的操作能力,所以对于1来说他是只读型数据,一旦你操作改变它的值他就会报错,不信你可以试试.所以对于b="string"这个b来说,他肯定不能进行pop,append,push等操作.但是c=[1,2,3,4]可以啊,因为c的类型信息是允许你这样做的.如上所见,我们看到两种东西,一种是指向内存对象的堆栈引用,另一种就是内存中的对象,注意只想对象的引用不一定存放在堆栈中,比如d=[[1,2,3,4],5,6,7],d[1]也是一个对象引用,但是他存放在了内存里面.
所以浅拷贝就是单纯的拷贝堆栈中的数据
所以深拷贝就是拷贝所有的引用(地址),无论你是放在了堆栈还是内存中!
说明一下:以上的内存是除堆栈以外的存储器区域.
tuple=tuple[0],tuple[1],tuple[-1]