Python入门示例系列10 字符串(初级)
字符串(string)
Python中的字符串用单引号 ' ,双引号 ",三个单引号''',三个双引号""" 括起来,同时使用反斜杠 \ 转义特殊字符。
'ABC' 与 "ABC" 完全等价。
示例:
s1="hello" # 双引号 " 括起来 s2='hello' # 单引号 ' 括起来 s3='' # 空字符串 s4="" # 空字符串 s5='''hello''' # 三个单引号括起来 s6="""hello""" # 三个双引号括起来 s7=str() # 空字符串 print(type(s1)) print(type(s2)) print(type(s3)) print(type(s4)) print(type(s5)) print(type(s6)) print(type(s7))
结果:
<class 'str'> <class 'str'> <class 'str'> <class 'str'> <class 'str'> <class 'str'> <class 'str'>
字符串的索引(index)
索引值以 0 为开始值,-1 为从末尾的开始位置。
示例:
str = 'ABCDEFG' print (str) # 输出字符串 print (str[0]) # 输出字符串第1个字符 print (str[3]) # 输出字符串第4个字符 print (str[-1]) # 输出字符串最后1个字符 print (str[-3]) # 输出字符串最后第3个字符
运行结果:
ABCDEFG
A
D
G
E
字符串的切片(slice)[:]
字符串的截取子串的语法格式如下:
变量[头下标:尾下标] # 特别注意,取头不取尾
示例:
str = 'ABCDEFG' print (str) # 输出字符串 print (str[0:-1]) # 输出第一个到倒数第二个的所有字符 print (str[2:5]) # 输出从第三个开始到第五个的字符 print (str[2:]) # 输出从第三个开始的后的所有字符
执行以上程序会输出如下结果:
ABCDEFG
ABCDEF
CDE
CDEFG
字符串运算符
假设 a="Hello",b="Python"
下表实例变量 a 值为字符串 "Hello",b 变量值为 "Python":
操作符 | 描述 | 实例 |
---|---|---|
+ | 字符串连接 |
>>>a + b
'HelloPython'
|
* | 重复输出字符串 |
>>>a * 2
'HelloHello'
|
[ ] | 通过索引获取字符串中字符 |
>>>a[1]
'e'
|
[ : ] | 截取字符串中的一部分 |
>>>a[1:4]
'ell'
|
in | 成员运算符 - 如果字符串中包含给定的字符返回 True |
>>>"H" in a
True
|
not in | 成员运算符 - 如果字符串中不包含给定的字符返回 True |
>>>"M" not in a
True
|
r/R | 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。 |
>>>print(r'\n')
\n
>>> print(R'\n')
\n
|
加号 + 是字符串的连接符,把两个字符串连接起来(拼接起来)。
星号 * 表示复制当前字符串,与之结合的数字为复制的次数(重复多次,复制多次)。
实例如下:
str = 'ABCDEFG'
print (str) # 输出字符串
print (str * 2) # 输出字符串两次,也可以写成 print (2 * str)
print (str + "TEST") # 连接字符串
执行以上程序会输出如下结果:
ABCDEFG
ABCDEFGABCDEFG
ABCDEFGTEST
转义字符(escape character)
Python 使用反斜杠 \ 转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个 r,表示原始字符串(r 指 raw,即 raw string,会自动将反斜杠转义):
实例
>>> print('AB\nCD') AB CD >>> print(r'AB\nCD') AB\nCD
常见转义字符
\\ | 反斜杠符号 Backslash |
>>> print("\\")
\
|
\' | 单引号 Single quote |
>>> print('\'')
'
|
\" | 双引号 Double quote |
>>> print("\"")
"
|
\n | 换行 Linefeed |
>>> print("\n")
>>>
|
\t | 横向制表符 Horizontal Tab |
>>> print("Hello \t World!")
Hello World!
>>>
|
\r | 回车,将 \r 后面的内容移到字符串开头,并逐一替换开头部分的字符,直至将 \r 后面的内容完全替换完成。Carriage Return |
>>> print("Hello\rWorld!")
World!
>>> print('google taobao\r123456')
123456 taobao
|
\ooo | 八进制数,o 代表 0~7 的字符,例如:\012 代表换行。octal value |
>>> print("\110\145\154\154\157")
Hello
|
\xyy | 十六进制数,以 \x 开头,y 代表的字符,例如:\x0a 代表换行. hex value |
>>> print("\x48\x65\x6c\x6c\x6f")
Hello
|
注意,Python 没有单独的字符类型(character),一个字符就是长度为1的字符串。
>>> word = 'Python' >>> print(word[0], word[5]) P n >>> print(word[-1], word[-6]) n P
与 C 字符串不同的是,Python 字符串不能被改变。向一个索引位置赋值,比如 word[0] = 'm' 会导致错误。
ord()函数 可以将一个字符转换为ASCII码: 【Ordinal 英 /ˈɔːdɪn(ə)l/ 美 /ˈɔːrdən(ə)l/ 序数,序号,顺序的,次序】
print(ord('a'))
#输出 97
print(ord('0'))
#输出 48
chr()函数 可以将一个ASCII码转换为字符:【character 英 /ˈkærəktə(r)/ 美 /ˈkærəktər/ n. 性格,品质;特色,特征;人物,角色;勇气,毅力;某种人,古怪有趣的人;(书写或印刷)符号,文字,字体;名誉,名声 】
print(chr(97))
#输出 'a'
print(chr(48))
#输出 '0'
大写A字母的ASCII值为65, 小写a为97.
字符串内建函数
字符串有很多内建函数(https://www.cnblogs.com/emanlee/p/3616755.html),下面列出几个常用的函数。
string.format()
格式化字符串 (https://www.cnblogs.com/emanlee/p/15816634.html)
string.lower()
转换 string 中所有大写字符为小写.。
string.upper()
转换 string 中的小写字母为大写。
string.replace(old, new, num=string.count(str1))
把 string 中的 old 替换成 new, 如果 num 指定,则替换不超过 num 次.。
示例:
>>> "abc".upper() 'ABC' >>> "ABC".lower() 'abc' >>> "ABCDEF".replace("AB","12345") '12345CDEF' >>>
注意:
Python没有字符的数据类型。单个字符串表示一个字符。
总目录:https://www.cnblogs.com/emanlee/p/15816554.html
REF
https://www.cnblogs.com/emanlee/p/3616755.html
https://www.runoob.com/python3/python3-data-type.html
https://www.runoob.com/python3/python3-string.html
https://www.cnblogs.com/mysterious-killer/p/10033830.html
https://blog.csdn.net/ewfwewef/article/details/109049451