circle.py 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. """
  2. 练习
  3. 修一个游泳池 半径(以米为单位)在程序运行时输入 游泳池外修一条3米宽的过道
  4. 过道的外侧修一圈围墙 已知过道的造价为25元每平米 围墙的造价为32.5元每米
  5. 输出围墙和过道的总造价分别是多少钱(精确到小数点后2位)
  6. Version: 0.1
  7. Author: 骆昊
  8. Date: 2018-03-08
  9. """
  10. import math
  11. class Circle(object):
  12. def __init__(self, radius):
  13. self._radius = radius
  14. @property
  15. def radius(self):
  16. return self._radius
  17. @radius.setter
  18. def radius(self, radius):
  19. self._radius = radius if radius > 0 else 0
  20. @property
  21. def perimeter(self):
  22. return 2 * math.pi * self._radius
  23. @property
  24. def area(self):
  25. return math.pi * self._radius * self._radius
  26. if __name__ == '__main__':
  27. radius = float(input('请输入游泳池的半径: '))
  28. small = Circle(radius)
  29. big = Circle(radius + 3)
  30. print('围墙的造价为: ¥%.1f元' % (big.perimeter * 115))
  31. print('过道的造价为: ¥%.1f元' % ((big.area - small.area) * 65))