【发布时间】:2016-09-26 23:55:14
【问题描述】:
我正在尝试从下面的“year_calc”函数(Python 3.5)返回值方面获得一些帮助。本质上,代码用于返回“b”,因为我需要为每次迭代将“b”的新起始值传递给“year_calc”——我可以让它正常工作。但是,我希望返回每个 year_calc 迭代中的“total_cost”值并将其相加直到完成。注意while循环下的“grand_total”。我意识到这不像所说的那样工作 - 只是添加它,这样它可能会增加我试图完成的事情的清晰度。我只是不确定如何提取正在返回的特定值。有什么见解吗?
def main():
archive_total = float(input('Enter archive total (GB): '))
transfer_rate = float(input('Enter transfer rate (Gbps): '))
days_to_transfer = ((((archive_total*8/transfer_rate)/60)/60)/24)
xfer_per_day = archive_total/days_to_transfer
day_cost = xfer_per_day * 0.007 / 30
days = 365
total_days = 0
sum = 0
b = xfer_per_day * 0.007 / 30
total_years = 1
grand_total = 0.0
total_cost = 0.0
while total_years < years_to_transfer + 1:
b = year_calc(day_cost, days, total_days, sum,b,total_years,total_cost)
total_years += 1
grand_total += total_cost
def year_calc(day_cost,days,total_days,sum,b,total_years,total_cost):
while total_days < days -1:
b += day_cost
sum += b
total_days += 1
total_cost = sum + day_cost
print('Year',total_years,'cost: $', format(sum + day_cost, ',.2f'))
return (b, total_cost)
main()
【问题讨论】:
-
我认为你想要
b, total_cost = year_calc(day_cost, days, total_days, sum,b,total_years,total_cost)。但我不确定你为什么将total_cost作为参数传递给year_calc。顺便说一句,您不需要return (b, total_cost)中的括号。此外,您不应该使用sum作为变量名,因为这会影响内置的sum函数。除非您尝试在重新定义它的函数之一中使用sum函数,否则这里不会有任何伤害。
标签: python