python-类和对象

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

(1)源代码:

import math

class Circle:

    def __init__(self, r):

        self.r = r

    #面积

    def area(self):

        return math.pi * (self.r ** 2)

    #周长

    def circumference(self):

        return 2 * math.pi * self.r

#半径1~10

for i in range(1, 11):

    circle = Circle(i)

    area_value = round(circle.area(), 2)

    circumference_value = round(circle.circumference(), 2)

    print(f"半径为{i}的圆,面积:{area_value}周长:{circumference_value}")

(2)运行结果截图 :

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

(1)源代码:

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)

(2)运行结果截图 :

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

(1)源代码:

class Account:

    def __init__(self, account_number, balance, annual_interest_rate):

        self.account_number = account_number

        self.balance = balance

        self.annual_interest_rate = annual_interest_rate / 100  # 将百分比转换为小数

    def deposit(self, amount):

        if amount > 0:

            self.balance += amount

            print(f"存款成功,当前余额为:{self.balance}")

        else:

            print("存款金额必须大于0")

    def withdraw(self, amount):

        if amount > 0 and amount <= self.balance:

            self.balance -= amount

            print(f"取款成功,当前余额为:{self.balance}")

        else:

            print("取款金额必须大于0且小于等于当前余额")

    def calculate_monthly_interest_rate(self):

        return self.annual_interest_rate / 12

    def calculate_monthly_interest(self):

        return self.balance * self.calculate_monthly_interest_rate()

    def display_info(self):

        monthly_interest_rate = self.calculate_monthly_interest_rate()

        monthly_interest = self.calculate_monthly_interest()

        print(f"账号:{self.account_number}")

        print(f"余额:{self.balance}")

        print(f"年利率:{self.annual_interest_rate * 100}%")

        print(f"月利率:{monthly_interest_rate * 100}%")

        print(f"月息:{monthly_interest}")

    # 创建账号为998866, 余额为2000, 年利率为4.5%的账户

account = Account(account_number="998866", balance=2000, annual_interest_rate=4.5)

# 从该账户中存入150

account.deposit(150)

# 从该账户中取出1500

account.withdraw(1500)

# 打印出账号、余额、年利率、月利率、月息

account.display_info()

(2)运行结果截图 :

4、编写函数,判断一个数是否为水仙花数。调用该函数打印出1000以内的所有水仙花数。水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。例如:1^3+5^3+3^3=153,则153是水仙花数。水仙花数只是自幂数的一种,严格来说三位数的3次幂数才成为水仙花数。

(1)源代码:

class Timer:  

    def __init__(self, hours=0, minutes=0, seconds=0):  

        self.hours = hours  

        self.minutes = minutes  

        self.seconds = seconds  

  

    def get_hours(self):  

        return self.hours  

  

    def get_minutes(self):  

        return self.minutes  

  

    def get_seconds(self):  

        return self.seconds  

  

    def set_time(self, hours, minutes, seconds):  

        self.hours = max(0, min(hours, 23))  

        self.minutes = max(0, min(minutes, 59))  

        self.seconds = max(0, min(seconds, 59))  

  

    def display_time(self):  

        print(f"{self.hours:02d}:{self.minutes:02d}:{self.seconds:02d}")  

  

    # 使用当前时间创建Timer实例的静态方法  

    @staticmethod  

    def from_current_time():  

        from datetime import datetime  

        now = datetime.now()  

        return Timer(now.hour, now.minute, now.second)  

  

# 使用当前时间创建一个Timer类并显示出来  

current_timer = Timer.from_current_time()  

current_timer.display_time()  

  

# 自定义时间并显示出来  

custom_timer = Timer(15, 30, 45)  

custom_timer.display_time()

(2)运行结果截图 :

  • 13
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值