DAY10 - 字符串
一、字符编码
计算机存储数据只能存数字(存的是数字的二进制补码)
1.字符编码
- 为了你能够让计算机存储文字符号,给每个符号对应了一个固定的数字,每次在需要存储这个符号的时候,就去存储这个固定的数字。
- 每个对应的那个数字就是这个符号的编码值。
2.编码表 - 保存字符和字符对应编码值的表
1)ASCII编码表 - 美国信息码(只包含了美国人常用的符号,总共128)
数字字符 、大写字母(A-65)、小写字母(a-97)、英文输入法下的特殊符号
2)Unicode编码表(Python) - 包含了世界上所有国家所有名族的所有语言符号(统一码、万国码)
- Unicode编码表包含了ASCII编码表 (前128个字符就是ASCII编码表中的内容)
- 中文编码范围:0x4e00 ~ 0x9fa5
3.编码值的应用
1)chr(编码值) - 获取编码值对应的字符
print(chr(97)) #'a'
print(chr(0x4e00)) #'一'
print(chr(0x9fa5)) #'龥'
for x in range(0x4e00,0x9fa5+1):
print(chr(x),pinyin(chr(x)),end=' ')
for x in range(0x2800,0x28ff+1):
print(chr(x),end=' ')
2)ord(字符) - 获取指定字符对应的编码值
# 注意:字符指的是长度为1的字符串
print(ord('a')) #97
print(ord('余')) #20313
print(ord('晔')) #26196
print(ord('维')) #32500
# 案例:将char对应的小写字母转换成大写字母
char = 'a'
print(chr(ord(char) - 32))
'''
a:97 A:65
b:98 B:66
c:99 C:67
'''
3)编码字符 :\u4位的16进制编码值
在字符串中提供字符的方式有两种:a:直接提供字符 b:使用编码字符
# hex(10进制数) - 获取指定数字对应的16进制表示方式
str1 = 'ab你好'
print(str1)
print(hex(3))
# 如果知道字符的编码值是多少,但是不知道字符是什么的时候,就可以使用编码字符来表示这个字符
str2 = '\u0061'
print(str2)
char = 'j'
if '\u4e00' <= char <='\u9fa5':
print(char,'是中文字符')
else:
print(char,'不是中文字符')
二、获取字符
字符串获取字符的方法和列表获取元素的方法一样
1.获取单个字符
# 字符串[下标]
# 注意:字符串中转义字符的长度为1
str = '\thello\nworld!\u9fa5'
print(str[5]) #取o
2.字符串切片
# 字符串[开始下标:结束下标:步长]
str1 = 'good good study!'
print(str1[1:-2:2]) #odgo td
print(str1[-3:]) #dy!
3.遍历