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)运行结果截图 :