理解字符串
在Python中使用英文引号扩起来的内容都是字符串
![](https://i-blog.csdnimg.cn/blog_migrate/cb5beb663bfaac42b2f68a4115c41995.png)
字符串是一种线性序列结构,有序,连续(类似内存),如下图:
每一个格子表示一个内存块,存储字符的数字编码。每一块内存都有对应的索引,从左到右依次为0,1,2.....
字符的数字编码
计算机只能处理二进制,所以每个字符都有对应的数字编码(十进制数字码),比如英文字母a对应编码97,计算机通过解析编码来输出对应的表示
使用Python中的内置函数ord()可以获取字符的十进制数字码。语法:ord('字符') 例:print(ord('a'))
# 97
使用Python中的内置函数char()可以将十进制数字码解析为字符。语法:char(编码) 例:print(char(97))
# a
常用的字符编码
ASCII:最早的字符编码,美国佬发明的,一个字节能表示的范围0~255,最多可以包含256个字符,所以只支持英文
UNICODE:为每种语言的每个字符都设置了唯一的二进制编码,世界通用,表现形式为:U+数字编码
UTF-8:针对UNICODE的可变长度编码
GBK:汉字编码字符集,完全兼容ASCII,又继承了UTF-8的可变长度效果,达到节省空间的效果
Python默认使用UNICODE进行编码
转义字符详解
![](https://i-blog.csdnimg.cn/blog_migrate/20b7cc48df3403d2081619556fd33d4d.png)
例:print('a\tb\tc')
# a b c
禁止转义:在字符串前加上r 例:print(r'a\tb\tc')
#
a\tb\tc
对字符串进行遍历
字符串是一种线性结构,可使用for循环来进行遍历
例:
for _ in str:
print(_)
2.1 彻底掌握字符串的操作符
字符串常用操作符
![](https://i-blog.csdnimg.cn/blog_migrate/2cc7ee93bbbe9fa8b8e721e9cd024647.png)
+:字符串拼接。例:str = str1 + str2
* :将字符串重复输出。例:str = 'a' * 3 # str = 'aaa'
[] : 索引访问。正负整数索引,分别控制正数倒数。例:print(str[0]) # aprint(str[-1]) # -1表示取倒数第一个数
[:]:对字符串进行切片(截取)操作。例|:print(str[0:2]) # 截取[0,2)范围的strprint(str[:2]) # 截取[0,2)范围的strprint(str[1:]) # 截取[1,结束]范围的strprint(str[:]) # 截取所有范围的str
in:查找字串是否在字符串里面,返回True、False。例:a,b = 'abc','ab' c = b in a # c = True
%:格式化字符串。例:%d 占位int、 %s 占位String、 %f 占位float,可设置保留几位小数,如%0.1f表示保留一位小数
3.1 字符串的常用操作方法
字符串常用方法
1.len(str):获取字符串长度例:num = len('aaa') # num = 3
2.str.lower():将字符串里面的英文字母全部转换成小写例:num = 'Hello World' .lower() # num = 'hello world'
3.str.upper():将字符串里面的英文字母全部转换成大写例:num = 'Hello World' .upper() # num = 'HELLO WORLD'
4.str.islower():判断是否全是小写字母(空格忽略计算),是True,不是False例:num = 'H a' # num = False
5.str.isupper():判断是否全大写字母(空格忽略计算),是True,不是False例:num = 'H a' # num = False
6.str.strip():删除首尾的空格例:num = ' aa '.strip() # num = 'aa'
7.str.lstrip():删除首部的空格,l代表的是left例:num = ' aa '.lstrip() # num = 'aa '
8.str.rstrip():删除尾部的空格,r代表的是right例:num = ' aa '.lstrip() # num = ' aa'
9.str.find(sub_str):从左到右搜索子串第一次出现的位置,返回索引值,查不到则为-1例:num = 'hello world'.find('hello') # 0
10.str.rfind(sub_str):从右到左搜索子串第一次出现的位置,返回索引值,查不到则为-1 例:num = 'aabbcc'.find('b') # 3
11.str.count(sub_str):统计子串的数量例:num = 'hehehemama'.count('he') # num = 3
12.str.replace(sub_str,dst_str):字串的替换例:num = 'aabbcc'.replace('aa','bb') # num = 'bbbbcc'
13.str.splite(str,maxsplite = -1):根据某个字符分割字符串,maxsplite代表分割次数,可以不设置这个值,默认-1(不限次数)例: num = '@@a@@b@@c'.splite('@@') # num = ['a','b','c']
14.str.startswith(prefix):判断字符串是否以某个值为前缀,返回True、False例:num = 'hello world'.starswith('hello') # True
15.str.endswith(suffix):判断字符串是否以某个值为后缀,返回True、False例:num = 'hello world'.endswith('world') # True
4.1 彻底掌握字符串的格式化
理解格式化
对字符串进行格式化,不会清除字符串中的字符,而是按照特定的格式符对字符串进行输出
常用的格式化符号:
![](https://i-blog.csdnimg.cn/blog_migrate/bfd2e461a24128bd74be0718cc14fd4d.png)
语法:str%(param1,param2,...) 括号不是必须的
例:
1.ans = '我学习Python已经有%d天了'%(5)
# ans = '我学习Python已经有5天了'
2.money,name = 20.21,'Kowloon' ans = '%s的账户还剩%0.2f元'%(name,money)
# ans = 'Kowloon的账户还剩20.21元'
指定浮点型的精度:%0.nf 表示保留小数点n位
特殊格式化符号:%s,无论参数是什么类型,都可格式化成字符类型 例:str = '%s'%(True)
# str = 'True'
使用format方法进行格式化
通过指定占位符来确定调用format方法中的第几个参数,比如{0}对应format中的第一个参数
语法:
'{index}'.format(param1)
![](https://i-blog.csdnimg.cn/blog_migrate/e63c796f8da80a9ef4ced50764c7b7d9.png)