实验项目1——工作量计算器

设计一个工作量计算器,基本需求如下:

功能:a)已知项目大小、工作人数、计算出需要多少工时才能完成;

b)或已知项目大小、总工时,计算要在这样的工时内完成,至少需要的人数。

已知信息:标准大小的项目,需要1个人用80个工时完成(既1人工作10天完成)

功能演示:a) 1.5倍标准大小的项目,一共有2个人>>>程序>>>需要60.0个工时。

b) 0.5倍标准大小的项目,需要在20个工时内完成>>>程序>>>需要2.0个人力。

V1.0 需要定义2个函数 estimated_time()计算工时 和 estimated_people()计算人力(需要注意:人力只能是整数,例如,计算出人力是10.1则可以取整为11。提示:可以使用math包里的向上取整函数)

V2.0 合并estimate_time()和estimate_people()函数,程序自动区分“计算工时”和“计算人力”

V3.0 需要给用户提示,例如,在控制台输出如下内容提示用户:

并且采用“子函数+主函数”的形式重新组织你的代码

代码如下:

#向上取整函数:math.ceil()
import mathkey = 1 # 变量key代表循环运行程序的开关def estimated_time(ProjectSize, Workers):time = (ProjectSize * 80)/Workersreturn timedef estimated_people(ProjectSize, time):Workers = math.ceil((ProjectSize * 80)/time)return Workersdef again(): # 询问是否继续的函数global key # 声明全局变量key,以便修改该变量a = input('是否继续计算?继续请输入y,输入其他任意键结束程序。')if a != 'y':key = 0def main():while key == 1:flag = int(input("请选择计算类型:(1-人力计算,2-工时计算)"))if flag == 1:p = float(input("请输入项目大小:(1代表标准大小,可以输入小数)"))t = float(input("请输入总工时:(可以输入小数)"))w = estimated_people(p,t)print('项目大小为{}个标准项目,使用{}个工时完成,则需要人力数量为:{}个'.format(p, t, w))elif flag == 2:p = float(input("请输入项目大小:(1代表标准大小,可以输入小数)"))w = int(input("请输入人力数量:(请输入整数)"))t = estimated_time(p,w)print('项目大小为{}个标准项目,使用{}个人力完成,则需要工时数量为:{:.1f}个'.format(p, w, t))else:print("请输入正确的数字选项!")again()main()

知识点:

1.需要掌握如何构造函数以及调用函数;

2.input从键盘获取的是字符型数据,想要获取整型或者浮点型数据需要在input之前再加上int、float;

3.在输出语句中调用变量,大致格式为print('{}'.format()),‘{}‘是占位符。需要注意的是,如果想要对变量指定保留的小数点位数,可以使用":",在其后面跟上".nf"(n为需要保留的位数)。

实验项目2——Robot

定义个名字叫Robot的类,让它具备以下功能:

一是会让你给ta 起名,也会问你的名字,然后跟你打招呼(如“你好,老弟。我是AlphaGo。遇见你,真好。”);要求用构造函数实现

二是会让你说一个愿望,然后帮你重复三次(因为 ta 觉得重要)。类方法名为say_wish()

实现效果如下图:

代码如下:

class Robot:def __init__(self): # 用于初始化类self.name = input('我现在刚诞生,还没有名字,帮我起一个吧。')self.master = input('对了,我要怎么称呼你呢?')print('你好{},我叫{}。很开心,遇见你~'.format(self.name,self.master))def wish(self):wish = input('告诉一个你的愿望吧:')print('{}的愿望是:'.format(self.master))for i in range(3): # 打印三次‘wish’print(wish)robot = Robot() # 进行实例化
robot.wish()

知识点:

1.了解魔术方法:所有以下划线“__”包起来的方法,都统称为“魔术方法”。这些方法在实例化时会自动调用。此处使用的是“__init__()”方法,一般叫做构造函数,用于初始化类的内部状态和参数;

2.range()函数:用于生成一个整数序列。

实验项目3——文件的读写

通过文件读写命令,读取 photo1 里的数据。如下图,可以点击右键另存为photo1。然后,新建名为“photo2”的图片(在同一个文件夹),写入读到的数据,完成了图片的复制。

代码如下:

#with open('photo1.jpg', 'rb') as f1:#data = f1.read()
#with open('photo2.jpg', 'wb') as f2:#f2.write(data)
f1 = open('photo1.jpg', 'rb')
data = f1.read()
f2 = open('photo2.jpg', 'wb')
f2.write(data)
f2.close()
f1.close()

知识点:

因为Python封装了操作系统的底层接口,直接提供了文件读写相关的操作方法;文件读写不需要额外引入第三方库。

另外需要注意的是,待操作文件需要和代码文件在同一文件夹下。

Python实验——基本语法练习相关推荐

  1. python控制结构实验结果分析_实验1_Python语法及控制结构

    课程名称 Python 程序设计 课程类型 必修课 实验名称 Python 语法及程序控制结构 实验目的: 1. 掌握 Python 基本的语法和数据类型: 2. 掌握函数定义及调用方法: 3. 掌握 ...

  2. python实验二报告_20172304 2019-2020-2 《Python程序设计》实验二报告

    20172304 2019-2020-2 <Python程序设计>实验二报告 课程:<Python程序设计> 班级: 1723 姓名: 段志轩 学号:20172304 实验教师 ...

  3. 一文掌握Python集合的语法与应用

    6.1  基本概念 Python语言中的集合是无序的.可变的容器类对象,所有元素放在一对大括号中,元素之间使用逗号分隔,同一个集合内的每个元素都是唯一的,不允许重复. 集合中只能包含数字.字符串.元组 ...

  4. Python实验报告

    本实验报告中图片上传不成功,所以未上传实验图片,请自行运行代码上传. 实 验 报 告 册 课        程        Python程序设计        批阅教师签名     学    院  ...

  5. Python实验,用pygame做飞机大战游戏设计

    飞机大战游戏设计 摘 要:根据课程要求,以及面向对象程序设计的编程思想,在Windows操作系统环境下,运用PyCharm编译程序,以Python语言为开发语言,最终实现飞机大战游戏相应的游戏操作功能 ...

  6. Python 实验3 复杂数据类型

    [实验目的] 巩固掌握Python流程控制语法: 掌握字符串.元组.列表.字典等类型特点: 掌握元素添加.删除.查找等操作 [实验内容] 完成以下程序编写要求并测试: 1. 已知一个字符串中包含了许多 ...

  7. python实验指导书燕山大学答案_Python实验指导书课件.doc

    Python实验指导书 马 川 燕山大学计算机教学实验中心 2017.5 目录 目录 实验一: PYTHON 程序设计之初窥门径 ................................... ...

  8. python实验指导书_Python实验指导书

    Python实验指导书 Python实验指导书 马 川 燕山大学计算机教学实验中心 2017.5 目录 实验一:Python程序设计之初窥门径2 实验二:Python程序设计之结构与复用7 实验三:P ...

  9. python实验课_#012python实验课

    基础语法混乱 这是,在进行周四实验课程的时候,一直遇到的一个问题.写着写着,就往C语言的语法方向跑了,可以说之前我仅仅是对,python这种语言有着简单的了解,再加上一直在学习C语言所以很少投入时间, ...

最新文章

  1. FPGA(4)晶振与计数器 -- 实现定时器(led定时闪烁、蜂鸣器频率控制(单响)、蜂鸣器报警(频带控制,多响))
  2. SQLServer2000 数据库恢复模型详解
  3. (0007) iOS 开发之Xcode8上传AppStore遇到的TencentOpenApi_IOS_Bundle.bundle
  4. css订单导航栏横线动画,小程序 纯css 实现tab导航栏下划线跟随动画
  5. zendStudio|Eclipse 相关收藏
  6. jQuery源码 Ajax模块分析
  7. python第三方库文件传输助手_python实现文件助手中查看微信撤回消息
  8. linux内核响应,读书笔记——Linux内核源代码情景分析——3.4  中断的响应和服务...
  9. 一定要树立真的猛的期刊,只需要发一篇的思路
  10. java中浮点数的表示_java 浮点数表示法
  11. 在Asp.net core 项目中操作Mysql数据库
  12. 「前端组件化」该怎么理解?
  13. 【6.19日云享专家技术公开课】从零开始快速搞定扫码付款
  14. 【vscode】vscode + vue项目实战记录
  15. python实现按照给定范围随机生成小数,偶数,奇数,整数,正态分布,均匀分布数据以及图片
  16. 个人信息安全管理条例解释
  17. 华为matebook键盘失灵
  18. 0804Python总结-单继承,多继承,菱形继承,__init__魔术方法(构造方法)
  19. Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateInputException
  20. 大型医院信息系统HIS源码 HIS系统全套源码

热门文章

  1. python在大学开设专业叫什么_“人工智能”在大学里是什么学科或专业?
  2. 用最普通的文档,我做了一个小助手,没有一行代码
  3. 01背包入门:HDU 3466 Proud Merchants
  4. POLYV上传客户端实现批量上传视频功能的介绍
  5. el-table 自定义表头el-checkbox,实现全选、单选
  6. JAVA根据短链接获取真实链接
  7. Matlab中rot90函数用法
  8. 如何获得树莓派CPU实时温度值
  9. gwas之一年两点blup值以及遗传力的计算
  10. 北极星指标是什么?有什么价值?