寫成“子函數+主函數”的代碼結構,也是因為每個不同的功能封裝在單獨的函數代碼中,方便后續修改、增刪
import math # 變量key代表循環運行程序的開關
key = 1
# 采集信息的函數
def myinput(): choice = input('請選擇計算類型:(1-工時計算,2-人力計算)') if choice == '1': size = float(input('請輸入項目大小:(1代表標准大小,請輸入小數)')) number = int(input('請輸入人力數量:(請輸入整數)')) time = None return size,number,time # 這里返回的數據是一個元組
if choice == '2': size = float(input('請輸入項目大小:(1代表標准大小,請輸入小數)')) number = None time = float(input('請輸入工時數量:(請輸入小數)')) return size,number,time # 這里返回的是一個元組
# 完成計算的函數
def estimated(my_input): # 把元組中的數據取出來
size = my_input[0] number = my_input[1] time = my_input[2] # 人力計算
if (number == None) and (time != None): number = math.ceil(size * 80 / time) print('項目大小為%.1f個標准項目,如果需要在%.1f個工時完成,則需要人力數量為:%d人' %(size,time,number)) # 工時計算
elif (number != None) and (time == None): time = size * 80 / number print('項目大小為%.1f個標准項目,使用%d個人力完成,則需要工時數量為:%.1f個' %(size,number,time)) # 詢問是否繼續的函數
def again(): # 聲明全局變量key,以便修改該變量
global key a = input('是否繼續計算?繼續請輸入y,輸入其他鍵將結束程序。') if a != 'y': # 如果用戶不輸入'y',則把key賦值為0
key = 0 # 主函數
def main(): print('歡迎使用工作量計算小程序!') while key == 1: my_input = myinput() estimated(my_input) again() print('感謝使用工作量計算小程序!') main()