今天在CSDN博客上学习(瞎逛),看到了1个小案例。目前我正好学习到了这里,@丁七岁 博主是我学习的对象。
https://blog.csdn.net/qq_43612538/article/details/105914806
根据博客内容,手敲了一遍,其中有几块又重新学习了几次,最终成功编写出代码。
需求:
1.创建类,分别定义方法,计算圆的周长、圆的面积、球的表面积、球的体积。
2.计算结果保留两位小数。
3.若输入的是非数字,则需要重新输入。
4.π的值通过自带math函数写出。
# -*- coding: utf-8 -*-
# @Time : 2020/5/5 21:48
# @Author : 王继宾
# @File : test17_输入半径计算周长.py
import math
class Circle(object):
def __init__(self, r): # 初始化实例,定义半径r
self.r = r
def Circumference(self): # 声明圆周长方法,C = 2*π*r
circum = 2 * math.pi * self.r
return circum
def Circular_area(self): # 声明圆面积方法,S = π*r²
c_area = math.pi * (self.r**2)
return c_area
def Sphere_area(self): # 声明球面积方法,S = 4*π*r²
s_area = 4 * math.pi * (self.r **2)
return s_area
def Sphere_volume(self): # 声明球体积方法,V = (4/3)*π*r³
s_volume = (4/3) * math.pi * (self.r **3)
return s_volume
'''
1.使用While循环,
2.当输入非数字时,try + except会提示重新输入
3.当输入整数或浮点数时,正常输出
'''
while True:
try:
r = float(input("请输入半径(m):")) # 手动输入半径,并将半径传入类中,赋给p这个对象
p = Circle(r)
print("-" * 30) # 敲出30个横线,美化效果
'''
1.使用format格式化输出相关数据
2.(:.2f)是保留2位小数点,
3.p.方法是执行该方法,并根据方法的return来显示返回值
4.print使用3逗号,虽然换行,但是输出依然是在一行
'''
print('''您输入的半径是:{:.2f}(m),计算后的
圆周长是:{:.2f}(m)
圆面积是:{:.2f}(m²)
球面积是:{:.2f}(m²)
球体积是:{:.2f}(m³)
'''.format(r, p.Circumference(), p.Circular_area(), p.Sphere_area(), p.Sphere_volume()))
break # 当正常运行后,跳出循环
except ValueError: # 当输入的不是整数或浮点数,提示报错
print("对不起,您输入的不是数字,无法计算。请重新输入!")