当前位置: 首页 > article >正文

python之面向对象练习题(七)

      • 1、 该程序中有类:Lader、Circle,具体要求如下:
      • 2、按要求编写程序。
      • 3、按要求编程序。
      • 4、编写应用程序
      • 5、创建一个Point类,有属性x,y,方法getX(),setX(),还有一个构造方法初始化x和y。创建对象测试它
      • 6、编写一个类A,该类创建的对象可以调用方法f输出小写的英文字母表。
      • 7、按要求编写一个应用程序:
      • 8、要求编写一个应用程序:

1、 该程序中有类:Lader、Circle,具体要求如下:

Lader类具有上底、下底、高、面积属性,具有返回面积的功能,构造方法对上底、下底、高进行初始化。
Circle类具半径、周长和面积属性,具有返回周长、面积的功能,构造方法对半径进行初始化

class Lader:
    def __init__(self, upper, lower, high):
        self.upper = upper
        self.lower = lower
        self.high = high
    def square(self):
        s = (self.upper + self.lower) * self.high / 2
        return s
l = Lader(1, 2, 3)
print(l.square())
class Circle:
    def __init__(self, r):
        self.r = r
    def zc(self):
        c = 2 * 3.14 * self.r
        return c
    def square(self):
        s = 3.14 * pow(self.r, 2)
        return s
c = Circle(1)
print(c.zc())
print(c.square())

运行结果:
4.5
6.28
3.14

2、按要求编写程序。

(1)建立一个名叫Cat的类:
属性:姓名、毛色、年龄
行为:显示姓名、喊叫
(2)创建一个对象猫,姓名为“妮妮”,毛色为“灰色”,年龄为2岁,在屏幕上输
出该对象的毛色和年龄,让该对象调用显示姓名和喊叫两个方法。

class Cat:
    def __init__(self, name, color, age):  # 对属性进行初始化
        self.name = name
        self.color = color
        self.age = age
    # 显示姓名的函数
    def showName(self):
        print('姓名:', self.name)
    # 显示叫喊的函数
    def showJh(self):
        print('喵喵喵...')
c = Cat('妮妮', '灰色', 2)
print(c.color, c.age)
c.showName()
c.showJh()

运行结果:
灰色 2
姓名: 妮妮
喵喵喵...

3、按要求编程序。

(1)创建一个叫做People的类:
属性:姓名、年龄、性别、身高
行为:说话、计算加法、改名
编写能为所有属性赋值的构造方法;
(2)创建一个对象:名叫“张三”,性别“男”,年龄18岁,身高1.80;
让该对象调用成员方法:
说出“你好!”
计算23+45的值
将名字改为“李四”

class People:
    def __init__(self, name, age, sex, high):
        self.name = name
        self.age = age
        self.sex = sex
        self.high = high
    def speak(self):
        print('你好!')
    def addSum(self, a, b):
        return a + b
    def reName(self, name):
        self.name = name
zs = People('张三', 18, '男', 1.8)
zs.speak()
print(zs.addSum(23, 45))
zs.reName('李四')
print(zs.name)

运行结果:
你好!
68
李四

4、编写应用程序

首先,定义描述学生的类——Student,包括学号、姓名、年龄等属性;outPut()用于输出学生信息。
创建多个Student类的对象,使用这些对象来测试Student类的功能。

class Student:
    # 构造方法,实现对属性的初始化
    def __init__(self, sno, sname, sage):
        self.sno = sno
        self.sname = sname
        self.sage = sage
    def outPut(self):
        return f'学生学号:{self.sno}, 学生姓名:{self.sname}, 学生年龄:{self.sage}'
z = Student(1, '张三', 17)
print(z.outPut())
l = Student(2, '李四', 18)
print(l.outPut())

运行结果:
学生学号:1, 学生姓名:张三, 学生年龄:17
学生学号:2, 学生姓名:李四, 学生年龄:18

5、创建一个Point类,有属性x,y,方法getX(),setX(),还有一个构造方法初始化x和y。创建对象测试它

class Point:
    def __init__(self, x, y):
        self.__x = x
        self.y = y
    def getX(self):
        return self.__x
    def setX(self, x):
        if x > 0:
            self.__x = x
        else:
            self.__x = 0
p = Point(1, 2)
print(p.getX())
print(p.y)

运行结果:
1
2

6、编写一个类A,该类创建的对象可以调用方法f输出小写的英文字母表。

然后再编写一个A类的子类B,子类B创建的对象不仅可以调用方法f输出小写的英文字母表,而且可以调用子类新增的方法g输出大写的英文字母表。测试类A与类B

class A:
    def f(self):
        for i in range(ord('a'), ord('z')+1):
            print(chr(i), end=' ')
        print()
class B(A):
    def g(self):
        for i in range(ord('a'), ord('z')+1):
            print(chr(i).upper(), end=' ')
        # for i in range(ord('A'), ord('Z')+1):
        #     print(chr(i), end=' ')
b = B()
b.f()
b.g()

运行结果:
a b c d e f g h i j k l m n o p q r s t u v w x y z 
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 

7、按要求编写一个应用程序:

(1)定义一个类,描述一个矩形,包含有长、宽两种属性和计算面积方法。
(2)编写一个类,继承自矩形类,同时该类描述长方体,具有长、宽、高属性和计算体积的方法。
(3)创建一个长方体,定义其长、宽、高,输出其面积和体积

class A:
    def __init__(self, c, k):
        self.c = c
        self.k = k
    def s(self):
        return self.c * self.k
class B(A):
    def g(self, h):
        return self.c * self.k * h
c = B(1, 2)
print(c.s())
print(c.g(3))

运行结果:
2
6

8、要求编写一个应用程序:

定义类Circle(圆),属性有半径,构造方法可以为属性初始化,返回圆的面积
定义类Cylinder(圆柱),属性有半径,高;返回圆柱的体积

class Circle:
    def __init__(self, r):
        self.r = r
    def s(self):
        return 3.14 * pow(self.r, 2)
class Cylinder(Circle):
    def t(self, h):
        return 3.14 * pow(self.r, 2) * h
c = Cylinder(1)
print(c.s())
print(c.t(1))

运行结果:
3.14
3.14

http://www.kler.cn/a/15873.html

相关文章:

  • Ubuntu安装ollama,并运行ollama和通义千问,使用gradio做界面
  • python:用 sklearn 构建 K-Means 聚类模型
  • (一)Ubuntu20.04服务器端部署Stable-Diffusion-webui AI绘画环境
  • 大模型基础BERT——Transformers的双向编码器表示
  • HarmonyOS 开发环境搭建
  • CC6学习记录
  • 芯片封装基本流程及失效分析处理方法
  • 通知所有员工所需的时间
  • 【Android -- 开源库】数据库 Realm 的基本使用
  • Mysql数据库的备份恢复
  • 赞!数字中国建设峰会上的金仓风采
  • ubuntu22安装redis7.0
  • 使用 ESP32 设计智能手表第 2 部分 - 环境光和心率传感器
  • 算法套路十四——动态规划之背包问题:01背包、完全背包及各种变形
  • linux_线程锁mutex(互斥量)_线程同步_死锁现象_pthread_mutex_lock函数_pthread_mutex_unlock函数_死锁现象
  • 操作系统之内存管理
  • 把字符串转换成整数
  • Python使用AI photo2cartoon制作属于你的漫画头像
  • Nautilus Chain 测试网第二阶段,推出忠诚度计划及广泛空投
  • 怎样解决高并发下的I/O瓶颈?
  • AI失业潮来袭,某些部门裁员过半
  • LeetCode_回溯_中等_93.复原 IP 地址
  • 使用 ESP32 设计智能手表第 3 部分 - 磁力计和陀螺仪
  • mysql中int、bigint、smallint 和 tinyint的区别详细介绍
  • 【网络编程】网络基础
  • 人工智能之配置环境教程二:在Anaconda中创建虚拟环境安装GPU版本的Pytorch及torchvision并在VsCode中使用虚拟环境