作用:传递信息。
字符串表达式:使用单引号、或双引号引起来的一串符号叫字符串。
‘’, “”, ‘’‘’‘’, “”“”“”
字符串的性质:
1.字符串是有序的(下标、切片)
2.字符串是不可变。(没有增删改)
3.字符串的容器符合:‘’, “”, ‘’‘’‘’, “”“”“”;类型’str‘
4.字符串分类:普通字符、转义字符、原始字符串
有特殊含义的符合。原来转义字符规定使用+数字表示有特殊意义的符合。
现在c语言规定+特定符合表示有特殊意义的符合。
print('arbtcnd')
print("ab'cd")
print('ab'cd')
print('ab\tcd')
+指定符合可以使有特殊含义的符合变成其本身
可以让没有特殊含义的符合变得有特殊意义
在字符串前边添加r或者R,能狗将字符串中的转义字符变成其本身。
print('12t34') #12 34
print(r'12t34') #12t34
print(len(r't')) ,print('t')
一个转义字符长始终为1,添加了原始字符串的转义字符长度是2.
1.字符串的拼接(得到的是新的字符串对象)print('ab' + 'cd')
2.字符串的重复
print('大王' * 20,)
3.字符串比较大小
比较第一对不相同元素的大小
python使用的编码表是ASCII码表的拓展表Unicode编码表(万国码)
print('ab' > 'c') # False
print('ab。' > 'abc') # True
chr() -能够将进制转换成对应的符合。
ord() ->能够将符合转为十进制。
print(ord('。')) # 12290
print(chr(12290))
0-9对应:48-57
A -Z: 65- 90
a-z :97-122
所有的中文:u4e00 - 9fa5 (19968-40869)
print(chr(ord('u4e00')))
print(chr(ord('u9fa5')))
print(chr(48))
4.字符串的成员运算:in,not in
print('a' in 'abcd') #True
# 二进制:0,1 # A :二进制:'0b01000001', 十进制:65,十六进制:0x41,八进制:0o101 print(chr(0b01000001), chr(65), chr(0x41), chr(0o101)) # hex()-将进制转化为十六进制 # oct() -将进制转换为八进制 print(hex(65)) print(oct(65))三、字符串的下标和切片
str1 = """ 从前有座山, 山上有座庙, 庙里有个老和尚, 老和尚对小和尚说 """ # 如果获取第一个"山",下标为5 print(str1[5]) # "说"的下标 print(str1[-2]) # 注意:一个回车键代表一个n,长度为1.
切片:练习
1.'将从前有座山’取出
2.将’庙有老’取出
3.将’庙座有上山’取出
print(str1[1:6]) print(str1[15:20:2]) print(str1[-21:-26:-1])
# 一行完整的内容如何换行?
nums = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8
+ 1 + 2 + 2 + 2 + 2
str2 = '3214564'
'311213'
print(str2)
五、字符串的遍历
str1 = '王者荣耀'
# 直接遍历
for i in str1:
print(i)
# 间接遍历
for i in range(len(str1)):
print(str1[i])
# 获取'王' ,'荣'
for i in range(0, len(str1), 2):
print(str1[i])
# 练习:'abcderf' - >'ABCDERF'
str2 = 'abcderf'
str3 = ''
for i in str2:
str3 += chr(ord(i) - 32) #万国码中对应的数字相差a 和A相差32
print(str3)
# 练习2:'abcdABCD一二三四' -> 'ABCDabcd一二三四'
str4 ='abcdABCD一二三四'
str5 = ''
for i in str4:
if 'a'<=i <='z':
str5 += chr(ord(i) - 32)
elif 'A'<=i<='Z':
str5 += chr(ord(i) + 32)
else:
str5 += i
print(str5)
六、字符串的方法和函数
# upper() - 小写字母转大写字母只转小写的
print('abcAZA1Aa'.upper())
# lower -> 大写字母转小写字母
print('abcAZA1Aa'.lower())
# capitalize() - 将字符串中首字母转大写,必须是以字母开头的字符串
print('abc1212356:b'.capitalize()) # Abc1212356:b
# title() - 将字符串中所有连续英文字母的字串首字母转大写
print('abc1212356:b'.title()) # Abc1212356:B
# split - 切割,以指定符合为切割点,将切割点左右的字符串分开并保存到列表中
result1 = ',1,2,3,2,56,6'.split('2')
print(result1)
print('3' + '' == '3')
# join() - 将一个所有元素均为字符串的序列(容器)中的所有元素以指定符合拼接起来
result2 = '黑'.join(result1)
print(result2)
# strip() -默认去掉字符串头尾的空符号(空格、n、t等都是空符号),也可以指定去除的符合
str1 = 'nabctn'
print('*' * 20)
print(str1)
print('*' * 20)
print(str1.strip()) #首和尾的所有空符号都会删除
print('*' * 20)
print(str1.strip('n')) # 指定删除首尾的对应符合,其他的不删
print('*' * 20)
print('abc*'.strip('*')) #只删除了尾部的*
print('*' * 20)
replace(‘old_str’,‘new_str’) -替换,将一个字符串中全部old_str换成new_str
replace(‘old_str’,‘new_str’,‘次数’) ->将一个字符串中国指定数量的old_str换成new_str
str1 = ',1,2,3,'
print(str1.replace(',', ''))
print(str1.replace(',', '', 2))
# 例如:
"你可真是个垃圾"
# 主语、谓语、宾语等
# Python中有一个模块jieba(结巴)
['你', '可', '真是', '个', '垃圾']
# 现存一个词库
['垃圾', '菜鸡', '辣鸡']
# 如果jieba分词之后的结果在停用词库中出现过,直接进去替换。
str1 = '你可真是个垃圾'
list1 = ['你', '可', '真是', '个', '垃圾']
stop_words = ['垃圾', '菜鸡', '辣鸡']
str2 = ''
for i in list1:
if i in stop_words:
str2 += str1.replace(i, '*')
print(str2)



