标签:编码 display 就会 view 输出 结束 相对 sci indexer
2.2节讲过,Python中有字符串类型。在Python中,字符串用‘或"括起,例如‘abc‘、"qwerty"等都是字符串。注意‘和"并不是字符串的内容。
ASCII(American Standard Code for Information Interchange)码
电脑可以存储数字,那字符怎么办?答案是可以给字符编码,这样只要存储数字,显示时转成字符就可以了。由于电脑是美国人发明的,因此电脑最初只有128个(不是很确定)字符被编码,叫做ASCII码,范围为0~127。例如字母A的ASCII码为65,字母d的ASCII码为100。
一个8位无符号整数的存储范围是0~255,因此存储ASCII字符只需要一个字节。
此外,还有扩展的ASCII编码,范围为0~255。前128个字符是一样的,后128个则是例如a、é这样的带有注音符号的字符。这里不详细介绍。
Unicode
因为世界上不仅有英语,还有其它语言,其它语言中又有更多的字符。因此ASCII码不能满足要求,需要一个新的字符集——Unicode。Unicode包含了世界上大多数语言的字符。例如中文的“我”字,Unicode码为25105,“文”字是25991。
一般字符需要2个字节进行存储,很偏僻的就需要4个字节。
字符串和字符串常量
根据字符的概念,字符串可以被重新定义成若干字符的组合。Python中的字符串类型为str,采用Unicode编码。因此里面可以使用Unicode字符(例如中文)。Python中没有单独的字符类型。
字符串常量就是指像"python"、‘globe‘这些不变的字符串,与变量相对。
转义字符/序列(escape character/sequence)
字符串里不仅能包含普通字符,还可以包含特殊字符。这些特殊字符就需要通过特殊方法表示出来,这种字符叫做转义字符。在Python中,转义字符以\开头。因为转义字符在代码中需要用两个字符表示,也叫做转义序列。
在字符串中,你可能想换行,这时就可以使用\n转义字符;你可能想要tab,这时你可以直接打tab或使用\t转义字符(推荐后者)。
例如:
>>> print(‘first line\nsecond line\nthird line‘) first line second line third line
与下面:
print(‘first line‘) print(‘second line‘) print(‘third line‘)
或下面:
>>> print(‘first line‘) first line >>> print(‘second line‘) second line >>> print(‘third line‘) third line
是相同的。
对于\t也是一样的:
>>> print(‘1\t2\t3\t4\tend‘) 1 2 3 4 end
还有一些容易造成歧义的字符,例如‘、"和\(‘和"会被以为成字符串的开始或结束,\会认为是转义符号),也需要使用转义序列\‘、\"和\\才能输出:
>>> print(‘You must use \\\‘, \\\" and \\\\ to display \‘, \" and \\.‘) You must use \‘, \" and \\ to display ‘, " and \.
当然,对于只含有‘的字符串,可以用"括起;对于只含有"的字符串,可以用‘括起。例如:
>>> print(‘"All right", he says.‘) "All right", he says. >>> print("I‘m OK.") I‘m OK.
至于既有‘又有"的字符串就只能用转义序列或者(下文即将讲到的)原始字符串了。
原始字符串(raw string)
Python支持原始字符串。这种字符串内的字符都是原始的,没有转义。转义字符串用r‘ ‘括起,例如:
>>> r‘this \n does not mean newline‘ ‘this \\n does not mean newline‘
不过注意,Python在不用print()显示字符串时,是会加上转义符号\的。
多行字符串
有时候,字符串里有很多换行符不够方便,这时可以使用多行字符串。多行字符串用‘‘‘ ‘‘‘或""" """(每边3个‘或3个")括起。例如:
>>> print(‘‘‘first line ... second line ... third line‘‘‘) first line second line third line
注意输入多行字符串时,在字符串结束之前,命令提示符也会变成...。
在多行字符串一行结尾加\可以防止换行:
>>> print(‘‘‘... first line ... second line ... third line... ‘‘‘)
first line
second line
third line
字符串操作
计算长度
使用len()函数计算字符串长度。例如:
>>> len(‘GoldenGlobalView‘) 16 >>> s = ‘internationalization‘ >>> len(s) 20 >>> len(‘Unicode字符串‘) 10
获取字符串中的某个字符
使用string[index]可以获取索引为index的字符:
>>> s = ‘Python Tutorial‘ >>> s[0] ‘P‘ >>> s[5] ‘n‘ >>> s[12] ‘i‘
注意索引从0开始,0索引对应第一个字符,1对应第二个,2对应第三个,等等。
如果索引太大,就会出现错误:
>>> s[100] Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: string index out of range
注意虽然这样可以获取字符串中的某个字符,但是获取的仍然是字符串类型,只是长度为1。
拼接字符串常量
两个字符串常量可以直接写在一起,进行拼接(concatenation):
>>> ‘class‘‘mate‘ ‘classmate‘ >>> "pyt""hon" ‘python‘ >>> ‘note‘"book" ‘notebook‘
注意两个字符串可以一个用‘括起,一个用"括起。
拼接字符串
如果是一个类型为str的变量和一个字符串常量,就不能直接写在一起进行拼接了:
>>> s = ‘class‘ >>> s ‘mate‘ File "<stdin>", line 1 s ‘mate‘ ^ SyntaxError: invalid syntax
这时需要用+运算符:
>>> s = ‘class‘ >>> s + ‘mate‘ ‘classmate‘
+运算符也可以用于两个str变量之间:
>>> s1 = ‘class‘ >>> s2 = ‘mate‘ >>> s1 + s2 ‘classmate‘
(未完)
标签:编码 display 就会 view 输出 结束 相对 sci indexer
原文地址:http://www.cnblogs.com/collectionne/p/6873077.html