This is the homework and project for course COMP110042 Python程序设计基础
Questions referring to basic knowledge of python language.
时间转换:将时间间隔转换为天数, 小时和分钟数 程序完成如下功能:
- 提示并接收用户输入,假设用户输入的为正整数,不考虑用户输入有误的情形 请输入时间间隔(分钟):
- 将分钟转换为天数,小时和分钟数,提示采用求整商和求模运算符,可参考求模的应用中如何获得整数n的各位数字的例子;
- 输出相应的结果,考虑天数/小时/分钟数可能为0的情形,如果为0,则不输出相应的部分。提示可使用单分支结构的if语句,利用print函数的end参数。
编写程序,提交.py文件即可 下面给出了一些测试的例子:
请输入时间间隔(分钟): 35 35分钟
请输入时间间隔(分钟): 135 2小时15分钟
请输入时间间隔(分钟): 12345 8天13小时45分钟
请输入时间间隔(分钟): 120 2小时
请输入时间间隔(分钟): 2910 2天30分钟
-
首先定义并实现函数 c2f_temperature(),该函数有一个参数,摄氏度描述的温度celsius,返回采用华氏度描述的温度fahrenheit。 摄氏度转换到华氏度的公式为fahrenheit = (9 / 5) * celsius + 32
-
接下来完成下述步骤: 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
具体要求请参见 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中的代码。
详细要求请参见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)实现。
计算自然对数的底数e的值,具体要求请下载project5.pdf
在求和过程中不允许调用math的阶乘函数,也不允许自己实现一个函数来单独计算阶乘,也就是求和和求每一项应该在同一个循环中实现。
提示:
注意观察比较相邻项之间的关系, 求和到什么时候结束?某项小于某个极小的值,比如10的-10次方 程序的输出应该类似这样: e = 2.71828182845823
请下载project6.pdf project6.py
今有鸡翁一,值钱伍;鸡母一,值钱三;鸡雏三,值钱一。凡百钱买鸡百只,问鸡翁、母、雏各几何? 出自《张邱建算经》
用一个列表保存所有解,最后再输出这些解。
求解部分用两种方法实现,第一种方法采用循环结构,第二种方法采用列表解析(推导)式实现。project6.py 给出了程序的框架,最终的输出如下所示。
提示:可参考循环结构中的鸡兔同笼问题
程序有如下功能:具体请参见 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格式,作为作业附件上传。