字符串
1.字符串(str)
容器:’’、""、’’’’’’、""""""作为容器的表示,每个独立的文字信息就是它的元素(引号中的每个符号都是字符串的元素)
元素:引号中的每个符号都是元素, 字符串的元素又叫字符
字符串不可变;有序的(支持下标操作)
2.字符
python中只有字符的概念,没有对应的数据类型。如果需要字符用长度是1的字符串来表示
a.普通字符 - 除了转义字符以外的字符都属于普通字符;普通字符在字符串中表示这个符号本身
b.转义字符 - 通过 \加其他字符 的形式存在, 它在字符串中有特殊功能或者特殊意义
如
\n - 换行(相当于按一下回车)
\t - 水平制表符(相当于按一下tab键
’ - 表示一个单引号
" - 表示一个双引号
\ - 表示一个反斜杠
\u四位的16进制数 - 表示四位16进制数作为编码值对应的字符(编码字符)
3.字符编码
1)计算能直接存储的数据只有数字,而且存的是数字的补码。
2)文本数据没有办法直接存到计算中,计算在保存文本数据的时候,存的其实是每个文本符号对应的数字
(对计算机来讲,每个文本符号都会对应一个固定的数字),每一个文本符号对应的数字就是这个符号的编码值
3)字符编码表:ASCII码表、Unicode编码表
4.编码值的使用
1)编码字符:\u编码值
2)chr(编码值) - 获取指定编码值对应的字符
3)ord(字符) - 获取指定字符的编码值
获取字符
字符串的获取语法和列表获取元素的语法一样
1)字符串[下标] - 获取单个字符串
- 一个空格是一个字符
- 一个转义字符是一个字符(一个转义字符的长度是一)
2)切片
变量[字符串] [前值:后值:步长]
3)遍历 for 变量 in 字符串
相关运算操作
数学运算:
-
+(两个字符串合并产生一个新的字符串)
-
*N (一个字符串重复N次产生一个新的字符串
-
== 或者!=
print('abc' == 'abc') # age
print('abc' == 'acb') # False
- ‘>’、<、>=、<=(两个字符串比较大小,比的是第一对不相等字符的编码值大小)
练习1:分别统计字符串中中文字符的个数和字母的个数
str3 = 'hsjj数据是2823竭尽所能SJJ==-2...数kkl'
count1 = 0
count2 = 0
for x in str3:
if '\u4e00' <= x <= '\u9fa5':
count1 += 1
elif 'A' <= x <= 'Z' or 'a' <= x <= 'z':
count2 += 1
print('中文:', count1, '字母:', count2)
练习2:判断一个字符串中是否有数字字符,有打印True, 没有打印False
'bans江苏省' -> False '三角函数sss223==' -> True
str4 = 'bans江苏省'
for x in str4:
if '0' <= x <= '9':
print(True)
break
else:
print(False)
in 和not in :
字符 in 字符串 - 判断字符串中是否存在指定字符
字符串1 in 字符串2 - 判断字符串1是否是字符串2的子串
相关使用方法
字符串1.count(字符串2) - 统计字符串2在字符串1中出现的次数
字符串1.index(字符串2) - 统计字符串2第一次出现在字符串1中的位置
字符串.join(序列) - 将序列中的元素通过字符串连接产生一个新的字符串(序列中的元素必须是字符串)
list1 = ['abc', 120, True, 12.5]
print('+',join([str(x) for x in list1]))
字符串.split(字符串2) - 以字符串2为切割点对字符串1进行切割
字符串.split(字符串2,N) - 将字符串1中前N个字符串2作为切割点
print('000abc123abc456abc789'.split('abc')) # ['000', '123', '456', '789']
注意:切割点在字符串两端或者切割点连续出现都可能产生空串
字符串1.replace(字符串2,字符串3) - 将字符串1中的字符串2全都替换成字符串3
字符串1.replace(字符串2,字符串3,N) - 将字符串1中的字符串2前N个都替换成字符串3
max(编码值最大字符)、mix(编码值最小字符)、sorted(按编码值大小排序)
str(数据) - 将数据转换成字符串(所有类型数据都可以转换成字符串;数据转换成字符串的时候,是直接在数据打印值最外层加引号)
eval(字符串) - 将列表格式的字符串转化成列表,将字典格式的字符串转换成字典
str5 = "['abc', 10, 20] "
list2 = eval(str5)
print(list2, type(list2)) # ['abc', 10, 20] <class 'list'>
print(list2[0])
dict1 = eval("{'name': '张三', 'age': 18}")
print(dict1, type(dict1)) # {'name': '张三', 'age': 18} <class 'dict'>
tuple1 = eval('(10, 20, 30)')
print(tuple1, type(tuple1)) # (10, 20, 30) <class 'tuple'>
result = eval('[10, "abc", 123]')
print(result, type(result))