Python实验——基本语法练习

实验项目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 math

key = 1 # 变量key代表循环运行程序的开关

def estimated_time(ProjectSize, Workers):
    time = (ProjectSize * 80)/Workers
    return time

def estimated_people(ProjectSize, time):
    Workers = math.ceil((ProjectSize * 80)/time)
    return Workers

def again(): # 询问是否继续的函数
    global key # 声明全局变量key,以便修改该变量
    a = input('是否继续计算?继续请输入y,输入其他任意键结束程序。')
    if a != 'y':
        key = 0


def 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封装了操作系统的底层接口,直接提供了文件读写相关的操作方法;文件读写不需要额外引入第三方库。

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值