1. #!usr/bin/python
  2. 2 #encoding=utf-8
  3. 3 #-----------------小明跑步-------------
  4. 4 #1.小明体重75.0公斤
  5. 5 #2.小明每次跑步会减肥0.5公斤
  6. 6 #3.小明每次吃东西体重会增加1公斤
  7. 7
  8. 8
  9. 9 class Person(object):
  10. 10 def __init__(self, name, weight):
  11. 11 self.weight = weight
  12. 12 self.name = name
  13. 13 def __str__(self):
  14. 14 msg = self.name + " 的体重为: " + str(self.weight) + " KG"
  15. 15 return msg
  16. 16 def run(self, num):
  17. 17 self.weight -= 0.5 * num # num表示对象跑步的次数
  18. 18 def eat(self, num):
  19. 19 self.weight += num # num表示对象吃东西的次数
  20. 20
  21. 21 xiaoming = Person('xiaoming',75.0)
  22. 22 #print ("小明原始体重为: %f"%xiaoming.weight)
  23. 23 print(xiaoming)
  24. 24 print("--------------------------------------------")
  25. 25 xiaoming.run(4)
  26. 26 print(xiaoming)
  27. 27 print("--------------------------------------------")
  28. 28 xiaoming.eat(1)
  29. 29 print(xiaoming)

2. 放置家具:

实现输出房间总面积,剩余面积,家里家具列表。

  1. #!usr/bin/python
  2. 2 #encoding=utf-8
  3. 3 #-------------------------摆放家具---------------------------
  4. 4 # 1. 房子有总面积、家具,新房子没有任何家具
  5. 5 # 2. 家具有名字和占地面积,需要把家具添加到房子里
  6. 6 # 3. 打印房子时,需要输出:房子总面积、剩余面积、家具列表
  7. 7
  8. 8 #定义房间类
  9. 9 class House():
  10. 10 flag = 0
  11. 11 def __init__(self, area):
  12. 12 self.area = area
  13. 13 self.remidArea = area
  14. 14 self.furniture = [] #房子里家具列表
  15. 15 def __str__(self):
  16. 16 msg = "房子的总面积为:" + str(self.area) + "平方。"
  17. 20 msg = msg + "\n家的剩余面积为:" + str(self.remidArea) + " 平方。\n家里的家具有:"
  18. 21 for temp in self.furniture:
  19. 22 msg += temp.name + ","
  20. 23 msg = msg.strip(",") + "。"
  21. 24 return msg
  22.  
  23. 26
  24. 27 #定义函数:添加家具到房子
  25. 28 def AddFurni(self, item):
  26. 29 global flag
  27. 30 print("购买了家具:%s,占地面积:%s 平方。"%(item.name,item.area))
  28. if self.remidArea >= item.area :
  29. 32 self.furniture.append(item)
  30. 33 self.remidArea -= item.area
  31. 34
  32. 35 else:
  33. 36 # flag =1
  34. 37 print ("房子面积不足以容纳该家具!")
  35. 42
  36. 43 #定义家具类
  37. 44 class Furniture():
  38. 45 def __init__(self, name, area):
  39. 46 self.name = name #家具名称
  40. 47 self.area = area
  41. 48
  42. 49 print("----------------------第一次------------------------")
  43. 50 myHouse = House(160)
  44. 51 bed = Furniture("床",25)
  45. 52 myHouse.AddFurni(bed)
  46. 53 print(myHouse)
  47. 54 print("----------------------第二次------------------------")
  48. 55 desk = Furniture("书桌",5)
  49. 56 myHouse.AddFurni(desk)
  50. 57 print(myHouse)
  51. 58 print("----------------------第三次------------------------")
  52. 59 sofa = Furniture("沙发",100)
  53. myHouse.AddFurni(sofa)
  54. 61 print(myHouse)
  55. 62 print("----------------------第四次------------------------")
  56. 63 fridge = Furniture("冰箱",50)
  57. 64 myHouse.AddFurni(fridge)

Python之面向对象编程【小明跑步】、【置办家具】的更多相关文章

  1. python基础——面向对象编程

    python基础——面向对象编程 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的 ...

  2. Python之面向对象编程学习

    不知不觉,学到了python的面向对象编程思想.今天我们来讨论下面向对象编程的思想. 顾名思义,面向对象,就是面向于对象,这里所说的对象不是你现实生活中你的女朋友,你的老婆,你的爱人,在编程的世界里面 ...

  3. Python:面向对象编程3 定制类(有更新)

    Python:面向对象编程3  定制类(有更新) ⚠️本文主要内容为对Data model相关知识点的提取学习记录.(内容来自文档和部分网页教程案例) ⚠️:这个连接指向<流畅的python&g ...

  4. Python - 面向对象编程 - 小实战(2)

    需求 小明和小美都爱跑步 小明体重 75 公斤 小美体重 45 公斤 每次跑步会减肥 0.5 公斤 每次吃东西体重增加 1 公斤 需求分析 小明.小美都是一个具体的对象,他们都是人,所以应该抽象成人类 ...

  5. Python - 面向对象编程 - 小实战(1)

    题目 设计一个类Person,生成若干实例,在终端输出如下信息 小明,10岁,男,上山去砍柴 小明,10岁,男,开车去东北 小明,10岁,男,最爱大保健 老李,90岁,男,上山去砍柴 老李,90岁,男 ...

  6. python基础-面向对象编程

    一.三大编程范式 编程范式即编程的方法论,标识一种编程风格 三大编程范式: 1.面向过程编程 2.函数式编程 3.面向对象编程 二.编程进化论 1.编程最开始就是无组织无结构,从简单控制流中按步写指令 ...

  7. python之面向对象编程

    1.面向对象介绍: 世界万物,皆可分类 世界万物,皆为对象 只要是对象,就肯定属于某种类 只要是对象,就肯定有属性 2. 面向对象的几个特性: class类: 一个类即对一类拥有相同属性的对象的抽象, ...

  8. python(8):面向对象编程

    有三种程序类型: (1)面向过程:按照一定的逻辑顺序,一步步垒代码 (2)面向函数:对用常用的计算,建立函数避免重复 (3)面向对象: 函数的集合,对函数进行分类和封装 (一) 抽象 抽象: 哈巴狗, ...

  9. Python(面向对象编程—1)

    class tst: l=[] x=1 a=tst() b=tst() a.l.append('a') b.l.append('b') a.x='a' b.x='b' print(a.l,a.x) # ...

随机推荐

  1. STM32F4 SD卡升级程序

    http://www.openedv.com/posts/list/65104.htm

  2. 如何彻底禁止 macOS Big Sur 自动更新,去除更新标记和通知

    作者:gc(at)sysin.org,主页:www.sysin.org 请访问原文链接:https://sysin.org/article/Disable-macOS-Update/,查看最新版.原创 ...

  3. js发送请求给服务端

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. TVM 高效保护隐私 ML

    TVM 高效保护隐私 ML 这篇文章描述了Myelin,一个在值得信赖的硬件飞地中保护隐私的机器学习框架,以及TVM如何使Myelin快速.关键的想法是,TVM,不像其它流行的ML框架,将模型编译成轻 ...

  5. NVIDIA GPU上的随机数生成

    NVIDIA GPU上的随机数生成 NVIDIA CUDA随机数生成库(cuRAND)提供高性能的GPU加速的随机数生成(RNG).cuRAND库使用NVIDIA GPU中提供的数百个处理器内核,将质 ...

  6. 3DPytorch-API NVIDIA Kaolin

    3DPytorch-API NVIDIA Kaolin NVIDIA Kaolin library provides a PyTorch API for working with a variety ...

  7. CodeGen处理Synergy方法目录

    CodeGen处理Synergy方法目录 如果Synergy应用程序开发环境包括使用Synergy/DE xfServerPlus,则可以基于Synergy方法目录中包含的元数据生成代码.要启用此功能 ...

  8. jemeter压测, 高级应用: 发1万个请求,每个请求参数都不同, 使用CSV数据文件配置

    今天接到一个压测任务, 数据源需要自己从测试环境库中取, 并且使用jemeter 请求, 每个请求参数都不相同 这里使用jemeter的 CSV数据文件来配置: 这样配置好后, 开始发送请求: csv ...

  9. Android系统编程入门系列之应用环境及开发环境介绍

        作为移动端操作系统,目前最新的Android 11.0已经发展的比较完善了,现在也到了系统的整理一番的时间,接下来的系列文章将以Android开发者为中心,争取用归纳总结的态度对初级入门者所应 ...

  10. UF 公共类型

    Open C uc4400uc4403uc4404uc4406uc4409uf3192uf4401uf4402UF_add_callback_functionUF_allocate_memoryUF_ ...