python-day6-字符串

python-Day6-字符串

一、字符串

(一)作用

传递信息

(二)定义

使用单引号、双引号引起来的一串符号叫字符串,‘’, “”, ‘’‘’‘’,“”“”“”

(三)性质

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

(四)转义字符

有特殊含义的符号。原来转义字符规定使用\ + 数字表示有特殊意义的符号,现在C语言规定\ + 特定符号表示有特殊意义的符号。

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

代码:

# 一、转义字符
# 有特殊含义的符号。原来转义字符规定使用\ + 数字表示有特殊意义的符号,
# 现在C语言规定\ + 特定符号表示有特殊意义的符号。
print('ab\tc\nd')
print("ab'cd")
print('ab\'cd')
print('ab\\tcd')

输出结果:

ab c
d
ab’cd
ab’cd
ab\tcd

(五)原始字符串

在字符串前边添加r或者R,能够将字符串中的转义字符变成其本身
一个转义字符长始终为1,添加了原始字符串的转义字符长度是2.

代码:

# 二、原始字符串
# 在字符串前边添加r或者R,能够将字符串中的转义字符变成其本身
print('12\t34')
print(r'12\t34')
print(len(r'\t'), len('\t'))
# 一个转义字符长始终为1,添加了原始字符串的转义字符长度是2.

输出结果:

12 34
12\t34
2 1

二、字符串的运算

(一)字符串的拼接

得到的是新的字符串对象

代码:

# 1.字符串的拼接(得到的是新的字符串对象)
print('ab' + 'cd')

输出结果:

abcd

(二)字符串的重复

代码:

# 2.字符串的重复
print('*' * 20)

输出结果:

********************

(三)字符串比较大小

比较第一对不相同元素的大小(编码值)

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

chr() - 能够将进制转换成对应的符号。

ord() - 能够将符号转换为十进制。

0-9对应范围:48-57

A-Z:65-90

a-z:97-122

代码:

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

输出结果

False
True
12290

19968 40869

(四)字符串的成员运算

in、not in

代码:

# 4.字符串的成员运算:in、not in
print('a' in 'abcd')

输出结果:

True

(五)二进制

二进制:0、1

二进制:0b01000001,

十进制:65,

十六进制:0x41,

八进制符号:0o101

hex() - 将进制转换为十六进制

oct() - 讲进制转换为八进制

代码:

# 二进制:0、1
# A:二进制:0b01000001,十进制:65,十六进制:0x41,八进制符号:0o101
print(chr(0b01000001), chr(65), chr(0x41), chr(0o101))
# hex() - 将进制转换为十六进制
# oct() - 讲进制转换为八进制
print(hex(65))
print(oct(65))

输出结果:

A A A A
0x41
0o101

三、下标和切片

跟前面列表用法一致

四、字符串的遍历

(一)直接遍历

代码:

# 循环(遍历)
str1 = '王者荣耀'
# 直接遍历
for i in str1:
    print(i)

输出结果:

​ 王
​ 者
​ 荣
​ 耀

(二)间接遍历

代码:

# 间接遍历
str1 = '王者荣耀'
for i in range(len(str1)):
    print(str1[i])
str1 = '王者荣耀'

输出结果:

​ 王
​ 者
​ 荣
​ 耀

###(三)练习

1.小写字母转大写字母

# 练习:"abcderf" -> "ABCDERF"
# 拼接+
str2 = "abcderf"
str3 = ''
for i in str2:
    str3 += chr(ord(i)-32)
print(str3)

输出结果
​ ABCDERF
2.大写字母和小写字母互换

# 练习2:'abcdABCD一二三四' -> 'ABCDabcd一二三四'
str4 = 'abcdABCD一二三四'
# print(f'str4 = {str4}')
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(f'str5 = {str5}')

输出结果:
str5 = ABCDabcd一二三四

五、字符串的方法和函数

###(一)upper()
upper(): 小写字母转大写字母python
代码:

# upper() - 小写字母转大写字母
print('abcANC3254,。;'.upper())

输出结果:
ABCANC3254,。;

###(二)lower()
lower(): 大写字母转小写字母
代码:

# lower() - 大写字母转小写字母
print('abcANC3254,。;'.lower())

输出结果:
abcanc3254,。;
###(三)capitalize()
capitalize() : 将字符串中首字母转大写。
代码:

# capitalize() - 将字符串中首字母转大写。
# 必须是以字母开头的字符串
print('abcANC3254,。;b'.capitalize())

输出结果:
Abcanc3254,。;b
###(四)title()
title():将字符串中所有连续英文字母的子串首字母转大写
代码:

# title() - 将字符串中所有连续英文字母的子串
# 首字母转大写
print('abcANC3254,。;b'.title())

输出结果:
Abcanc3254,。;B
###(五)split()
split() - 切割,以指定符号为切割点,将切割点左右的字符串分开并保存到列表中
代码:

# split() - 切割,以指定符号为切割点,
# 将切割点左右的字符串分开并保存到列表中
result = ',1,2,3,'.split(',')
print(result)
print('3' + '' == '3')

输出结果:
[‘’, ‘1’, ‘2’, ‘3’, ‘’]
True
###(六)join()
join(): 将一个所有元素均为字符串的序列(容器)中的所有元素以指定元素拼接起来
代码:

result = ',1,2,3,'.split(',')
print(result)

# join() - 将一个所有元素均为字符串的序列(容器)中的所有元素以指定元素拼接起来
result2 = ','.join(result)
print(result2)

输出结果:
[‘’, ‘1’, ‘2’, ‘3’, ‘’]
,1,2,3,
###(七)strip()
strip():默认去掉字符串头尾的空符号(空格、\n、\t等都是空符号),也可以指定去除的符号
代码:

# 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('abcdef*'.strip('*'))

输出结果:


abc


abc


abc


abcdef

###(八)replace()
####1.replace(‘old_str’, ‘new_str’)
replace(‘old_str’, ‘new_str’):替换,将一个字符串中全部old_str替换成new_str
代码:

# 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
####2.replace(‘old_str’, ‘new_str’, 次数)
replace(‘old_str’, ‘new_str’, ‘次数’):替换,将一个字符串中指定数量的old_str替换成new_str
代码:

# 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(',', '', 2))

输出结果:
12,3,

3.屏蔽词小练习
# 例如:
'你可真是个垃圾'
# 主语、谓语、宾语
# Python中有一个模块jieba(结巴)
['你', '可', '真是', '个', '垃圾']

# 现存一个词库(停用词):
['垃圾', '菜鸡', '辣鸡']

# 如果结巴分词之后的结果在停用词库中出现过,直接进行替换。
str1 = '你可真是个垃圾'
list1 = ['你', '可', '真是', '个', '垃圾']
stop_words = ['垃圾', '菜鸡', '辣鸡']
str2 = ''
for i in list1:
    if i in stop_words:
        str2 += str1.replace(i, '*' * len(i))
print('屏蔽不文明a用语之后的结果为:', str2)

输出结果:

屏蔽不文明a用语之后的结果为: 你可真是个**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值