《python程序设计教程》第8章 类与对象 习题8答案

本文展示了如何使用Python设计Circle类计算圆的面积和周长,Account类进行银行账户操作,以及创建Timer类显示当前时间。通过实例演示了各个类的功能,包括存款、取款、计算月利率和月息等操作。
摘要由CSDN通过智能技术生成

1.设计一个Circle类来表示圆,这个类包含圆的半径以及求面积和周长的函数。在使用这个类创建半径为1~10的圆,并计算出相应的面积和周长。

半径为1的圆,面积: 3.14 周长: 6.28

半径为2的圆,面积: 12.57 周长: 12.57

半径为3的圆,面积: 28.27 周长: 18.85

半径为4的圆,面积: 50.27 周长: 25.13

半径为5的圆,面积: 78.54 周长: 31.42

半径为6的圆,面积: 113.10 周长: 37.70

半径为7的圆,面积: 153.94 周长: 43.98

半径为8的圆,面积: 201.06 周长: 50.27

半径为9的圆,面积: 254.47 周长: 56.55

半径为10的圆,面积: 314.16 周长:62.83

import math

class Circle:
    def __init__(self, r):
        self.radius = r

    def getArea(self):
        return math.pi * self.radius ** 2

    def getPerimeter(self):
        return 2 * math.pi * self.radius


for i in range(1, 11):
    t1 = Circle(i)
    print("半径为", t1.radius, "的圆,面积:", "%5.2f" % t1.getArea(), "周长:", "%5.2f" % t1.getPerimeter())

2.阅读下列程序,写出运行结果,并说明理由。

def fun(x,L=[9]):
    x=3
    L.append(8)
    print("inside fun,x,L:",x,L)
    
x=5
L=[4,1]
fun(x)
print("x,L:",x,L)
fun(x,L)
print("x,L:",x,L)

运行结果:

inside fun,x,L: 3 [9, 8]
x,L: 5 [4, 1]
inside fun,x,L: 3 [4, 1, 8]
x,L: 5 [4, 1, 8]

3.设计一个Account类表示账户,自行设计该类中的属性和方法,并利用这个类创建一个账号为998866,余额为2000,年利率为4.5%的账户,然后从该账户中存入150,取出1500。打印出账号,余额,年利率,月利率,月息。

class Account(object):
    def __init__(self, countid, money, year_Rate):
        self.__countid = countid
        self.__money = money
        self.__year_Rate = year_Rate

    def month_Rate(self):
        return self.getyear_Rate() / 1200.0

    def month_Interest(self):
        return self.getmoney() * self.month_Rate()

    def withdraw(self, x):
        self.__money = self.getmoney() - x

    def deposit(self, x):
        self.__money = self.getmoney() + x

    def getcountid(self):
        return self.__countid

    def getmoney(self):
        return self.__money

    def getyear_Rate(self):
        return self.__year_Rate

    def setyear_Rate(self, year_Rate):
        self.__year_Rate = year_Rate

year_Rate = 4.5
countid = "998866"
money = 2000
count1 = Account(countid, money, year_Rate)
count1.deposit(150)
count1.withdraw(1500)
print("账号:", count1.getcountid())
print("余额:", count1.getmoney())
print("年利率:", str(count1.getyear_Rate()) + "%")
print("月利率:", str(count1.month_Rate() * 100) + "%")
print("月息:", count1.month_Interest())

4.设计一个Timer类,该类包括:表示小时,分,秒的三个数据域,三个数据域各自的get方法,设置新时间和显示时间的方法。 用当前时间创建一个Timer类并显示出来。

import datetime

class Timer:
    def __init__(self, hour, minute, second):
        self.hour = hour
        self.minute = minute
        self.second = second

    def gethour(self):
        return self.hour

    def getminute(self):
        return self.minute

    def getsecond(self):
        return self.second

    def settime(self, new_hour, new_minute, new_second):
        self.hour = new_hour
        self.minute = new_minute
        self.second = new_second

    def showtime(self):
        print(self.hour, ":", self.minute, ":", self.second)

d = datetime.datetime.now()
timer1 = Timer(d.hour, d.minute, d.second)
timer1.showtime()

  • 6
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值