今天在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("對不起,您輸入的不是數字,無法計算。請重新輸入!")