Skip to content
This repository has been archived by the owner on Feb 8, 2023. It is now read-only.

Detach99/COMP110042Python-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Description:

This is the homework and project for course COMP110042 Python程序设计基础

homework directory:

Questions referring to basic knowledge of python language.

project directory:

project1:时间转换

时间转换:将时间间隔转换为天数, 小时和分钟数 程序完成如下功能:

  1. 提示并接收用户输入,假设用户输入的为正整数,不考虑用户输入有误的情形 请输入时间间隔(分钟):
  2. 将分钟转换为天数,小时和分钟数,提示采用求整商和求模运算符,可参考求模的应用中如何获得整数n的各位数字的例子;
  3. 输出相应的结果,考虑天数/小时/分钟数可能为0的情形,如果为0,则不输出相应的部分。提示可使用单分支结构的if语句,利用print函数的end参数。

编写程序,提交.py文件即可 下面给出了一些测试的例子:

请输入时间间隔(分钟): 35 35分钟

请输入时间间隔(分钟): 135 2小时15分钟

请输入时间间隔(分钟): 12345 8天13小时45分钟

请输入时间间隔(分钟): 120 2小时

请输入时间间隔(分钟): 2910 2天30分钟

project 2: 温度转换

  1. 首先定义并实现函数 c2f_temperature(),该函数有一个参数,摄氏度描述的温度celsius,返回采用华氏度描述的温度fahrenheit。 摄氏度转换到华氏度的公式为fahrenheit = (9 / 5) * celsius + 32

  2. 接下来完成下述步骤: a. 首先构造一个列表celsius_degrees,该列表包含了摄氏度描述的温度-20, -15, -10, ... ,30, 35, 40 b. 接下来根据步骤(a)构造的列表celsius_degrees以及上面定义的函数c2f_temerature,生成一个新的列表fahrenheit_degrees, 其元素为celsius_degrees的对应位置的摄氏度所对应的华氏度,即第一个元素为-20度对应的华氏度-4.0,第二个元素为-15度对应的5.0 c. 最后输出温度对应表,分成两列,每列右对齐,输出示例如下:

celsius fahrenheit -20 -4.0 -15 5.0 -10 14.0

project 3: 分数排名

具体要求请参见 project3.pdf project3.py project3_util.py

程序有如下功能: (提示:可以参考列表排序和切片部分的内容)

已知某个班级的某次考试的分数情况(没有排序),请编写程序 ,要求获得成绩排名前10名 和排名后10名的学生的分数,同时也要输出这次考试的平均成绩和中位数,平均成绩和中位数都保留到小数点后1位。

平均成绩的定义为 所有分数的和/班级人数 中位数的定义为 按照顺序排序成绩之后,最中间的一个学生或者两个学生的成绩的平均值。即当班级人数为奇数时,为中间位置的分数,班级人数为偶数时,为中间位置的两个分数的平均值 project3-util.py提供了两个函数,函数generate_exam_scores()会返回一个列表,给出随机生成的某个班的某次考试的分数情况,函数print_scores(scores)会输出scores里面给出的所有分数,每行5个。

project3.py已经给出了部分代码,某个班级的某次考试的学生成绩已经保存在列表exam_scores中,在此基础上完成相应的功能。

你应该将下载的projet3_util.py和project.py保存在同一个目录中,仅仅需要修改project3.py中的代码。

project 4:轮盘赌颜色

详细要求请参见project4.pdf

在轮盘赌游戏中,轮盘上均匀分布着37个pocket,每个pocket对应着编号从0开始到36的数字,这些pocket具有不同的颜色: 编号为0的pocket颜色为绿色。 编号1到编号10的pocket中,奇数编号的pocket为红色,而偶数编号的pocket为黑色。 编号11到编号18的pocket中,奇数编号的pocket为黑色,而偶数编号的pocket为红色。 编号19到编号28的pocket中,奇数编号的pocket为红色,而偶数编号的pocket为黑色。 编号29到编号36的pocket中,奇数编号的pocket为黑色,而偶数编号的pocket为红色。 编写程序,提示用户输入pocket编号,然后显示该pocket的颜色,如果用户输入了一个不在那37个编号中的数字,提示错误信息。暂时不考虑用户可能输入的不是整数的情形。要求采用多分支的选择结构(即if/elif/else)实现。

project 5: 计算e

计算自然对数的底数e的值,具体要求请下载project5.pdf

在求和过程中不允许调用math的阶乘函数,也不允许自己实现一个函数来单独计算阶乘,也就是求和和求每一项应该在同一个循环中实现。

提示:

注意观察比较相邻项之间的关系, 求和到什么时候结束?某项小于某个极小的值,比如10的-10次方 程序的输出应该类似这样: e = 2.71828182845823

project 6: 百鸡问题

请下载project6.pdf project6.py

今有鸡翁一,值钱伍;鸡母一,值钱三;鸡雏三,值钱一。凡百钱买鸡百只,问鸡翁、母、雏各几何? 出自《张邱建算经》

用一个列表保存所有解,最后再输出这些解。

求解部分用两种方法实现,第一种方法采用循环结构,第二种方法采用列表解析(推导)式实现。project6.py 给出了程序的框架,最终的输出如下所示。

提示:可参考循环结构中的鸡兔同笼问题

project 7: 生成成绩单

程序有如下功能:具体请参见 project7.pdf project7.py project7_util.py

首先随机产生一个班级的成绩单,然后按照学生ID的先后顺序打印成绩单,最后按照成绩排名的先后顺序打印成绩单。

project7_util.py提供了3个函数,get_id()、get_name()和get_score( )函数分别返回学生的ID、姓名和分数。project7.py已经有部分代码,还有三个函数的函数体需要进一步完善,它们是函数get_class_sheet()、print_class_sheet()和print_class_sheet_sorted(),请实现这些函数来完成相应的功能。你补充的代码应该添加在# your code here和pass之间。成绩单包含唯一标识学生的ID、姓名和期末考试成绩,要求采用字典来保存,该字典的key(类型为整数)是标识用户的身份的ID,而value为列表,包括了学生姓名和分数,比如 {285:['Stone', 99], 297:['Idle', 90]}

编写代码,保存成.py格式,作为作业附件上传。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published