有没有会python大佬教一下题目的
真的不会了 先友情支持你一下,本人也才开始接触Python,过几天可能对你提出的问题会回答,现在你比我强太多了, 为什么发两张一样的图?另外我只看到题目的说明,具体是要干嘛? 不知道各位朋友在哪里学?如果是自学,我提议咱们建立一个群,确定一份适合的教材一起学。
这样第一可以统一进度互相探讨和交流,第二也可以彼此影响能够坚持啊!你们觉得怎么样? kingxc2020 发表于 2020-3-23 13:02
先友情支持你一下,本人也才开始接触Python,过几天可能对你提出的问题会回答,现在你比我强太多了,
不知道各位朋友在哪里学?如果是自学,我提议咱们建立一个群,确定一份适合的教材一起学。
这样第一可以统一进度互相探讨和交流,第二也可以彼此影响能够坚持啊!你们觉得怎么样? ctOS_ 发表于 2020-3-23 13:27
为什么发两张一样的图?
另外我只看到题目的说明,具体是要干嘛?
这两题不会 大哥会不 miaolei545 发表于 2020-3-23 13:28
不知道各位朋友在哪里学?如果是自学,我提议咱们建立一个群,确定一份适合的教材一起学。
这样第一可以统 ...
现在这种学习群应该不少,严格说我是昨晚上才开始入手学习的,在我们论坛下了一个通宵的资料,只是我们论坛不允许发布QQ群吧?不然,真可以搞一个,
本帖最后由 Virgo之最 于 2020-3-23 17:39 编辑
import math
class Point(object):
def __init__(self, x, y):
self._x = x
self._y = y
def area(self):
return 0
def __str__(self):
return '({}, {})'.format(self._x, self._y)
class Circle(Point):
def __init__(self, x, y, radius):
super().__init__(x, y)
self._radius = radius
def area(self):
# S=2πr*r
return math.pi * self._radius * self._radius
def perimeter(self):
# C=2πr
return 2 * math.pi * self._radius
def __str__(self):
return 'Center={}, Radius={}'.format(super().__str__(), self._radius)
class Cylinder(Circle):
def __init__(self, x, y, radius, height):
super().__init__(x, y, radius)
self._height = height
def area(self):
# S=2πrr + 2πrh
return (super().area()) + (super().perimeter()*self._height)
def volume(self):
# V = Sh
return super().area()*self._height
def __str__(self):
return 'Cylinder: {}, Height={}'.format(super().__str__(), self._height)
if __name__ == "__main__":
cy = Cylinder(1, 2, 1, 4)
print(cy)
print('表面积: {}'.format(cy.area()))
print('体积: {}'.format(cy.volume()))
输出是这样的:
Cylinder: Center=(1, 2), Radius=1, Height=4
表面积: 28.274333882308138
体积: 12.566370614359172
学java时候比较经典的一个例子
写的急 没加注释, 如果是初学者可以尝试自己去加一下注释
主要还是公式,还有对继承的理解.
代码中公式记得不清了 没查 没准会有错误
建议提前查查公式
---------------------------
还是简单解释一下吧, 题目中要求私有属性。
那么 __init__内部属性变量名开头就要加个下划线 _
关于super(), 简单理解就是调用父类
所以才会有 这类代码 super().area() 意思就是调用父类中的area函数
剩下就没啥了 全是数学公式
此题主要意思就是 学会在子类中如何调用父类中的方法 # -*- coding: utf-8 -*-
"""
Created on Mon Mar 23 14:59:01 2020
@author: bitterain
"""
"""
类Point x,y __init__() area()(点的面积直接return 0 __str__()
类Circleradius__init__()area()perimeter()__str__()
类Cylinderheight__init__()area()volume()__str__()
所有的属性都定义为私有的。
圆继承点,把点作为圆的圆心,圆柱体继承圆,把圆作为圆柱体的底面
"""
from math import pi as PI
class Point(object):
def __init__(self,x=0,y=0):
self.__x = x
self.__y = y
def area(self):
return 0
def __str__(self):
return f"{(self.__x,self.__y)}"
class Circle(Point):
def __init__(self,x,y,radius):
super().__init__(x,y)
self.__radius = radius
def area(self):
return PI * self.__radius * self.__radius
def perimeter(self):
return 2 * PI * self.__radius
def __str__(self):
return "圆心为:"+super().__str__()+f"半径为:{self.__radius}"
class Cylinder(Circle):
pass#这个类你可以参照上面的类来完成了
if __name__ == "__main__":
c1 = Circle(10,5,5)
print(c1.area()) bitterain 发表于 2020-3-23 15:43
# -*- coding: utf-8 -*-
"""
Created on Mon Mar 23 14:59:01 2020
多谢大哥
页:
[1]