一个有趣python self的题目

本文通过一个Python类的实例演示了如何在创建每个实例时递增类的静态计数器,并在实例方法中计算并输出长方体体积,同时展示了私有属性的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#-*- encoding:utf-8 -*-
 
class Box:
    count=0
    def __init__(self,length,width,height):
        self.length = length
        self.width = width
        self.height = height
        Box.count = Box.count + 1
         
 
    def output(self):
        self.__v = self.length*self.width*self.height
        print "length:" + str(self.length)
        print "width:" + str(self.width)
        print "height:" + str(self.height)
        print "V:" + str(self.__v)
        print "run times:" + str(Box.count)
 
b1 = Box(1,2,3)
b1.output()
b2 = Box(2,3,4)
b2.output()
b3 = Box(3,4,5)
b3.output()
b4 = Box(4,5,6)
b4.output()
b5 = Box(6,7,8)
b5.output()

### 春节主题 Python 编程练习题或项目 #### 1. 发放红包模拟器 编写一个简单的程序来模拟春节期间发放红包的过程。该程序应允许用户输入总金额以及参与抢红包的人数,随机分配每个人可以得到的金额。 ```python import random def distribute_red_envelope(total_amount, num_people): if total_amount <= 0 or num_people <= 0: raise ValueError("Total amount and number of people must be positive.") amounts = [] remaining_money = round(total_amount * 100) # Convert to cents for _ in range(num_people - len(amounts) - 1), int((total_amount / num_people) * 2)) current_share = random.randint(1, max_possible) amounts.append(current_share / 100) remaining_money -= current_share amounts.append(round(remaining_money / 100, 2)) # Last person gets the rest return amounts if __name__ == "__main__": try: total = float(input("请输入要发的红包总额:")) count = int(input("请输入参加人数:")) shares = distribute_red_envelope(total, count) print(f"每个人的份额如下:{shares}") except Exception as e: print(e) ``` 此代码展示了如何通过`random`模块实现公平又有趣的红包分发机制[^1]。 #### 2. 新春祝福短信生成器 创建一个能够自动生成个性化新春贺卡消息的应用。可以根据用户的姓名和其他个人信息定制独特的问候语句,并支持保存为文件以便发送给朋友家人。 ```python def generate_greeting(name="亲爱的", wishes="新年快乐"): template = f""" 尊敬的{name}, 祝您{wishes}!愿新的一年里幸福安康、万事如意! 此致, 敬礼 """ with open(f"{name}_greetings.txt", "w") as file: file.write(template) names_list = ["张三", "李四"] wish_messages = ["兔年大吉", "前程似锦"] for name, wish in zip(names_list, wish_messages): generate_greeting(name=name, wishes=wish) ``` 这段脚本利用了基本的字符串格式化功能来构建个性化的祝贺信件[^5]。 #### 3. 家庭团聚日程安排工具 设计一款帮助家庭成员规划假期活动的日历应用。它应该能读取现有的事件列表并提供冲突检测服务;还可以让用户添加新的约会记录到共享的日志中去。 ```python from datetime import date class EventScheduler: def __init__(self): self.events = [] def add_event(self, title, start_date:date, end_date:date=None): event_entry = {"title": title, "start": start_date, "end": end_date} overlapping_events = [e for e in self.events if not ((event_entry['start'] > e["end"]) or \ (event_entry['end'] is None or event_entry['end'] < e["start"]))] if any(overlapping_events): conflict_titles = ", ".join([ev["title"] for ev in overlapping_events]) print(f"警告:新加入的'{title}'与已有的'{conflict_titles}'存在时间上的重叠") self.events.append(event_entry) scheduler = EventScheduler() scheduler.add_event("年夜饭", date(year=2024, month=2, day=9)) scheduler.add_event("走亲访友", date(year=2024, month=2, day=10)) print(scheduler.events) ``` 上述例子说明了一个简单的时间管理类的设计思路及其部分核心方法[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值