一、简单版本
- 补充知识点:向上取整数
import math
print(math.ceil(5/4))
2
或者用%做余数运算,如果取余后不等于0,即人力计算结果不为0,则对人数取整再加1
if (size*80 % time)!=0:
number=int(size*80/time)+1
1.版本1.0:两个计算函数
import math
# 工时计算
def estimated_time(size,number):
time=size*80/number
print('项目大小为{:.1f}个标准大小,使用{}个人力完成,需要{:.1f}个工时完成)'.format(size,number,time))
# 人力计算
def estimated_number(size,time):
number=math.ceil(size*80/time)#要向上取整,计算3.8人时,取整为4人
print('项目大小为{:.1f}个标准大小,使用{}个人力完成,需要{:.1f}个工时完成)'.format(size,number,time))
estimated_time(参数1,参数2)
estimated_number(参数1,参数2)
2.版本2.0:简化代码,使用一个函数
通过and逻辑判断
import math
def estimated(size=1,number=None,time=None):
# 工时计算
if(number!=None)and(time=None):
time=size*80/number
print('项目大小为{:.1f}个标准大小,使用{}个人力完成,需要{:.1f}个工时完成)'.format(size,number,time))
# 人力计算
if(number=None)and(time!=None):
number=math.ceil(size*80/time)#要向上取整,计算3.8人时,取整为4人
print('项目大小为{:.1f}个标准大小,使用{}个人力完成,需要{:.1f}个工时完成)'.format(size,number,time))
estimated(参数1,参数2,参数3)
2.版本3.0:面向用户的
import math
def estimated(my_input):
size=my_input[0]
number=my_input[1]
time=my_input[2]
# 工时计算
if(number!=None)and(time=None):
time=size*80/number
print('项目大小为{:.1f}个标准大小,使用{}个人力完成,需要{:.1f}个工时完成)'.format(size,number,time))
# 人力计算
if(number=None)and(time!=None):
number=math.ceil(size*80/time)#要向上取整,计算3.8人时,取整为4人
print('项目大小为{:.1f}个标准大小,使用{}个人力完成,需要{:.1f}个工时完成)'.format(size,number,time))
#采集信息
def myinput():
choice=int(intput('请输入你要选择计算的内容'1工时计算'或'2人力计算'))
if choice ==1:
size=float(input('请输入项目大小')
number=float(input('请输入人力数量')
time=None
return size,number,time
if choice ==2:
size=float(input('请输入项目大小')
time=float(input('请输入工时')
number=None
return size,number,time
def main():
my_input=myinput()
estimated(my_input)
main()