day06

字符串

字符串表达式:使用单引号、双引号引起来的一串符号叫字符串。

字符串的性质

  1. 字符串是有序的(可使用下标,切片)
  2. 字符串是不可变的(没有增删改)
  3. 字符串的容器符号''""''''''"""""";类型:str
  4. 字符串分类:普通字符串、转义字符、原始字符串

转义字符

有特殊含义的符号。原来转义字符规定使用\ + 数字表示有特殊意义的符号

现在C语言规定\ + 特定符号表示有特殊意义的符号。

print('ab\tcd')
print('ab\'cd')
print('ab\\cd')

\ + 指定符号可以使有特殊含义的符号变成其本身

可以让没有特殊含义的符号变得有特殊意义

原始字符串

在字符串前边添加r或者R,能够将字符串中的转义字符串变成其本身

一个转义字符的长度始终是1,添加了原始字符串的转义字符长度是2

print('12\t34')
print(r'12\t34')
print(len(r'\t'), len('\t'))

字符串的运算

字符串的拼接

得到的是新的字符串

print('ab' + 'cd')

字符串的重复

就是字符串的拼接

print('*' * 20)

字符串比较大小

比较第一对不相同元素的大小(ASCII)

Python使用的编码表是ASCII码表的拓展表Unicode编码表(万国码)

print('ab' > 'c')  # False
print('ab。' > 'abc')  # True

chr()/ord()

chr( ) - 能够将进制转换成符号

ord( ) - 能够以将符号转换成十进制

print(ord('。'))	# 12290
print(chr(12290))	# 。

字符串的成员运算

in、not in

print('a' in 'abcd')

下标and切片

下标

str1 = '''
从前有座山,
山上有座庙,
庙里有个老和尚,
老和尚对小和尚说
'''

获取第一个”山“,下标为5

print(str1[5])  # 有个隐藏的'\n'转义字符

”说“的下标

print(str1[-2])

一个回车键代表一个\n,长度为1。

切片

将’从前有座山’取出。

print(str1[1:6])

将’庙有老’取出

print(str1[15:20:2])

将’庙座有上山’取出

print(str1[12:7:-1])

字符串的遍历

循环(遍历)

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:
    m = chr(ord(i) - 32)
    str3 += m
print(str3)			# ABCDERF

练习2:‘abcdABCD一二三四’ —>‘ABCDabcd一二三四’

str4 = 'abcdABCD一二三四'
str5 = ''
for i in str4:
    if 'a' <= i <= 'z':
        m = chr(ord(i) - 32)
        str5 += m
    elif 'A' <= i <= 'Z':
        n = chr(ord(i) + 32)
        str5 += n
    else:
        str5 += i
print(str5)				# ABCDabcd一二三四

字符串的方法和函数

upper( )

小写字母转大写字母

print('abc'.upper())  # ABC

lower( )

大写字母转小写字母

print('abcANC3245'.lower())  # abcanc3245

capitalize( )

将字符串中首字母转大写,必须是以字母开头的字符串

print('abc123D456;.b'.capitalize())  # Abc123d456;.b

title( )

将字符串中所有连续英文字母的字串首字母的首字母转大写

print('abc123D456;.b'.title())  # Abc123D456;.B

splist( )

切割,以指定符号为切割点,将切割点左右的字符串分开并保存到列表中

result1 = '1,2,3,'.split(',')
print(result1)  # ['1', '2', '3', '']
print('3' + '' == '3')  # True

join( )

将一个所有元素均为字符串的序列(容器)中的所有元素以指定符号拼接起来

result2 = ','.join(result1)  # result1(容器中一定都是字符串)
print(result2)		# 1,2,3,

strip( )

默认去掉字符串头尾的空符号(空格、\n、\t等都是空符号),也可以指定去除的符号

str1 = '\nabc \t\n'
print('*' * 20)
print(str1)
print('*' * 20)
print(str1.strip('\n'))  # 指定去除'\n'这个符号
print('*' * 20)
print('*abc'.strip('*'))

replace( )

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))

屏蔽不文明用语

如果jieba分词之后的结果在停用词库中出现过,直接替换。

str1 = '你是个大帅逼'
str2 = ''
list1 = ['你', '是', '个', '大帅逼']
stop_words = ['垃圾', '大帅逼', '逼']
for i in list1:
    if i in stop_words:
        str2 += str1.replace(i, '*' * len(i))
print('屏蔽不文明用语之后的结果:', str2)		# 屏蔽不文明用语之后的结果: 你是个***
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值