基础自学Python编程7天快速入门 Day3

参考资料:Python网红Alex b站

数据类型——字符串&列表

1. 字符串方法精讲

1_1. 字符串定义

  1. 字符串是由零个或多个字符组成的有限序列
  2. 不可变、有索引、可切片、可遍历

1_2. 一切字符串皆对象

1_3. 字符串类型方法

 1. 格式化方法 
 2. 判断方法 
 3. 查 改 计数 替换 
 4. 特殊变态方法
1_3_1 格式化方法

a.capitalize() # 首字符改成大写
a.casefold() # 为了方便字符串比对,都改成小写字母
a.center(50,’-’) # 字符串居中,两边填充
a.ljust(15,’-’) # 字符串从左边开始填充满
a.rjust(15,’-’) # 字符串从右边开始填充满
a.lower() # 全变成小写
a.upper() # 全变成大写
a.swapcase() # 大小写互换
a.title() # 改成标题
a.zfill() # 字符串空的地方填入0
a.strip() # 两边去死皮
a.lstrip() # 左边去死皮
a.rstrip() # 右边去死皮
a.format() # 引用外部变量 类似f

# 实例
>>> a = 'this is a book'
>>> a.title() 
'This Is A Book'

>>> a.zfill(20)
'000000this is a book'

>>> a = '  Taohy  \n  '
>>> a.strip()
'Taohy'

>>> a = '  Taohy  \n  '
>>> a.rstrip()
'  Taohy

>>> msg = 'My name is {name}'
>>> msg.format(name = 'Taohy')
'My name is Taohy'

>>> msg = 'My name is {0},age is {1}'
>>> msg.format('Taohy',18)
'My name is Taohy,age is 18'
1_3_2 字符串判断

a.startswith() # 以()开头
a.endswith() # 以()结尾
a.isalnum() # 是不是字母or数字
a.isalpha() # 是不是字母
a.isdecimal() # 不要用 垃圾
a.isdigit() # 是不是数字格式
a.isidentifier() # 是不是合法的可以做变量的名字
a.islower() # 是不是都是小写
a.isupper() # 是不是都是大写
a.isnumeric() # 是不是数字,跟isdigit区别,中文二十五 也是True
a.isprintable() # 是否可打印
a.isspace() # 是否是空格
a.istitile() # 是否是标题

# 实例
>>> phone = '152322189'
>>> phone.startswith('15')
True
>>> phone.endswith('19')
False
>>> phone.isalnum()
True
>>> phone.isalpha()
False

>>> a = '二十五'
>>> a.isnumeric()
True
>>> a.isdigit()
False
1_3_3 字符串查找&计数&修改&替换

a.find() # 查找字符
a.rfind() # 从右边开始查找字符
a.index() # 索引 跟find的区别,找不到index报错,find返回-1
a.rindex() # 从右边开始找索引
a.count() # 字符串出现的次数
a.split() # 默认就是空格拆分
a.rsplit()
a.splitlines() # 按照行(’\r’, ‘\r\n’, \n’)分隔
a.removeprefix() # 去掉前缀
a.removesuffix() # 去掉后缀
a.replace() # 替换

# 实例
>>> a = 'This is a desk'
>>> a.find('i')
2
>>> a.find('b')
-1

>>> a = 'This is a desk'
>>> a.find('i')
2
>>> a.find('b')
-1
>>> a.find('i',4)
5

>>> a.index('b')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: substring not found
>>> a.find('b')
-1

>>> msg = ' Hello\n my\n name '
>>> msg.splitlines()
[' Hello', ' my', ' name ']

>>> msg = 'China is strong'
>>> msg.removeprefix('Chi')
'na is strong'

>>> msg = 'China is strong'
>>> msg.removesuffix('ong')
'China is str'
1_3_4 特殊变态方法

a.encode() # 字符编码,之后就讲解
a.join() # 把列表转成字符串,每个元素
a.maketrans() # 加密 生成密码本
a.translate() # 加密程序

# 实例:
>>> name = ['selina','elina','aa']
>>> '-'.join(name)
'selina-elina-aa'

2. 字符串练习:开发文本加密小程序

a.maketrans() # 加密 生成密码本
a.translate() # 加密 解密

在这里插入图片描述

# 实例2  统计字符、数字、特殊字符的个数

在这里插入图片描述

3. 列表精讲

列表特性

有序
有索引、可切片、可遍历

li.append(element)       # 新增element
li.insert(index,element) # index指定位置插入

# 实例:
>>> li = []
>>> li.append('a')
>>> li
['a']
>>> li.insert(0,'b')
>>> li
['b', 'a']

li.clear() # 全部删除
li.pop() # 弹出最后一个
li.remove(element) # 删除指定元素
del li # 删除指定的元素或者删除整个列表

# 实例:
>>> li =[1,'c',98,'de']
>>> li.clear()
>>> li
[]

>>> li =[1,'c',98,'de']
>>> li
[1, 'c', 98, 'de']
>>> li.pop()
'de'

>>> li
[1, 'c', 98]
>>> li.remove('c')
>>> li
[1, 98]
>>> li.remove(98)
>>> li
[1]

# 切片
正切
步长 
倒切
反转
# 实例
>>> li = [1,2,3,4,5,6,7,8]
>>> li[0:2]
[1, 2]
>>> li[0::2]
[1, 3, 5, 7]
>>> li[0:7:2]
[1, 3, 5, 7]
>>> li[-4:7]
[5, 6, 7]
>>> li[::-1]
[8, 7, 6, 5, 4, 3, 2, 1]

'element' in names
names.count(element)
names.index(element)
# 实例
>>> 1 in li
True
>>>> li.count(1)
1
>>> li.count(7)
1
>>> li.index(5)
4
>>>

特殊

names.reverse()
names.sort() 
names.extend()
names.copy() # 浅copy
import copy # 深入copy
# 实例
>>> li.reverse()
>>> li
[8, 7, 6, 5, 4, 3, 2, 1]

>>> li = [7,4,3,1,9]
>>> li.sort()
>>> li
[1, 3, 4, 7, 9]

# extend
>>> li = [1,3,4]
>>> li2 = [5,6,7]
>>> li.extend(li2)
>>> li
[1, 3, 4, 5, 6, 7]

# 浅copy
>>> li
[1, 3, 4, 5, 6, 7]
>>> li3 = li.copy()
>>> li3
[1, 3, 4, 5, 6, 7]
>>> li3[1]=10
>>> li3
[1, 10, 4, 5, 6, 7]
>>> li
[1, 3, 4, 5, 6, 7]
>>>
# 列表中嵌入列表,子列表不共用地址
>>> li = [1,2,[3,4],5]
>>> li2 = li.copy()
>>> li2 [2][0]=5
>>> li2
[1, 2, [5, 4], 5]
>>> li
[1, 2, [5, 4], 5]

# 深copy
>>> import copy
>>> li
[1, 2, [5, 4], 5]
>>> li3 = copy.deepcopy(li)
>>> li3
[1, 2, [5, 4], 5]
>>> li3[2][0]=11
>>> li3
[1, 2, [11, 4], 5]
>>> li
[1, 2, [5, 4], 5]
>>>

列表生成器

# 实例 
# 普通写法
stuff = []
for i in range(1,32) :
    stuff.append('stuff'+str(i))
print(stuff)

#简写 一行代码的时候简写
li = [f'stuff{i}' for i in range(1,32)]
print(li)

在这里插入图片描述

4. 列表练习题在这里插入图片描述

# 1.列表去重

在这里插入图片描述

# 2.找到列表中第二大的值

在这里插入图片描述

# 3. 统计列表中每个值出现的次数?can not use dict

在这里插入图片描述

# 4.判断一件列表是不是另一个列表的子列表

在这里插入图片描述

# 5. 求出列表中,离最大值、最小值的平均值,最接近的值

在这里插入图片描述

5.实战

1. 双色球选购程序

在这里插入图片描述

6.本日作业

在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

淡水瑜

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

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

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

打赏作者

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

抵扣说明:

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

余额充值