python(3): strings的表示
时间:2007-03-30 来源:marlboro027
string在python中是一个专门的类型,而不像c中,只是一种char数组。因此有一大堆专门用于string操作的函数。string在 python是属于“序列”这一大类,“序列”中还有list和tuple,它们都有类似的操作。string是不可变的,也就是你可以用:S[0]的形 式把S中的第一个字符提取出来,但不能用S[0]="c"这种方式把S中的第一个字符改为"c"。而list就可以。c中的字符数组也可以。内置函数 str(object)可以把任何类型的对象用字符串表示出来。当然表示成什么样子,需要对象内部自己定义。
介绍string也分为两个方面,一是string的表示,二是string的操作。string的表示方法是比较多,这好像不符合python设计的初衷────尽量消除确定性。
三引号的形式用来输入多行文本,也就是说在三引号之间输入的内容将被原样保留,之中的单号和双引号不用转义,其中的不可见字符比如\n和\t都会被保留。
比 如创建一个只有一个数字1的文本文件,那么实际保存到电脑的时候保存的是什么呢?是49,而不是想当然的1。这就是一般电脑上用的ASCII编码。在 ASCII编码中,每一个字符都用一个字节来表示,也就是说这种编码最多可以表示127个字符。在这127个字符中,有一些是不可见的,比如 “return”“tab”“backspace”,还有一些是不能直接从键盘中输入的,比如“bell”。这时候就要用到转义字符,所谓的转义字符,只 是规定的一些特殊的符号来代表一些不可见的字符或不能直接输入的字符。转义的字符的形式一般是一个‘\‘再加上一个或多个字符。比如:
在ACSII中一个字符是用一个字节来表示的,这种编码在表示英文的时候一点问题都 没有,英文只有26个字母,外加标点符号也不会超过127个。但对于中文或日文、韩文这就问题大了。因为仅中文就有下上万个汉字,因此不能用ASCII 了,python提供的解决方案是unicode,这也是windows的解决方案。在unicode中,一个字符用4个字节来表示(原来的 unicode用两个字节),因此为了表示unicode字符串,需要在字符串前加上u。有了两种编码,就涉及到相互之间转换的问题。
两个字节: \uafff
四个字节: \Uafffffff
介绍string也分为两个方面,一是string的表示,二是string的操作。string的表示方法是比较多,这好像不符合python设计的初衷────尽量消除确定性。
- 单引号:‘aasd’
- 双引号:”aadf“
- 三引号:‘’‘kasdjfk''' """kajsdkf"""
- 含转义字符:’study/thard'
- raw字符串:r‘C:\windows\boot.ini’
- unicode字符串:u'kajsdkf'
三引号的形式用来输入多行文本,也就是说在三引号之间输入的内容将被原样保留,之中的单号和双引号不用转义,其中的不可见字符比如\n和\t都会被保留。
比 如创建一个只有一个数字1的文本文件,那么实际保存到电脑的时候保存的是什么呢?是49,而不是想当然的1。这就是一般电脑上用的ASCII编码。在 ASCII编码中,每一个字符都用一个字节来表示,也就是说这种编码最多可以表示127个字符。在这127个字符中,有一些是不可见的,比如 “return”“tab”“backspace”,还有一些是不能直接从键盘中输入的,比如“bell”。这时候就要用到转义字符,所谓的转义字符,只 是规定的一些特殊的符号来代表一些不可见的字符或不能直接输入的字符。转义的字符的形式一般是一个‘\‘再加上一个或多个字符。比如:
- bell \a
- tab \t
- newline \n
- vtab \v
- backspace \b
- NULL \0
- \ \\
- ' \'
- " \"
- 49 \061 #八进制
- 49 \0x31 #十六进制
在ACSII中一个字符是用一个字节来表示的,这种编码在表示英文的时候一点问题都 没有,英文只有26个字母,外加标点符号也不会超过127个。但对于中文或日文、韩文这就问题大了。因为仅中文就有下上万个汉字,因此不能用ASCII 了,python提供的解决方案是unicode,这也是windows的解决方案。在unicode中,一个字符用4个字节来表示(原来的 unicode用两个字节),因此为了表示unicode字符串,需要在字符串前加上u。有了两种编码,就涉及到相互之间转换的问题。
- 由unicode到ASCII: str()
- 由ASCII到unicode: unicode()
两个字节: \uafff
四个字节: \Uafffffff
相关阅读 更多 +