学习Python的 第六天Day6, 今天你get了吗❤

本文介绍了Python字符串的基础知识,包括字符串的性质、转义字符和原始字符串的使用,以及字符串的运算如拼接、重复、比较大小、成员运算。此外,还讲解了字符串的下标和切片、遍历方法,以及一些常用的方法如`upper()`、`lower()`等。最后,通过实例展示了字符串的进制转换和处理不文明词汇的技巧。
摘要由CSDN通过智能技术生成

Day6

1. 字符串的运算

字符串
作用:传递信息
字符串表达式:使用单引号或双引号引起来的一串符号叫字符串。
如:’ ‘, " ", ‘’’ ‘’', “”" “”"

字符串的性质
a. 字符串是有序的(下标、切片)
b. 字符串是不可变的(没有增删改)
c. 字符串的容器符号’‘, “”, ‘’’ ‘’', “”" “”";类型:str
d. 字符串分类:普通字符、转义字符、原始字符串

1.1 转义字符

a. 有特殊含义的符号。原来转义字符规定使用 \ + 数字表示有特殊意义的符号。
b. 现在C语言规定 \ + 特定符号表示有特殊意义的符号。
c. \ + 指定符号可以使有特殊含义的符号变成其本身,可以让没有特殊含义的符号变得有特殊意义。

print('a\rb\tcd\ne')  # \t相当于insert(改写)

# 运行结果
'''
b	cd
e
'''
print('ab\'cd')

# 运行结果
# ab'cd
print('ab\\tcd')

# 运行结果
# ab\tcd

1.2 原始字符串

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

print('12\t34')
# 运行结果
# 12	34
print(r'12\t34')
# 运行结果
# 12\t34
print(len(r'\t'), len('\t'))
# 运行结果
# 2 1

2. 字符串的运算

2.1 字符串的拼接(得到的是新的字符串对象)

print('ab' + 'cd')

# 运行结果
# abcd

2.2 字符串的重复

print('*' * 20)

# 运行结果
# ********************

2.3 字符串比较大小

a. 比较第一对不相同元素的大小(编码值)
b. Python使用的编码表是ASCII编码表的拓展表Unicode编码表(万国码)

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

# 运行结果
# False
# True

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

# 运行结果
'''
一丁丂七丄丅丆万丈三上下丌不与丏丐丑丒专且丕世丗丘丙业丛东丝丞丟丠両丢丣两严並丧丨丩个丫丬中丮丯丰丱串
(略)
齷齸齹齺齻齼齽齾齿龀龁龂龃龄龅龆龇龈龉龊龋龌龍龎龏龐龑龒龓龔龕龖龗龘龙龚龛龜龝龞龟龠龡龢龣龤龥----
'''

2.4 字符串的成员运算:in、not in

print('a' in 'abcd')

# 运行结果
# True

2.5 进制转换

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

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

# 运行结果
# 12290
# 。

二进制:0、1
如A:
二进制:0b01000001
十进制:65
十六进制:0x41
八进制:0o101

print(chr(0b01000001), chr(65), chr(0x41), chr(0o101))

# 运行结果
# A A A A

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

print(hex(65))
print(oct(65))

# 运行结果
'''
0x41
0o101
'''

3. 下标和切片

3.1 下标

str1 = """
从前有座山,
山上有座庙,
庙里有个老和尚和一个小和尚,
老和尚的对小和尚说:
"""

获取第一个"山",下标为5

print(str1[5])

# 运行结果
# 山

根据"说"的下标获取“说”

print(str1[-3])

# 运行结果
# 说
  • 注意:一个回车键代表的一个\n,长度为1

3.2 切片

1.将“从前有座山”取出。
2.将“庙有老”取出来
3.将“庙座有上山”取出

print(str1[1: 6])
print(str1[15: 21: 2])
print(str1[12: 7: -1])

# 运行结果
'''
从前有座山
庙有老
庙座有上山
'''

3.3 一行完整的代码如何换行写,不影响输出结果?

输入 \ 后按enter键

num = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 \
+ 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8
print(num)

str2 = '123456'\
    '7890123'
print(str2)

# 运行结果
'''
72
1234567890123
'''

4. 字符串的遍历(循环)

4.1 直接遍历

str1 = '王者荣耀'
for i in str1:
    print(i)
    
#运行结果
'''
王
者
荣
耀
'''

4.2 间接遍历

str1 = '王者荣耀'
for i in range(len(str1)):
    print(str1[i])
    
#运行结果
'''
王
者
荣
耀
'''

获取“王荣”

str1 = '王者荣耀'
for i in range(0, len(str1), 2):  # 一定要写初始值
    print(str1[i])

# 运行结果
'''
王
荣
'''

4.3 练习

  1. “abcdef" 转换为 “ABCDEF”
str2 = 'abcdef'
str3 = ''
# print(ord('a'))
for i in str2:
    str3 += chr(ord(i) - 32)
print(str3)

# 运行结果
# ABCDEF
  1. 将“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)

# 运行结果
# ABCDabcd一二三四

5. 字符串的方法和函数

5.1

  1. upper() - 小写字母转大写字母
print('abc'.upper())

# 运行结果
# ABC
  1. lower() - 大写字母转小写字母
print('ABC'.lower())

# 运行结果
# abc
  1. capitalize() - 将字符串中所有单词的首字母转大写, 必须以字母开头的字符串
print('abc12345hbvdg;.n'.capitalize())

# 运行结果
# Abc12345hbvdg;.n
  1. title() - 将字符串中所有连续英文字母的字串首字母转大写
print('abc12345hbvdg;.n;,m'.title())

# 运行结果
# Abc12345Hbvdg;.N;,M
  1. split() - 切割,以指定符号位切割点,将切割点左右的字符串分开后一并保存到列表中
result1 = '1, 2, 3, a'.split(',')
print(result1)
print('3' + '' == '3')

# 运行结果
'''
['1', ' 2', ' 3', ' a']
True
'''
  1. join() - 将一个所有元素均为字符串的序列(容器)中的所有元素以指定符号拼接起来
result1 = ['1', ' 2', ' 3', ' a']
result2 = ','.join(result1)
print(result2)

# 运行结果
# 1, 2, 3, a
  1. strip() - 默认去掉字符串头尾的空字符号(空格、\n、\t等都是空符号),也可以指定去掉的符号

如:

str1 = '\nabc \t\n'
print('----------')
print(str1)
print('----------')

# 运行结果
'''
----------

abc 	

----------
'''
str1 = '\nabc \t\n'
print('----------')
print(str1)
print('----------')

print(str1.strip())
print('----------')

print(str1.strip('\n'))
print('----------')

print('abc*'.strip('*'))

# 运行结果
'''
----------

abc 	

----------
abc
----------
abc 	
----------
abc
'''
  1. replace(‘old_str’, ‘new_old’) - 替换,将一个字符串中的全部old_str替换成new_str
    replace(‘old_str’, ‘new_old’, 数量) - 将一个字符串中指定数量的old_str替换成new_str
str1 = ',1,2,3,'
print(str1.replace(',', ''))
print(str1.replace(',', '', 2))

# 运行结果
'''
123
12,3,
'''

5.2 练习

王者荣耀: 屏蔽不文明词汇

“你可真是个垃圾”
主语、谓语、宾语等

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)

# 运行结果
# 屏蔽不文明用语之后的结果: 你可真是个**

Day6 over!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值