python投资分析实验报告_Python的实验报告怎么写?

这篇博客介绍了Python面向对象编程的实验,包括交通工具类的定义、继承和多态。同时,也探讨了函数式编程实验,涉及lambda表达式、map、filter、reduce等函数的使用,以及递归函数在斐波那契数列中的应用。
摘要由CSDN通过智能技术生成

以面向对象程序设计实验为例:

一、实验目的了解面向对象程序设计思想

了解对象、类、封装、继承、方法、构造函数和析构函数基本概念

掌握定义类、成员变量、成员函数、静态变量和静态方法

掌握通过类定义实现继承和多态的方法

掌握对象的创建和使用方法

二、实验内容(包括分析或步骤)

1. 定义类和使用类定义交通工具(Vehicle)类,定义两个成员变量:品牌(brand)、型号(type);定义构造函数,在其中通过静态变量方式设置品牌;

定义析构函数,在其中将交通工具对象的品牌和型号清空;

定义一个成员函数,在其中输出当前交通工具对象的品牌和型号;

定义一个类方法,在其中更新交通工具类的静态变量品牌和型号。

创建一个交通工具对象,设置其品牌为“audi”,型号为“A6”,然后通过对象调用其成员函数,输出其品牌和型号,销毁对象;

设置所有交通工具对象的品牌为“大众”,通过类方法,更新品牌为“奥迪”。

2. 类的继承和多态定义一个抽象类交通工具(Vehicle)类,定义一个抽象方法(drive);

定义2个子类汽车和飞机,在子类中实现抽象方法,输出不同交通工具的驾驶情况(如果是飞机,则输出机长名字、乘务员数量和乘客数量,如果是汽车,则输出驾驶员名字,汽车型号和行驶年数)。

定义一个函数,判断输入的对象是什么类型的,然后调用drive方法输出该交通工具信息。

四、实验实现

核心代码1:

class Vehicle():

"""def __init__(self):

self.brand

self.type"""

def __init__(self, brand, type):

self._brand = brand

self._type = type

def __del__(self):

print(self._brand, "is deleted")

self._brand = ''

# self._type = ''

def set_brand(this, brand):

this._brand = brand

def out(self):

return self._brand, self._type

def main():

v = Vehicle("audi", "A6")

print(v.out())

v.__del__()

v.set_brand('Volkswagen')

print(v.out())

v.set_brand('audi')

print(v.out())

if __name__ == '__main__':

main()

运行结果1:

核心代码2:

from abc import abstractmethod, ABCMeta

class Vehicle(metaclass=ABCMeta):

@abstractmethod

def drive(self):

pass

class Car(Vehicle):

def drive(self):

print("驾驶员:%s\n汽车型号:%s\n行驶年数:%d" % ('LZG', 'AE86', 3))

class Airplane(Vehicle):

def drive(self):

print("机长:%s\n乘务员数量:%d\n乘客数量:%d" % ('lzg', 15, 66))

def run(vehicle):

print(vehicle.__class__)

vehicle.drive()

def main():

v = [Car(), Airplane()]

m = map(run, v)

list(m)

if __name__ == '__main__':

main()

运行结果2:

实验二 函数式编程实验

一、实验目的了解什么是函数式编程

了解函数式编程的优点

掌握lambda表达式、map()函数、filter()函数、reduce()函数、zip()函数的使用方法;

掌握闭包和递归函数的设计

掌握迭代器和生成器的设计

二、实验内容(包括分析或步骤)

1. 使用lambda表达式定义函数定义函数完成z=x3+y/x3

定义函数完成z=x3+ x2+ x+1

2. 使用map()函数完成函数计算使用map()函数依次计算[2,4,6,8,10]和[1,3,5,7,9]的乘积;(举例:2*1,4*3…..)

编写一个判断字符串是否是回文联的函数,然后使用map()函数依次判断[“abbbabbba” ,“asababaSa”, “asffbaffssa”, “attbabtgba”]是否是回文联;

3. 使用reduce()函数完成函数计算使用reduce()函数计算[2,4,6,8,10]的乘积;

使用reduce()函数计算[2,-4,6,-2,10,-8,4,-2,5]中正数的乘积;

4. 使用filter()函数完成函数计算使用filter()函数将[‘have a apple’,’you are student’,’hello world’]中,包含2个以上a字符的字符串过滤掉。

5. 使用递归函数设计完成计算求第50位斐波纳契数列的值

楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,利用递归算法编写程序计算共有多少种不同的走法.

三、实验实现

核心代码:

from abc import abstractmethod, ABCMeta

class Vehicle(metaclass=ABCMeta):

@abstractmethod

def drive(self):

pass

class Car(Vehicle):

def drive(self):

print("驾驶员:%s\n汽车型号:%s\n行驶年数:%d" % ('LZG', 'AE86', 3))

class Airplane(Vehicle):

def drive(self):

print("机长:%s\n乘务员数量:%d\n乘客数量:%d" % ('lzg', 15, 66))

def run(vehicle):

print(vehicle.__class__)

vehicle.drive()

def main():

v = [Car(), Airplane()]

m = map(run, v)

list(m)

if __name__ == '__main__':

main()

运行结果:

推荐一些小白必听课:Python爬虫实战8天速成 验证码识别+数据解析+Scrapy框架+实战案例(2020全套)_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com【清华计算机博士】数据结构与算法基础(完整版)_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com【2021全新版】python零基础到精通7天速成(小白必看)_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值