2023.9.29-python学习day07,数据容器之元组,字符串

目录

一.数据容器-元组

二.元祖的遍历循环

三.元祖的特点

四.数据容器-字符串

1.字符串定义与下标索引

2.字符串的替换

3.字符串的分割

4.统计字符串中某字符的出现次数

5.统计字符串的总长度

6.字符串的特点

五.综合练习题目

1.元组练习:索引查找

2.字符串练习题 :开发敏感词语过滤程序



一.数据容器-元组

思考:列表是可以修改的。 如果想要传递的信息,不被篡改,列表就不合适了。

元组同列表一样,都是可以封装多个、不同类型的元素在内。 但最大的不同点在于: 元组一旦定义完成,就不可修改 所以,当我们需要在程序内封装数据,又不希望封装的数据被篡改,那么元组就非常合适了

  • 元祖定义:定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型。
  • 如果元组中只有一个元素,必须加逗号,为了和其他类型的数据作区分,否则就会类型错误
  • tuple_1 = (10),这个是int类型.    tuple_1 = (10,) ,这个是元组类型
tuple1 = (1, '白', True, [0, 3, 6])  # 定义元祖,支持嵌套
print(tuple1)
t1 = tuple1.index('白')  # 查找'白'在元祖中的下标序号
print(t1)

t2 = tuple1.count('白')  # 统计'白'在元祖中出现的次数
print(t2)

t3 = len(tuple1)  # 统计元祖中共有多少元素
print(t3)
'''
(1, '白', True, [0, 3, 6])
1
1
4
'''

二.元组的遍历循环

同列表一样,元组也可以被遍历。 可以使用while循环和for循环遍历它

tuple1 = (1, '白', True, [0, 3, 6])  # 定义元祖
# while循环遍历元祖
index = 0
while index < len(tuple1):
    print(tuple1[index])
    index += 1

# for循环遍历元祖
for i in tuple1:
    print(i)
'''
1
白
True
[0, 3, 6]

1
白
True
[0, 3, 6]
'''

三.元组的特点

经过上述对元组的学习,可以总结出元组有如下特点:

  1. 可以容纳多个数据
  2. 可以容纳不同类型的数据(混装)
  3. 数据是有序存储的(下标索引)
  4. 允许重复数据存在
  5. 不可以修改(增加或删除元素等)
  6. 多数特性和list一致,不同点在于不可修改的特性。
tuple1 = (1, '白', True, [0, 3, 6])
tuple1[3][0] = 1  # 可以改元组里面的列表,但改后的类型也要一样的东西
tuple1[3][1] = '白'  # 类型也不能变
# tuple1[0] = 1
# tuple1[1] = 1报错,元组不可修改
# tuple1[2] = 1
print(tuple1)
print(id(tuple1))  # 2290386637904数据的内存地址
'''id()可以查看数据的内存地址'''

四.数据容器-字符串

1.字符串定义与下标索引

  • 尽管字符串看起来并不像:列表、元组那样,一看就是存放了许多数据的容器。 但不可否认的是,字符串同样也是数据容器的一员。字符串是字符的容器,一个字符串可以存放任意数量的字符。
  • 和其它容器如:列表、元组一样,字符串也可以通过下标进行访问 从前向后,下标从0开始
  • 从后向前,下标从-1开始 同元组一样,字符串是一个:无法修改的数据容器,如果必须要做,只能得到一个新的字符串,旧的字符串是无法修改
name1 = 'baibaideweijie'
print(name1[0])
print(name1[-1])
print(name1.index('j'))  # 查找特定字符串j的下标索引值
'''
输出结果:
b
e
11
'''

2.字符串的替换

语法:字符串.replace(字符串1,字符串2) 功能:将字符串内的全部:字符串1,替换为字符串2 注意:不是修改字符串本身,而是得到了一个新字符串哦
name1 = 'baibaideweijie'
name2 = name1.replace('de', '的')  # 把'de'换成'的'
print(name2)
print(name1)
'''
baibai的weijie
baibaideweijie
'''
可以看到,字符串name1本身并没有发生变化,而是得到了一个新字符串对象

3.字符串的分割

     语法:字符串.split(分隔符字符串)      功能:按照指定的分隔符字符串,将字符串划分为多个字符串,并存入列表对象中      注意:字符串本身不变,而是得到了一个列表对象

name3 = '白 白 的 wei jie'
name4 = name3.split(' ')  # (' ')指定空格字符为中间,左右进行分割成多个字符串

print(name3)  # 白 白 的 wei jie
print(name4)  # ['白', '白', '的', 'wei', 'jie']

'''可以看到,字符串按照给定的 <空格>进行了分割,分割处前后变成多个子字符串,并存入一个列表对象中。
'''
name5 = name3.split('的')  # 从指定字符开始分割,左右两侧被分成单独的字符串
print(name5)  # ['白 白 ', ' wei jie']

4.统计字符串中某字符的出现次数

   语法:字符串.count(字符串)

name3 = '白 白 的 wei jie'
print(name3.count('白'))  # 统计name3中白的出现次数,2次

5.统计字符串的总长度

语法:len(字符串),数字字母符号中文均被算作是一个字符

name6 = '12345abcdee白白的wj.+=;-*'
print(len(name6))  # 数字字母符号中文均被算作是1个字符,共22个

6.字符串的特点

作为数据容器,字符串有如下特点:

  1. 只可以存储字符串
  2. 长度任意(取决于内存大小)
  3. 支持下标索引
  4. 允许重复字符串存在
  5. 不可以修改(增加或删除元素等)
  6. 支持遍历循环 基本和列表、元组相同
  7. 不同与列表和元组的在于:字符串容器可以容纳的类型是单一的,只能是字符串类型。
  8. 不同于列表,相同于元组的在于:字符串不可修改

五.综合练习题目

1.元组练习:索引查找

tuple1 = ('one,two', '12', '三,四,五,六')
a. 计算元组长度并输出
b.获取元组第2个元素并输出
c.获取元素第3个元素中的最后一个元素并输出
d.使用for循环遍历输出第1个元组中的元素
tuple1 = ('one,two', '12', '三,四,五,六')
print(len(tuple1))
print(tuple1[1])
print(tuple1[2][-1])

for i in tuple1[0]:
    print(i)
'''
输出结果:
元祖长度为3
第二个元素为12
第三个元素中的最后一个一个元素,六
遍历循环第一个元祖
o
n
e
,
t
w
o
'''

2.字符串练习题 :开发敏感词语过滤程序


1、开发敏感词语过滤程序,提示用户输入内容,如果正常发言则打印用户输入的内容,

如果用户输入的内容中包含不优雅的
如 “cnm” , “tmd” 则将内容替换为***,并提醒用户

a = input('请输入优雅的语言:')
a1 = a.replace('cnm', '***').replace('tmd', '***')
if a == 'cnm' and 'tmd':
    print(f'监测到{a1}是不文明用语,系统自动屏蔽')
else:
    print(a)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白白的wj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值