DAY7 字符串和常用数据结构
一、字符串 String
1.字符串的基本用法
2.字符串切片操作及其表示方法
二、列表的使用
1.列表的基本用法
2.列表中元素的添加方法:
list1.append(200)
list1.insert(1, 400) # 在位置1上添加元素400,原位置1上的元素后置
list1 += [1000, 2000]
3.删除列表元素及清空列表
清除:list1.remove(elem) elem为列表list1中的元素,否则会error
del list1[0]
清空:list1.clear()
4.列表的切片操作及其表示方法
5.列表的排序操作:
list = sorted(list1) #对列表中的元素以开头字母以a开始进行排序
list = sorted(list1,reverse = True) #reverse对排序后的元素进行反向排序
list = sorted(list1,key = len) #通过key关键字参数指定根据字符串长度进行排序而不是默认的字母表顺序
list.sort(reverse=True) #给列表对象发出排序消息直接在列表对象上进行排序
6.用列表的生成法来生成列表
list1 = [x + y for x in range(1,10) for y in ‘abcdefg’]
##7.生成器的创建
# 通过生成器可以获取到数据但它不占用额外的空间存储数据
# 每次需要数据的时候就通过内部的运算得到数据(需要花费额外的时间)
1.list1 = (x for x in range(1,19))
for val in list1
print(val)
2.通过yield关键字,将普通函数改造成生成器函数
def fib(n):
a, b = 0, 1
for _ in range(n):
a, b = b, a + b
yield a
def main():
for val in fib(20):
print(val)
if name == ‘main’:
main()
问题:设计一个函数产生指定长度的验证码,验证码由大小写字母和数字构成。
答案见Code:verificationCode.py
三、元组的使用
1.Python 的元组与列表类似,不同之处在于元组的元素不能修改
2.定义元组: tuple = (‘骆昊’, 38, True, ‘四川成都’)
3.元组在创建时间和占用的空间上面都优于列表
四、集合的使用
1.Python中的集合跟数学上的集合是一致的,不允许有重复元素,而且可以进行交集、并集、差集等运算。
2.# 集合的交集、并集、差集、对称差运算
print(set1 & set2)
# print(set1.intersection(set2))
print(set1 | set2)
# print(set1.union(set2))
print(set1 - set2)
# print(set1.difference(set2)) #set1减set2 会产生空集,return set(),相反的set2-set1结果和对称差运算相同;
print(set1 ^ set2)
# print(set1.symmetric_difference(set2))
3.元组的定义:set1 = {1,2,3,4,3,2}
五、字典的使用
1.字典的定义:
scores = {‘骆昊’: 95, ‘白元芳’: 78, ‘狄仁杰’: 82}
2.更新字典中的元素
scores.update(冷面=67, 方启鹤=85)
3.删除字典中的元素
print(scores1.popitem())
4.清空字典
scores.clear()
练习1:在屏幕上显示跑马灯文字
os为operating system,以及要用到的time模块
练习2:设计一个函数产生指定长度的验证码,验证码由大小写字母和数字构成。
需要用到yield创造生成器函数,其中列表可以通过 str = ’ '. join([str(x) for x in list]) 将列表数 字元素转换为字符串,用 c = chr(digital) 将数字转换为字符.
练习3:设计一个函数返回给定文件名的后缀名。
练习4:设计一个函数返回传入的列表中最大和第二大的元素的值。
python中对列表元素大小排序(冒泡排序法和选择排序法)
链接:1
练习5:计算指定的年月日是这一年的第几天
练习6:打印杨辉三角。
综合案例
案例1:双色球选号
综合案例2:约瑟夫环问题
综合案例3:井字棋游戏