吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1197|回复: 9
收起左侧

[求助] 有没有会python大佬教一下题目的

[复制链接]
haininglingjunj 发表于 2020-3-23 12:07
真的不会了
IMG_20200323_120455.jpg
IMG_20200323_120704.jpg

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

kingxc2020 发表于 2020-3-23 13:02
先友情支持你一下,本人也才开始接触Python,过几天可能对你提出的问题会回答,现在你比我强太多了,
ctOS_ 发表于 2020-3-23 13:27
为什么发两张一样的图?
另外我只看到题目的说明,具体是要干嘛?
miaolei545 发表于 2020-3-23 13:28
不知道各位朋友在哪里学?如果是自学,我提议咱们建立一个群,确定一份适合的教材一起学。
这样第一可以统一进度互相探讨和交流,第二也可以彼此影响能够坚持啊!你们觉得怎么样?
miaolei545 发表于 2020-3-23 13:29
kingxc2020 发表于 2020-3-23 13:02
先友情支持你一下,本人也才开始接触Python,过几天可能对你提出的问题会回答,现在你比我强太多了,

不知道各位朋友在哪里学?如果是自学,我提议咱们建立一个群,确定一份适合的教材一起学。
这样第一可以统一进度互相探讨和交流,第二也可以彼此影响能够坚持啊!你们觉得怎么样?
 楼主| haininglingjunj 发表于 2020-3-23 14:42
ctOS_ 发表于 2020-3-23 13:27
为什么发两张一样的图?
另外我只看到题目的说明,具体是要干嘛?

这两题不会 大哥会不
kingxc2020 发表于 2020-3-23 14:56
miaolei545 发表于 2020-3-23 13:28
不知道各位朋友在哪里学?如果是自学,我提议咱们建立一个群,确定一份适合的教材一起学。
这样第一可以统 ...

现在这种学习群应该不少,严格说我是昨晚上才开始入手学习的,在我们论坛下了一个通宵的资料,只是我们论坛不允许发布QQ群吧?不然,真可以搞一个,
Virgo之最 发表于 2020-3-23 15:32
本帖最后由 Virgo之最 于 2020-3-23 17:39 编辑

[Python] 纯文本查看 复制代码
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()))



输出是这样的:

[Shell] 纯文本查看 复制代码
Cylinder: Center=(1, 2), Radius=1, Height=4
表面积: 28.274333882308138
体积: 12.566370614359172


学java时候比较经典的一个例子

写的急 没加注释, 如果是初学者可以尝试自己去加一下注释

主要还是公式,还有对继承的理解.
代码中公式记得不清了 没查 没准会有错误
建议提前查查公式

---------------------------
还是简单解释一下吧, 题目中要求私有属性。
那么 __init__  内部属性变量名开头就要加个下划线 _
关于super(), 简单理解就是调用父类
所以才会有 这类代码 super().area() 意思就是调用父类中的area函数

剩下就没啥了 全是数学公式
此题主要意思就是 学会在子类中如何调用父类中的方法

免费评分

参与人数 1吾爱币 +1 收起 理由
haininglingjunj + 1 热心回复!

查看全部评分

bitterain 发表于 2020-3-23 15:43
# -*- coding: utf-8 -*-
"""
Created on Mon Mar 23 14:59:01 2020

@author: bitterain
"""
"""
类Point x,y __init__() area()(点的面积直接return 0   __str__()
类Circle  radius  __init__()  area()  perimeter()  __str__()
类Cylinder  height  __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())
 楼主| haininglingjunj 发表于 2020-3-25 19:04
bitterain 发表于 2020-3-23 15:43
# -*- coding: utf-8 -*-
"""
Created on Mon Mar 23 14:59:01 2020

多谢大哥
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 19:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表