目录

Python语言程序设计第七章 - 组合数据类型


集合运算

集合的关系

集合综合练习

元组元素抓7

元组解包

升序降序

截取部分元素

判断元素书否在列表中存在

头尾对调

翻转列表

指定元素对调

约瑟夫生者死者小游戏

计算列表元素之和

计算总分和平均分

添加用户

模拟用户登录


集合运算


已知某公司的职员有经理(manager)和技术员(technician)。

请用集合解决以下问题:

  1. 将既是经理又是技术员的职员保存到集合 set1 中,并输出
  2. 将是经理但不是技术员的职员保存到集合 set2 中,并输出
  3. 将是技术员但不是经理的职员保存到集合 set3 中,并输出
  4. 将身兼一职的职员保存到集合 set4 中,并输出
  5. 判断 张飞 是否是经理,如果是经理,输出「yes」;如果不是经理,输出「no」
  6. 求出经理和技术员有几人,并将结果输出

注意:集合 manager 与 technician 已存在,可以直接使用.


代码部分:

set1 = manager & technician
print(set1)# 将是经理但不是技术员的职员保存到集合 set2 中,并输出
set2 = manager - technician
print(set2)# 将是技术员但不是经理的职员保存到集合 set3 中,并输出
set3 =technician - manager
print(set3)# 将身兼一职的职员保存到集合 set4 中,并输出
set4 = manager ^ technician
print(set4)# 判断 张飞 是否是经理
set5 = {"张飞"}
if set5 < manager:print("「yes」")
else:print("「no」")# 求出经理和技术员有几人,并将结果输出
print("经理和技术员有{}人".format(len(manager | technician)))

运行结果:

集合的关系


分别创建两个集合set1set2,并判断两个集合是否满足超集关系子集关系。具体要求如下:

set1 = {2, 3, 4, 5, 6}
set2 = {2, 4, 6}

(1)若set1包含set2,且有set2没有的元素,则返回set1是set2的真超集,set2是set1的真子集
(2)若set2包含set1,且有set1没有的元素,则返回set2是set1的真超集,set1是set2的真子集
(3)若set2set1一样,则返回set1和set2互为子集
(4)其它情况则返回set1和set2没有关系


代码部分:

set1 = {2, 3, 4, 5, 6}
set2 = {2, 4, 6}
if (set1.issubset(set2) and set2.issuperset(set1)) or set1 == set2 == null:print('set2是set1的真超集,set1是set2的真子集')
elif set2.issubset(set1) and set1.issuperset(set2):print('set1是set2的真超集,set2是set1的真子集')
elif set1 == set2:print('set1和set2互为子集')
else:print('set1和set2没有关系')

运行结果:

集合综合练习


已知某学校的某次考试成绩分班级保存在集合 score1, score2, score3, score4, score5 中,5个集合都已存在,可直接使用。

请用集合解决以下问题:

  1. 突然发现 score1 的数据格式为列表,请将 score1 转换为集合,并将集合 score1 输出
  2. 使用 add() 方法将数据 10 添加到集合 score2 中,并将集合 score2 输出
  3. 使用 update() 方法将数据 {11, 12, 13} 添加到集合 score3 中,并将集合 score3 输出
  4. 使用 remove() 方法将数据 83 从集合 score4 中删除,并将集合 score4 输出
  5. 使用 clear() 方法将集合 score5 中的数据清空,并将集合 score5 输出

代码部分:

score1 = set(score1)
print(score1)# 将 10 添加到 score2 中
score2.add(10)
print(score2)# 将 {11, 12, 13} 添加到 score3 中
score3.update({11, 12, 13})
print(score3)# 将 83 从 score4 中删除
score4.remove(83)
print(score4)# 将 score5 清空
score5.clear()
print(score5)

运行结果:

元组元素抓7


请用程序实现:找出元组 tuple_pre 中元素是 7 的倍数或个位为 7 的数,并将计算结果输出。

注意:元组 tuple_pre 已存在,可以直接使用 tuple_pre。


代码部分:

print(tuple_pre)# 请计算元组 tuple_pre 中元素是7的倍数及个位为7的数,并将计算结果输出
for i in tuple_pre:if i % 7 == 0 or i % 10 == 7:print(i)

运行结果:

元组解包


“*” 的使用。在对一个元组进行解包时,变量的数量必须和元组中的元素数量一致,也可以在变量前边添加一个 * 号,这样变量将会获取元组中所有剩余的元素。


代码部分:

my_tuple = 10, 20, 30, 40# 在对一个元组进行解包时,变量的数量必须和元组中的元素的数量一致
# 也可以在变量前边添加一个*,这样变量将会获取元组中所有剩余的元素
a, b, *c = my_tuple
print('1. a =', a, 'b =', b, 'c =', c)a, *b, c = my_tuple
print('2. a =', a, 'b =', b, 'c =', c)*a, b, c = my_tuple
print('3. a =', a, 'b =', b, 'c =', c)a, b, *c = [1, 2, 3, 4, 5, 6, 7]
print('4. a =', a, 'b =', b, 'c =', c)a, b, *c = 'hello world'
print('5. a =', a, 'b =', b, 'c =', c)# 不能同时出现两个或以上的*变量
# *a , *b , c = my_tuple

运行结果:

升序降序


编写程序,将列表中的前10个元素升序排列,后10个元素降序排列,并输出结果。

注意:列表 list_pre 已存在,可以直接使用 list_pre。


代码部分:

# 打印输出 list_pre
print(list_pre)# 请对上面列表中的元素进行排序
list_pre[:10]=sorted(list_pre[:10])
list_pre[10:]=sorted(list_pre[10:],reverse=True)print(list_pre)

运行结果:

截取部分元素


请用程序实现:

将列表list_pre中的部分元素截取到列表list_new中。

输入格式:

在两行中分别输入两个非负整数,表示需要截取的索引段,且第一个数小于第二个数。

输出格式:

将截取出的列表输出即可。

示例:


代码部分:

list_pre = [23, 7, 54, 53, 36, 42, 2, 24, 76, 70, 18, 35, 44, 1, 9, 6, 8, 75, 49]# 请使用 input() 输入两个正整数 begin, end
begin = int(input('请输入第一个索引: '))
end = int(input('请输入第二个索引: '))# 将列表 list_pre 中下标从 begin(含) 到 end(含) 的元素截取到列表 list_new 中,并将 list_new 输出
list_new = list_pre[begin: end+1]
print(list_new)

运行结果:

注意!如果大家运行出现错误,之间点击提交就可以啦!

判断元素书否在列表中存在


请用程序实现:判断指定元素是否存在于列表 list_test 中。

注意:要求分别用 for 循环与 in 关键字完成练习,列表 list_test 已存在,可以直接使用 list_test。

运行你的程序,使控制台显示如下内容:

查看 4 是否在列表中(使用循环):
存在
查看 4 是否在列表中(使用 in 关键字):
存在

代码部分:

# 打印输出 list_test
print(list_test)# 使用for循环判断元素 4 是否存在于 list_test 列表中print("查看 4 是否在列表中 ( 使用循环 ) : ") for i in list_test: if(i == 4) : print ("存在") # 使用in关键字判断元素 4 是否存在于 list_test 列表中print("查看 4 是否在列表中 ( 使用 in 关键字 ) : ") if (4 in list_test): print ("存在") 

运行结果:

头尾对调


请用程序实现:将列表 list_ht 中的头尾两个元素对调,并将对调的结果输出。

注意:列表 list_ht 已存在,可以直接使用 list_ht。


代码部分:

# 打印输出 list_ht
print(list_ht)# 将列表 list_ht 中的头尾两个元素对调,并将对调的结果输出
list_ht[0], list_ht[-1] = list_ht[-1], list_ht[0]print(list_ht)

运行结果:

翻转列表


请用程序实现,将列表 list_reverse 翻转,并将翻转后的列表输出。

注意:列表 list_reverse 已存在,可以直接使用 list_reverse。

通过下面的例子来解释翻转列表。

翻转前 : list = [10, 11, 12, 13, 14, 15]
翻转后 : list = [15, 14, 13, 12, 11, 10]

代码部分:

# 打印输出 list_reverse
print(list_reverse)# 将列表翻转
list_reverse.reverse()
print(list_reverse)

运行结果:

指定元素对调


请用程序实现,将列表list_swap 中所指定的元素对调到列表的尾部,并输出对调后的列表,如下图所示。

注意:列表 list_swap 已存在,可以直接使用 list_swap。


代码部分:

# 打印输出 list_swap
print(list_swap)# 将列表 list_swap 中的第1、2个元素对调到列表的尾部for i in range(2):temp = list_swap[0]for i in range(6):list_swap[i] = list_swap[i + 1]list_swap[6] = temp# 输出对调后的列表
print(list_swap)

运行结果:

约瑟夫生者死者小游戏


一条船上有 num 个人(num为偶数),超载了,需要一半的人下船。于是人们排成一排,排队的位置即为他们的编号。他们从头开始从 1 开始报数,数到某个数字的人下船,并且下一个人又从 1 开始报数,如此循环,直到船上只有原来一半人为止。

请用程序实现:输入表示船上总人数的偶数 num 和需要下船的特殊数字 special_num,输出下船人的编号。

运行你的程序,使控制台显示如下内容:

请输入船上的总人数: 30
请输入需要下船的特殊数字: 9
9
18
27
6
16
26
7
19
30
12
24
8
22
5
23

代码部分:

# 请使用 input() 输入 num 和 special_num
num = int(input('请输入船上的总人数: '))
special_num = int(input('请输入需要下船的特殊数字: '))# 请输出下船人的编号
people = []
for i in range(1, num + 1):people.append(i)length = int(len(people) / 2)report_number = 1
while len(people) > length:if report_number != special_num:pp = people.pop(0)people.append(pp)else:pp = people.pop(0)print(pp)report_number = 0report_number += 1

运行结果:

计算列表元素之和


已存在定义好的列表,请计算列表list_sum中的所有元素之和,并将计算结果输出。

注意: 列表list_sum已存在,可以直接使用list_sum


代码部分:

# 打印输出 list_sum
print(list_sum)# 请计算列表 list_sum 中的所有元素之和,并将计算结果输出
sum = 0for i in list_sum:sum += iprint(sum)

运行结果:

计算总分和平均分


小明刚结束期末考试,他将自己各科的分数保存到了列表scores中,现在,请帮他进行如下计算:

  • 计算总分,并将计算结果保存到变量total_score
  • 计算平均分,并将计算结果保存到变量avg_score

代码部分:

# 小明的期末考试成绩分数如下:
scores = [95, 69, 98, 74, 64, 72, 53, 92, 83]# 请计算小明的总分、平均分,并保存至变量 total_score, avg_score 中
total_score = 0for i in scores:total_score += iavg_score = total_score / len(scores)
print(avg_score)

运行结果:

添加用户


这里有一个保存用户账户信息的「字典」,字典的 key 是用户名,value 是明文密码,形式如下:

users = {"user1": "password1","user2": "123456"
}

请编写程序,向用户字典中添加如下账户:

用户名 密码
zhangsan zs123456
lisi si123456

代码部分:

users = {"alpha": "alpha123","beta": "betaisverygood","gamma": "1919191923"
}users["zhangsan"] = "zs123456"
users["lisi"] = "si123456"

模拟用户登录


这里有一个保存用户账户信息的字典,请用程序模拟系统的登录验证过程。

请用程序实现:

用键盘模拟用户输入,判断输入的用户名或密码是否正确,并输出登录信息。

  • 如果输入的用户名存在,且密码正确,则输出success
  • 如果输入的用户名存在,但密码不正确,则输出password error
  • 如果输入的用户名不存在,则输出not found

输入格式:

分两行输入,第一行为用户名,第二行为密码。

示例:


代码部分:

users = {"alpha": "alpha123","beta": "betaisverygood","gamma": "1919191923","zhangsan": "123456","lisi": "123456","admin": "ADMIN","root": "Root123"
}username = input()
password = input()if username not in users:print("not found")
elif users[username] != password:print("password error")
else:print("success")

运行结果:


对大家有帮助的话记得点点赞哦,这是对博主的鼓励哦!

Python语言程序设计第七章 - 组合数据类型 - 6.1相关推荐

  1. 字符串是单一字符的无序组合吗_计算机二级教程 Python语言程序设计 第6章组合数据类型...

    第6章组合数据类型 第六章学习知识导图 考点主要是: 1) 组合数据类型的基本概念 2) 列表类型:定义.索引.切片 3) 列表类型的操作:列表的操作函数.列表的操作方法 4) 字典类型:定义.索引 ...

  2. 关于python中程序流程结构-Python语言程序设计(第4章:程序结构设计)

    4.1 算法 [1]计算机程序可视为数据结构和算法的集成,这种集成体现为以下两方面的内容:数据是程序实现的基础:算法要依靠程序来完成功能. [2]算法的特点:有穷性:确定性:零个或多个输入:一个或多个 ...

  3. 深度之眼 - Python学习笔记——第四章 组合数据类型

    第四章 组合数据类型 4.1 列表 列表是可变的! 4.1.1 列表的表达 序列类型:内部元素有位置关系,能通过位置序号访问其中元素 列表是一个可以使用多种类型元素,支持元素的增.删.查.改操作的序列 ...

  4. python 循环赋值_计算机二级Python语言程序设计 第2章Python语言基本语法元素

    第二章学习知识导图 本章概述:本章目的是了解基础的Python相关知识 考点主要是: 1) 程序的基本语法元素:程序的格式框架.缩进.注释.变量.命名.保留字.数据类型.赋值语句.引用 2) 基本输入 ...

  5. [转载] 语言程序设计第4版黄洪艺_计算机二级教程 Python语言程序设计 第8章python计算生态...

    参考链接: Python | 接球比赛 第八章学习知识导图 考点主要是: 1) 基本的Python内置函数 2) 了解Python计算生态 3) 作者归纳:这章看一下基本概念,主要认真看一下代码和代码 ...

  6. Python北理工 第六章 组合数据类型

    Outline 集合类型及操作: 序列类型及操作: 实例9:基本统计值计算: 字典类型及操作: 模块5:jieba库的使用: 实例10:文本词频统计: 方法论:Python三种主流组合数据类型的使用方 ...

  7. JAVA语言程序设计第七章

    第七章:输入输出 7.1流式输入输出 两种基本流:InputStream(输入流), OutputStream(输出流) 根据流相对于程序的另一个端点不同可分两类: NodeStream(节点流/基层 ...

  8. c语言程序设计 第七章函数,《C语言程序设计》第七章随堂练习:自定义函数

    题目:创建一个C语言控制台程序,除了main函数外,自定义两个被调用的函数,并要求至少有一个函数包含有参数. 解答: 首先我们要了解,函数包含哪些组成结构,有四个部分,分别是:函数类型.函数名称.函数 ...

  9. 第七章 组合数据类型

    中文字符替换 获得用户输入的一个数字,替换其中 0~9 为中文字符"〇一二三四五六七八九",输出替换后结果.请完善代码.‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬ ...

最新文章

  1. V8 JavaScript引擎研究(三)垃圾回收器的实现
  2. SAP QM Quality Notification的凭证流
  3. python天气查询小程序加背景图_微信小程序开发背景图显示功能
  4. HashMap和LinkedHashMap的比较使用
  5. 暴力打表之hdu 2089
  6. python word
  7. GIL , 线程池 , 同步 , 异步 , 队列 , 事件
  8. css实现平角切角和弧形切角效果
  9. Java程序设计语言基础02:Java中的基本数据类型和运算符
  10. 分布式共识算法 (Consensus Algorithm)
  11. qt 增加的翻译没有作用上_Qt翻译文件使用方法
  12. linux pid t 头文件_Linux中 pid_t 类型的定义.
  13. python数据分析——pyecharts地图全解
  14. foxmail的邮局和端口_Foxmail客户端设置
  15. 电子宠物游戏(附C++源码)
  16. mysql chm 文档_最简单,最实用的数据库CHM文档生成工具——DBCHM
  17. 首涂[A020]第二十套模板最终版 苹果CMS V10
  18. 【运筹学】对偶理论 : 互补松弛性 ( 定理内容 | 定理证明 )
  19. Windows 10 WSL2 安装Linux Xfce图形界面
  20. UI设计教程分享:关于海报的合成过程

热门文章

  1. Vue的全局事件总线实现任意组件间通信
  2. notion函数_高效工作必备,手把手教你玩转 Notion 模板(附下载)
  3. 乖离水机器人攻略_乖离性百万亚瑟王幽蓝机器人卡牌推荐 超弩幽蓝机器人攻略...
  4. Lambda Expression
  5. IDEA快捷键汇总,很全,保证提高你的开发效率
  6. 走进Spring Cloud之二 eureka注册中心(Greenwich版本)
  7. IDEA碰到 非法的表达式开始 解决办法
  8. 服务器散热风扇的制作流程,散热风扇生产操作工艺--制作流程
  9. 这一年,半导体行业风云变幻
  10. 政府怎么应用视频直播系统?