字符串
字符串作用:传递信息。
字符串表达式:使用单引号、双引号引起来的一串符号叫字符串。
'‘, “”, ‘’’‘’', “”“”“”
字符串的性质:
1.字符串是有序的(下标、切片)
2.字符串是不可变(没有增删改)
3.字符串的容器符号’‘, “”, ‘’’‘’', “”“”“”;类型:str
4.字符串分类:普通字符、转义字符、原始字符串
一、转义字符
有特殊含义的符号。原来转义字符规定使用 \ + 数字 表示有特殊意义的符号,
现在C语言规定 \ + 特定符号表示有特殊意义的符号。
print('ab\tc\nd')
print("ab'cd")
print('ab\'cd')
print('ab\\tcd')#--->ab\tcd
#\ + 指定符号可以使有特殊含义的符号变成其本身,可以让没有特殊含义的符号变得有特殊意义
二、原始字符串
在字符串前边添加r或者R,能够将字符串中的转义字符变成其本身
print('12\t34') #12 34
print(r'12\t34') #12\t34
print(len(r'\t'), len('\t')) #2 1
#一个转义字符长始终为1,添加了原始字符串的转义字符长度是2.
1.字符串的拼接(得到的是新的字符串对象)
print('ab' + 'cd') #abcd
2.字符串的重复
print('*' * 20) #********************
3.字符串比较大小
比较第一对不相同元素的大小(编码值)
Python使用的编码表是ASCII码表的拓展表Unicode编码表(万国码)
print('ab' > 'c')
print('ab。' > 'abc')
# chr() - 能够将进制转换成对应的符号。
# ord() - 能够将符号转换为十进制。
print(ord('。'))
print(chr(12290))
# 0-9对应范围:48-57
# A-Z:65-90
#a-z:97-122
#所有的中文:\u4e00-\u9fa5 (19968-40869)
print(ord('\u4e00'), ord('\u9fa5'))
for i in range(19968, 40870):
print(chr(i), end='')
for i in range(4352, 4608):
print(chr(i), end='')
4.字符串的成员运算:in、not in
print('a' in 'abcd') #结果为True、False
二进制: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.切片
#1.将"从前有座山"取出。
print(str1[1:6])
#2.将"庙有老"
print(str1[15:20:2])
#.将"庙座有上山"
print(str1[12:7:-1])
a.一行完整的内容如何换行?
num = 1 + 2 + \
3 + 4 + 5 + 6 + 7 + 8 \
+ 1 + 2 + 3 + \
4 + 5 + 6 + \
7 \
+ \
82 \
+ 10
print(num)
str2 = '3245678' \
'9087654'
循环(遍历)
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)
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)
字符串的方法与函数
1.upper() - 小写字母转大写字母
print('abcANC3245,。;'.upper())
2.lower() - 大写字母转小写字母
print('abcANC3245,。;'.lower())
3.capitalize() - 将字符串中首字母转大写,必须是以字母开头的字符串
print('abc123D456;.b'.capitalize())
4.title() -将字符串中所有连续英文字母的子串首字母转大写
print('abc123D456;.b'.title())
5.split() - 切割,以指定符号为切割点,将切割点左右的字符串分开并保存到 列表 中
result1 = ',1,2,3,'.split(',')
print(result1)
#['', '1', '2', '3', '']
6.join() - 将一个所有元素均为字符串的序列(容器)中的所有元素以指定符号拼接起来
result2 = ','.join(result1)
print(result2)
7.strip() - 默认去掉字符串头尾的空符号(空格、\n、\t等都是空符号),也可以指定去除的符号
str1 = '\nabc \t\n'
print('*' * 20)
print(str1)
print('*' * 20)
print(str1.strip())
print('*' * 20)
print(str1.strip('\n'))
print('*' * 20)
print('abc*'.strip('*'))
8.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(',', ''))#123
print(str1.replace(',', '', 2))#12,3,
“你可真是个垃圾”
主语、谓语、宾语等
Python中有一个模块jieba(结巴)
['你', '可', '真是', '个', '垃圾']
#现存一个词库(停用词):
['垃圾', '菜鸡', '辣鸡']
#如果jieba分词之后的结果在停用词库中出现过,直接进行替换。
str1 = "你可真是个垃圾"
list1 = ['你', '可', '真是', '个', '垃圾']
stop_words = ['垃圾', '菜鸡', '辣鸡']
str2 = ''
for i in list1:
if i in stop_words:
str2 += str1.replace(i, '*' * len(i))
print('屏蔽不文明用语之后的结果:', str2)
"