返回圆形值但仍打印整个小数点
Returning round value but still printing the whole decimal points
所以我想得到我的函数的输出值最多有 4 个小数点。所以我写了returnround(val,4)
。但是当我打印带参数的函数时,输出没有四舍五入并显示所有小数点。
def longhike(capacity, *val_weights):
vals=[]
weights=[]
unitval=[]
for i in range (0,len(val_weights),2):
vals.append(val_weights[i])
weights.append(val_weights[i+1])
unitval.append(val_weights[i]/val_weights[i+1])
#print(unitval, vals, weights)
val=0
maxval= max(unitval)
maxidx= unitval.index(maxval)
while capacity>0:
if weights[maxidx]>=capacity:
val+= unitval[maxidx]*capacity
return val
else:
capacity= capacity-weights[maxidx]
#print(f'capacity={capacity}')
val+=vals[maxidx]
#print(val)
del vals[maxidx]
del weights[maxidx]
del unitval[maxidx]
#print(vals, weights, unitval, maxidx, maxval)
maxval= max(unitval)
maxidx= unitval.index(maxval)
#print(maxval, maxidx)
return round(val,4)
print(longhike(50, 60,20,100,50,120,30))
print(longhike(10, 500,30))
您没有在 return 函数中舍入 'val',在第一个 if 语句的末尾,以下应该有效:
def longhike(capacity, *val_weights):
vals=[]
weights=[]
unitval=[]
for i in range (0,len(val_weights),2):
vals.append(val_weights[i])
weights.append(val_weights[i+1])
unitval.append(val_weights[i]/val_weights[i+1])
#print(unitval, vals, weights)
val=0
maxval= max(unitval)
maxidx= unitval.index(maxval)
while capacity>0:
if weights[maxidx]>=capacity:
val+= unitval[maxidx]*capacity
return round(val,4)
else:
capacity= capacity-weights[maxidx]
#print(f'capacity={capacity}')
val+=vals[maxidx]
#print(val)
del vals[maxidx]
del weights[maxidx]
del unitval[maxidx]
#print(vals, weights, unitval, maxidx, maxval)
maxval= max(unitval)
maxidx= unitval.index(maxval)
#print(maxval, maxidx)
return round(val,4)
print(longhike(50, 60,20,100,50,120,30))
print(longhike(10, 500,30))
所以我想得到我的函数的输出值最多有 4 个小数点。所以我写了returnround(val,4)
。但是当我打印带参数的函数时,输出没有四舍五入并显示所有小数点。
def longhike(capacity, *val_weights):
vals=[]
weights=[]
unitval=[]
for i in range (0,len(val_weights),2):
vals.append(val_weights[i])
weights.append(val_weights[i+1])
unitval.append(val_weights[i]/val_weights[i+1])
#print(unitval, vals, weights)
val=0
maxval= max(unitval)
maxidx= unitval.index(maxval)
while capacity>0:
if weights[maxidx]>=capacity:
val+= unitval[maxidx]*capacity
return val
else:
capacity= capacity-weights[maxidx]
#print(f'capacity={capacity}')
val+=vals[maxidx]
#print(val)
del vals[maxidx]
del weights[maxidx]
del unitval[maxidx]
#print(vals, weights, unitval, maxidx, maxval)
maxval= max(unitval)
maxidx= unitval.index(maxval)
#print(maxval, maxidx)
return round(val,4)
print(longhike(50, 60,20,100,50,120,30))
print(longhike(10, 500,30))
您没有在 return 函数中舍入 'val',在第一个 if 语句的末尾,以下应该有效:
def longhike(capacity, *val_weights):
vals=[]
weights=[]
unitval=[]
for i in range (0,len(val_weights),2):
vals.append(val_weights[i])
weights.append(val_weights[i+1])
unitval.append(val_weights[i]/val_weights[i+1])
#print(unitval, vals, weights)
val=0
maxval= max(unitval)
maxidx= unitval.index(maxval)
while capacity>0:
if weights[maxidx]>=capacity:
val+= unitval[maxidx]*capacity
return round(val,4)
else:
capacity= capacity-weights[maxidx]
#print(f'capacity={capacity}')
val+=vals[maxidx]
#print(val)
del vals[maxidx]
del weights[maxidx]
del unitval[maxidx]
#print(vals, weights, unitval, maxidx, maxval)
maxval= max(unitval)
maxidx= unitval.index(maxval)
#print(maxval, maxidx)
return round(val,4)
print(longhike(50, 60,20,100,50,120,30))
print(longhike(10, 500,30))