【Python习题集3】常用数据结构习题

news2024/11/14 19:31:38

数据结构

  • 一、实验内容
  • 二、实验总结

一、实验内容

1.从键盘输入一个正整数列表,以-1结束,分别计算列表中奇数和偶数的和。
(1)源代码

n = int(input("请输入一个正整数:"))
list3 = []
while n != -1:
    list3.append(n)
    n = int(input("请输入一个正整数:"))
else:
    print("输入结束")
print(list3)
list1 = []
list2 = []
for i in list3:
    if i % 2 != 0 :
        list1.append(i)
    else:
        list2.append(i)
print("列表1中的奇书和为:",list1,sum(list1))
print("列表中的偶数和为:",list2,sum(list2))

(2)运行结果截图
在这里插入图片描述
2.已知10个学生的成绩为68,75,32,99,78,45,88,72,83,78,请将成绩存放在列表中,请对其进行统计,输出优(100-90),良(89-80),中(79-60),差(59-0)4个等级的人数
(1)源代码

grade = int(input("请输入学生成绩:"))
list_grade = []
while grade > 0:
    list_grade.append(grade)
    grade = int(input("请输入学生成绩:"))
else:
    print("成绩输入结束,现在开始统计和输出。")
print("总成绩列表为:",list_grade)
list1=[]
list2=[]
list3=[]
list4=[]
for i in list_grade:
    if i >=90:
        list1.append(i)
    elif i>=80:
        list2.append(i)
    elif i>=60:
        list3.append(i)
    else:
        list4.append(i)
print("优:",len(list1),  "良:",len(list2),"中:",len(list3),"差:",len(list4))

(2)运行结果截图
在这里插入图片描述

3.利用while循环创建一个包含10个奇数的列表,如果输入的不是奇数要给出提示信息并能继续输入,然后计算该列表的和与平均值
(1)源代码

n = int(input("请输入奇数:"))
list1=[]
while len(list1) < 10:
    if n %2 != 0:
        list1.append(n)
    else:
        print("输入错误,请重新输入。")
    n = int(input("请输入奇数:"))
print("列表的和为:",sum(list1),"列表的平均值为:",sum(list1)/len(list1),list1)

(2)运行结果截图
在这里插入图片描述

4.请用字典编程,已知某班学生的姓名和成绩如下:
在这里插入图片描述

输出这个班的学生姓名和成绩,并求出全班同学的人数和平均分显示。
(1)源代码

name_grade = {"张三":45,"李四":78,"徐来":40,"沙思思":96,"如一":65,
              "司音":90,"赵敏":78,"张旭宁":99,"柏龙":60,"思琪":87}
list1 = list[name_grade.values()]
print(list1)
for key in name_grade.keys():
    print(key,name_grade[key])
n = len(name_grade)
avgscore = sum(name_grade.values()) / n
print("全班共有",n,"人,平均成绩为:",avgscore,"分。")

(2)运行结果截图
在这里插入图片描述
5.某家商店根据客户消费总额的不同将客户分为不同的类型。如果消费总额大于等于10万元,为铂金卡客户(platinum);如果消费总额大于等于5万元且小于10万元,为金卡客户(gold);如果消费总额大于等于3万元且小于5万元,为银卡客户(silver);如果消费总额小于3万元,为普卡客户(ordinary)。现有一批顾客的消费金额(单位:万元)分别为2.3,4.5,24,17,1,7,8,39,21,0.5,1.2,4,1,0.3,将消费金额存储在列表list1中,输出一个字典,分别以platinum,gold,silver,ordinary为键,以各客户类型人数为值。
(1)源代码

amount = float(input("请输入客户消费总额:"))
list_platinum = []
list_gold = []
list_silver = []
list_ordinary = []
while amount >= 0:
    if amount >= 10:
        list_platinum.append(amount)
    elif amount >= 5:
        list_gold.append(amount)
    elif amount >= 3:
        list_silver.append(amount)
    else:
        list_ordinary.append(amount)
    amount = float(input("请输入客户消费总额:"))
else:
    print("输入结束,统计数据。")
list1 = list_gold+list_silver+list_ordinary+list_platinum
amount1 = {"platinum":len(list_platinum),"gold":len(list_gold),"silver":len(list_silver),"ordinary":len(list_ordinary)}
print(amount1)

(2)运行结果截图
在这里插入图片描述

6.某企业为职工发放奖金:如果入职超过5年,且销售业绩超过15000元的员工,奖金比例为0.2;销售业绩超过10000元的员工,奖金比例为0.15;销售业绩超过5000元的员工,奖金比例为0.1;其他奖金比例为0.005.如果是入职不超过5入职不超过5年,且销售业绩超过4000的员工,奖金比例为0.045;否则为0.01。输入入职年限、销售业绩,输出奖金比例、奖金,并将奖金存放到列表中并输出该列表。入职年限(为整数)输入-1的时候结束输入,为了简化所有输入均假定正确,不需判断小于0的情况。奖金为销售业绩与奖金比例的乘积。
(1)源代码

years = int(input("请输入入职年限为:"))
while years >= 0:
    while years >= 5:
        num = float(input("请输入销售业绩为:"))
        if num > 15000:
            coff = 0.2
        elif num > 10000:
            coff = 0.15
        elif num > 5000:
            coff = 0.1
        else:
            coff = 0.05
        award = float(coff) * num
        print("奖金为:", award)
        years = int(input("请输入入职年限为:"))
        num = float(input("请输入销售业绩为:"))
    else:
        if num <= 4000:
            coff = 0.01
        else:
            coff = 0.045
        award = float(coff) * num
        print("奖金为:", award)
        years = int(input("请输入入职年限为:"))
        num = float(input("请输入销售业绩为:"))
else:
    print("结束输入。")

(2)运行结果截图
在这里插入图片描述

7.输入5个整数放到列表list1中,输出下标及值,然后将列表list1中大于平均值的元素组成一个新列表list2,输出平均值和列表list2。请利用列表推导式解决该问题。
(1)源代码

print("请输入五个整数")
list1 = []
for i in range(5):
    n = int(input("请输入第"+str(i+1)+"个:"))
    list1.append(n)
avg = sum(list1)/len(list1)
list2 = [i for i in list1 if i > avg]
print("平均值为:",avg,"list2为:",list2)

(2)运行结果截图
在这里插入图片描述

8.编写程序,将由1、2、3、4这4个数字组成的每位数都不相同的所有三位数存入一个列表中并输出该列表。请利用列表推导式解决该问题。
(1)源代码

a = [1,2,3,4]
b = [i*100 + j*10 + x for i in a for j in a for x in a if i!= j and i!= x and j!= x ]
print(b)

(2)运行结果截图
在这里插入图片描述

9.编写程序,给定列表[1,9,8,7,6,5,13,3,2,1],先输出原列表,删除其中所有奇数后再输出。请利用列表推导式解决该问题。
(1)源代码

a = [1,9,8,7,6,5,13,3,2,1]
b = [i for i in a if i %2 == 0]
print(b)

(2)运行结果截图
在这里插入图片描述

10.百钱买百鸡:一只公鸡5元钱,一只母鸡3元钱,三只小鸡1元钱,现在要用100元钱买100只鸡,问公鸡、母鸡、小鸡各多少只?请利用列表推导式解决该问题。
(1)源代码

list1 = [(a,b,c) for a in range(0,21) for b in range(0,34) for c in range(0,34) if 5*a + 3*b + c ==100 and a + b + 3*c ==100]
print(list1)

(2)运行结果截图

在这里插入图片描述

二、实验总结

(1)掌握python程序的书写规则;
(2)掌握赋值语句的基本格式及执行规则;
(3)掌握常用数据结构程序的设计方法。
其他(感悟、思考等)
我们要明确一点,学习编程不是一日之功,需要每天投入时间学习,也不可纸上谈兵,需要自己亲自操作,不动手就不会发现问题,动了手印象才会深刻,记得更靠。经过这次实验,我收获了很多,一方面学习到了许多以前没学过的专业知识与知识的应用,另一方面还提高了自我动手做项目的本事。在实验中我学到了许多新的知识。是一个让我把书本上的理论知识运用于实践中的好机会,原先,学的时候感叹学的资料太难懂,此刻想来,有些其实并不难,关键在于理解。在这次实验中还锻炼了我其他方面的本事,提高了我的综合素质。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/488843.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【云原生|Kubernetes】02-Kubeadm安装部署Kubernetes集群

【云原生|Kubernetes】02-Kubeadm安装部署Kubernetes集群 文章目录 【云原生|Kubernetes】02-Kubeadm安装部署Kubernetes集群前言环境介绍安装kubernetes集群基础环境设置安装Kubernetes集群安装kubeadm&#xff0c;kubectl&#xff0c;kubeletkubeadm初始化集群(master节点操作…

C语言-学习之路-05

C语言-学习之路-05 函数函数分类函数的作用 函数的定义函数定义格式 函数名字、形参、函数体、返回值函数调用无参函数调用有参函数调用 函数的声明多文件&#xff08;分文件&#xff09;编程分文件编程 函数 函数分类 C语言程序都是从主函数main()开始执行的。从函数的定义角…

259页11万字智慧水利建设项目解决方案

本资料来源公开网络&#xff0c;仅供个人学习&#xff0c;请勿商用&#xff0c;如有侵权请联系删除。 1.1.1 项目建设任务 依托省政务云平台&#xff1b;建立水利专业数据的汇集、共享、交换和水利数据库、数据仓库、数据资源目录与大数据服务等&#xff1b;建立水利大数据分…

OpenGL(五)——变换

目录 一、前言 二、向量 三、矩阵 四、旋转的箱子 4.1 GLM库 4.2 构建 一、前言 前面了解渲染架构中uniform可以传递矩阵变换&#xff0c;如从RGBA到YUV&#xff0c;同时它也可以使物体通过矩阵变换动起来。 二、向量 向量是包含方向和大小的矢量&#xff0c;平面2D坐标可…

一文吃透Tomcat核心知识点

架构 首先&#xff0c;看一下整个架构图。最全面的Java面试网站 接下来简单解释一下。 Server&#xff1a;服务器。Tomcat 就是一个 Server 服务器。 Service&#xff1a;在服务器中可以有多个 Service&#xff0c;只不过在我们常用的这套 Catalina 容器的Tomcat 中只包含一…

在技术圈超卷的当下,学历到底是敲门砖还是枷锁?

前言 最近&#xff0c;突然之间被“孔乙己文学”刷屏了&#xff0c;短时间内“孔乙己文学”迅速走红&#xff0c;孔乙己是中国文学中的一位经典人物&#xff0c;他的长衫被认为是他的象征之一&#xff0c;孔乙己的长衫折射出很多现象&#xff0c;既有社会的&#xff0c;也有教育…

【Linux】进程信号及信号产生

文章目录 一. 生活层面的信号二. 进程信号三. 硬件中断四. 信号产生五. Term&Core1. 核心转储的意义2. 云服务器为什么关闭核心转储3. core dump标志 六. 总结结束语 一. 生活层面的信号 在学习进程信号前&#xff0c;我们不妨认识一下现实中有哪些信号。 日常生活中&#…

净利润下滑13%,帅丰电器已掉队?

近年来&#xff0c;随着市场竞争加剧&#xff0c;厨电行业加速洗牌&#xff0c;超60%杂牌或被淘汰出局&#xff0c;三类品牌全部被清退。而作为毛利最高的厨电细分市场&#xff0c;集成灶行业吸引了大批企业涌入&#xff0c;市场渗透率快速提升&#xff0c;已经超过30%&#xf…

如何入门数据分析

如何入门数据分析&#xff1f; 随着数字经济、大数据时代的发展&#xff0c;数据已然成为当下时代最重要的盈利资源&#xff0c;让企业在做决策和计划方案时更有针对性和依据&#xff0c;能提前预测市场发展方向&#xff0c;做好布局。由此而产生的数据分析岗位也逐渐被更多企业…

亚马逊、Lazada、阿里国际、eBay、Temu、Ozon好消息不断,机会来了

1. 亚马逊第一季度营收1273.58亿美元 同比扭亏为盈 亚马逊2023财年第一季度财报。亚马逊第一季度净销售额为1273.58亿美元&#xff0c;与上年同期的1164.44亿美元相比增长9%&#xff0c;不计入汇率变动的影响为同比增长11%&#xff1b;净利润为31.72亿美元&#xff0c;上年同期…

“智慧交通”转型升级+创新发展策略

随着“互联网交通”的应用创新推陈出新&#xff0c;传统轨道交通行业客户服务中心已难以满足乘客对便捷高效的客户服务需求&#xff1b;节假日人流量激增&#xff0c;客户服务人手不足&#xff0c;交通、站点堵塞、信息更新不及时等问题是常态。因此&#xff0c;“智慧城市”交…

多租户SAAS系统涉及实战解决方案—案例JeecgBoot低代码平台

JeecgBoot免费低代码平台&#xff0c;提供一键切换多租户模式机制&#xff01;快速实现全系统的saas租户方案&#xff0c;通过租户ID进行数据隔离。 租户设计思路 1、开启全系统租户隔离 开启方法 将 org.jeecg.config.mybatis.MybatisPlusSaasConfig#OPEN_SYSTEM_TENANT_CO…

为什么是三次握手和四次挥手

文章目录 为什么是三次握手为什么是四次挥手什么是TIME_WAIT状态解决TIME_WAIT状态引起的bind失败的方法 为什么是三次握手 因为这是双方都有收发的最小次数 握手的目的&#xff1a;确认网络好着没&#xff0c;对方好着没 确认双方主机是否健康&#xff08;双方&#xff09;…

美国访问学者访问J1签证和商务B1签证的区别

美国校方通常希望他国的访问学者申请访问类签证&#xff08;J1&#xff09;&#xff0c;当然也有很少一部分人以商务签证&#xff08;B1&#xff09;的身份入境&#xff0c;知识人网小编就这两种签证的区别做一下简单介绍。 交流访问学者签证&#xff08;J1&#xff09;旨在促进…

UG NX二次开发(C++)-建模-利用UF_CURVE_ask_line_data()获取直线的矢量

文章目录 1、前言2、总体思路3、代码实现3.1 在视图区选择对象3.2 将选择对象转换为直线对象3.3创建获取直线矢量的函数 4、测试效果 1、前言 选择一条直线&#xff0c;获取直线的矢量方向&#xff0c;采用的是获取直线的数据&#xff0c;并根据直线的首末端点计算矢量方向&am…

【TCP/IP 网络模型】

TCP/IP 网络模型 OSI七层模型、TIP/IP四层模型 OSI七层模型 应用层&#xff0c;负责给应用程序提供统一的接口&#xff1b; 表示层&#xff0c;负责把数据转换成兼容另一个系统能识别的格式&#xff1b; 会话层&#xff0c;负责建立、管理和终止表示层实体之间的通信会话&…

Java基础(十五)集合框架

1. 集合框架概述 1.1 生活中的容器 1.2 数组的特点与弊端 一方面&#xff0c;面向对象语言对事物的体现都是以对象的形式&#xff0c;为了方便对多个对象的操作&#xff0c;就要对对象进行存储。另一方面&#xff0c;使用数组存储对象方面具有一些弊端&#xff0c;而Java 集合…

研报精选230504

目录 【行业230504国联证券】食饮农业2022年报与1Q23季报总结&#xff1a;食饮业绩稳步改善&#xff0c;农业低猪价推动去产能 【行业230504中邮证券】美护行业22年&23Q1财报总结&#xff1a;龙头逆境彰显韧性&#xff0c;期待Q2行业加速 【行业230504安信证券】交通运输行…

3. 内存分区模型

一、内存分区模型 C程序在执行时&#xff0c;将内存大方向划分为4个区域 代码区&#xff1a;存放函数体的二进制代码&#xff0c;由操作系统进行管理的全局区&#xff1a;存放全局变量和静态变量以及常量栈区&#xff1a;由编译器自动分配释放&#xff0c;存放函数的参数值&a…

AI落地:程序员如何用AI?

对于程序员来说&#xff0c;真正能提高效率、可落地的AI应用场景都有哪些&#xff1f; 目前已经能切实落地&#xff0c;融入我日常工作生活的有以下几个场景&#xff1a; 开发工作&#xff1a;自然语言生成代码&#xff0c;自动补全代码 日常工作学习&#xff1a;写作、翻译、…