定义圆的类circle 包含三个属性:圆心 x y 和半径r python
时间: 2023-06-19 07:08:20 浏览: 105
下面是一个简单的Python代码示例,定义一个圆的类Circle:
```python
class Circle:
def __init__(self, x, y, r):
self.x = x
self.y = y
self.r = r
def area(self):
return 3.14 * self.r * self.r
def perimeter(self):
return 2 * 3.14 * self.r
```
这个类包含了三个属性:圆心的x坐标、圆心的y坐标和半径r。还包含两个方法,一个用于计算圆的面积,另一个用于计算圆的周长。
相关问题
用Python定义一个圆类,拥有属性:半径、圆心,拥有方法:求圆的周长和面积,判断当前圆和另一个圆是否外切。
```python
import math
class Circle:
def __init__(self, radius, center):
self.radius = radius
self.center = center
def circumference(self):
return 2 * math.pi * self.radius
def area(self):
return math.pi * self.radius ** 2
def is_tangent_to(self, other):
distance = math.sqrt((self.center[0] - other.center[0]) ** 2 + (self.center[1] - other.center[1]) ** 2)
return distance == self.radius + other.radius
```
使用示例:
```python
c1 = Circle(3, (0, 0))
print(c1.circumference()) # 输出 18.84955592153876
print(c1.area()) # 输出 28.274333882308138
c2 = Circle(4, (5, 0))
print(c1.is_tangent_to(c2)) # 输出 True
c3 = Circle(2, (5, 0))
print(c1.is_tangent_to(c3)) # 输出 False
```
这是一个设计一个圆类circle,具有属性:圆心坐标x和y及圆半径r,除具有设置及获取属性的方法外,还具有计算周长的方法perimeter()和计算面积的方法area()。然后设计一个圆柱体类cylinder,它具有一个圆柱体类的属性底圆及高度h,除具有设置及获取属性的方法外,还可以计算圆柱体的表面积和体积。
好的,以下是 Python 实现:
```python
import math
class Circle:
def __init__(self, x=0, y=0, r=0):
self.x = x
self.y = y
self.r = r
def set_x(self, x):
self.x = x
def set_y(self, y):
self.y = y
def set_r(self, r):
self.r = r
def get_x(self):
return self.x
def get_y(self):
return self.y
def get_r(self):
return self.r
def perimeter(self):
return 2 * math.pi * self.r
def area(self):
return math.pi * self.r ** 2
class Cylinder:
def __init__(self, circle=Circle(), h=0):
self.circle = circle
self.h = h
def set_circle(self, circle):
self.circle = circle
def set_h(self, h):
self.h = h
def get_circle(self):
return self.circle
def get_h(self):
return self.h
def surface_area(self):
return 2 * self.circle.area() + self.circle.perimeter() * self.h
def volume(self):
return self.circle.area() * self.h
```
上述代码定义了两个类,分别为 Circle 和 Cylinder。其中 Circle 类具有三个属性:圆心坐标 x 和 y,以及半径 r,以及三个方法:设置属性值(set_x, set_y, set_r),获取属性值(get_x, get_y, get_r),计算周长(perimeter)和计算面积(area)。Cylinder 类有两个属性:底部的 Circle 类型的圆和高度 h,以及两个方法:设置属性值(set_circle, set_h),获取属性值(get_circle, get_h),计算表面积(surface_area)和计算体积(volume)。
继承的实现方式:
```python
import math
class Circle:
def __init__(self, x=0, y=0, r=0):
self.x = x
self.y = y
self.r = r
def set_x(self, x):
self.x = x
def set_y(self, y):
self.y = y
def set_r(self, r):
self.r = r
def get_x(self):
return self.x
def get_y(self):
return self.y
def get_r(self):
return self.r
def perimeter(self):
return 2 * math.pi * self.r
def area(self):
return math.pi * self.r ** 2
class Cylinder(Circle):
def __init__(self, x=0, y=0, r=0, h=0):
super().__init__(x, y, r)
self.h = h
def set_h(self, h):
self.h = h
def get_h(self):
return self.h
def surface_area(self):
return 2 * super().area() + super().perimeter() * self.h
def volume(self):
return super().area() * self.h
```
上述代码中,Cylinder 类继承了 Circle 类,因此所有 Circle 类的属性和方法均可在 Cylinder 类中使用。Cylinder 类新增了一个属性 h,以及两个方法:设置属性值(set_h),获取属性值(get_h),计算表面积(surface_area)和计算体积(volume)。在 Cylinder 类中,使用 super() 函数调用 Circle 类的 __init__ 方法初始化 Circle 类的属性。
相关推荐
![text/x-java](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)