本章总结与章节练习

 一、本章总结     

1、序列结构主要有列表、元组、集合、字典和字符串

2、正向递增索引取值范围[0,N-1],反向递减索引取值范围[-1,-N]

3、切片的语法结果:序列名[start:end:step]

4、创建列表的方式:1)使用[]直接创建  2)使用内置函数list()创建

5、列表的相关操作方法:1)添加方法:insert()、append()  

2)删除方法:pop()、remove()、clear()

3)列表元素的排序:sort()和内置函数sorted()

4) 其他方法:reverse()、copy()

6、元组的创建方式:1)直接使用()创建  2)使用内置函数tuple()创建

7、字典的创建方式:1)直接使用{}创建  2)使用内置函数dict()创建

8、字典的相关操作方法:1)查询方法:get()、keys()、values()和items()

2)删除方法:pop()、popitem()、clear()

9、集合的创建方式:1)直接使用{}创建  2)使用内置函数set()创建

10、集合的相关操作方法:1)添加方法:add()  2)删除方法:remove()和clear()

11、列表、字典、集合都是Python中的可变数据类型,元组是Python中的不可变数据类型

12、列表、元组、字典和集合的遍历都可以通过for循环实现

13、列表、元组、字典和集合的删除都可以使用语句  del 来实现

二、本章练习

1、下面代码的输出结果是:(  A  )

A.5

B.6

C.4

D.以上都不对

2.以下数据类型是不可变序列的是:(  B  )

A.列表

B.元组

C.字典

D.集合

3.下面代码的输出结果是:(  C  )

A.120

B.40

C.200

D.20

4.以下创建字典的方式错误的是:( D   )

A.d={1:[20,30],3:[30,40]}

B.d={(10,20):1,(30,40):4}

C.d={‘张三’:30,’李四’:50}

D.d={[10,20]:’张三’,[30,40]:’李四’}

5.下面代码的输出结果是:( B   )

A.[2008,2022,2035,’2025’,2025]

B.[2008,2022,2035,[‘2025’,2025]]

C.[2008,2022,2025,2035,’2025’]

D.[2008,2022,2025,2035,[‘2025’]]

6.下面代码的输出结果是:(   D )

A.想念家人

B.想想念念家家人人

C.想念家人想念家人

D.[‘想家’,’想人’,’念家’,’念人’]

7.下面代码的输出结果是:(  C)

A.[1,3,5,7,2,20]

B.[1,3,5,2,20,7]

C.[1,3,20,5,7]

D.[1,3,2,20,5,7]

8.下面代码的输出结果是:(  C  )

A.[9,7,5,3,1]

B.[1,3,5,7,9]

C.None

D.[1,3,5,7,9,]

9.下面代码的输出结果是:(   A )

A.<class ‘int’>

B.<class ‘tuple’>

C.<class ‘list’>

D.<class ‘set’>

10.A和B是两个集合,对于A&B的描述正确的是(   A )

A.A和B是交集运算,包含同时在集合A和集合B中的元素

B.A和B是并集运算,包含在集合A和集合B中的所有元素

C.A和B是差集运算,包含在集合A但不包含在集合B中的元素

D.A和B是补集运算,包含集合A和集合B中非共同的元素

11.已知一个列表中存储的是员工的出生年份[88,89,90,98,00,99],由于时间比较久,出生的年份均为2位整数,现需要2位年份前加19,如果年份是00,将需要加上200。

lst=[88,89,90,98,00,99] #表示员工的两位整数出生年份
# for index in range(len(lst)):
#     if str(lst[index])!='0':
#         lst[index]='19'+str(lst[index])
#     else:
#         lst[index]='200'+str(lst[index])
# print(lst)



for index,value in enumerate(lst):
    if str(value)!='0':
        lst[index]='19'+str(value)
    else:
        lst[index]='200'+str(value)
print(lst)

12.模拟京东购物:从键盘录入5个商品信息(1001 手机)添加到商品列表中,展示商品信息,提示用户选择商品,用户选中的商品添加到购物车中(购物车中的商品要逆序),用户选中的商品不存在需要有相应提示,当用户输入“q”时循环结束,显示购物车中的商品。

# 创建一个空列表,用于存储入库的商品信息
lst=[]
# 从键盘录入5个商品信息(1001 手机)添加到商品列表中,展示商品信息
for i in range(0,5):
    goods=input('请输入商品的编号和商品的名称进行商品入库,每次只能输入一件商品:')
    lst.append(goods)
# 输出所有的商品信息

for item in lst:
    print(item)

# 创建一个空列表,用于存储购物车中的商品 
cart=[]
while True:
    flag=False # 代表没有商品的情况
    num=input('请输入要购买的商品编号')
    # 遍历商品列表,查询要购买的商品是否存在
    for item in lst:
        if num==item[0:4]:   # 切片操作,从商品中切出序号
            flag=True  # 代表商品已经找到
            cart.append(item)    # 添加到购物车
            print('商品已成功添加到购物车')
            break # 退出的是for循环
    if not flag and num!='q':
        print('商品不存在')
    if num=='q':
        break # 退出的才是while循环
print('-'*50)
print('您购物车里已选择的商品为:')
cart.reverse()
for item in cart:
    print(item)

13.模拟12306火车订票流程:假设北京到天津有以下4个车次可供选择,用户选择所要购买的车次,进行购票进站。

# 创建字典用于存储车票信息,使用车次作key,使用其它信息作value
dict_ticket={
    'G1234':['北京南-天津南','18:06','19:39','00:33'],
    'G1533':['北京南-天津南','18:15','19:49','00:34'],
    'G8917':['北京南-天津西','18:20','18:19','00:59'],
    'G203':['北京南-天津南','18:35','19:09','00:34']
}
print('车次  出发站-到达站  出发实际  到达时间  历时时长')
# 遍历字典中的元素
for key in dict_ticket.keys():
    print(key,end='')
    # 根据key获取出来的值是一个列表
    for item in dict_ticket.get(key):
        print(item,end='\t\t')
    # 换行
    print()

# 输入用户的购票车次
train_no=input('请输入要购买的车次:')
# 根据key获取值
info=dict_ticket.get(train_no,'车次不存在') # info是一个列表类型
if info!='车次不存在':
    person=input('请输入乘车人,如果是多位乘车人使用逗号分隔:')
    # 获取车次的出发站-到达站,还有出发时间
    s=info[0]+info[1]+'开'
    print('您已经购买了'+train_no+'次列车'+s+',请'+person+'尽快换取纸质车票。【铁路客服】')
else:
    print('对不起,选择的车次可能不存在')

14.模拟手机通迅录: 从键盘录入5位好友的姓名和电话,由于通讯录是无序的所以可以使用集合来实现。

# 创建一个空集合
s=set()
# 录入5位好友的姓名和手机号
for i in range(1,6):
    info=input(f'请输入第{i}位好友的姓名和手机号:')
    s.add(info)
# 遍历集合
for item in s:
    print(item)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值