(四)52周存钱挑战 4.2-----变量传递:return !
程序员文章站
2024-03-26 11:50:23
...
"""
52周存钱挑战4.2
马玉华 2019.7.25
2.0新增:对列表进行操作。增添新元素
2.0新增:用math库函数,对列表求和
3.0新增:使用for循环、range(),替代while
4.0新增:用函数结构化;
重点:函数的参数传递
4.2新增:解决变量传递问题:return !
"""
import math #载入库函数
def calculate_money_save_in_n_weeks(week_total,money_per_week,money_increase):
money_list = [] # 创建一个空列表
for week_i in range(week_total):
# 在列表中加入每次一周存进去的钱数
money_list.append(money_per_week) # 将括号内的元素添加到列表末尾
# 更新下周存钱数
money_per_week += money_increase
# 对列表求和,即对每周存入的钱求和
money_saving = math.fsum(money_list) # 对列表内的元素求和,先载入库函数
print('被调用函数内的money_saving(总共存钱数)', money_saving) # 因为range()是从0开始的,加上1才等于设置的数
return money_saving
def main():
week_total = int(input('请输入存钱总周数:')) # 总周数
money_per_week = eval(input('请输入第一周存入的钱:')) #每周存入的钱
money_increase = eval(input('请输入每周增加的钱:')) #每周递增的钱
#调用函数
money_saving = calculate_money_save_in_n_weeks(week_total,money_per_week,money_increase)
print('被调用函数外的money_saving(总共存钱数)',money_saving)
if __name__ == '__main__':
main()
输出结果:
C:\Users\mayuhuaw\Desktop\py项目\4.52周存钱挑战\venv\Scripts\python.exe C:/Users/mayuhuaw/Desktop/py项目/4.52周存钱挑战/52周存钱挑战4.2.py
请输入存钱总周数:52
请输入第一周存入的钱:10
请输入每周增加的钱:10
被调用函数内的money_saving(总共存钱数) 13780.0
被调用函数外的money_saving(总共存钱数) 13780.0
Process finished with exit code 0
如何用return返回多个值
函数的return 语句只能返回一个值,可以是任何类型。
因此,我们可以“返回一个 tuple类型,来间接达到返回多个值 ”。
例: x 除以 y 的余数与商,以及x+y
def F1 ( x, y ):
a = x % y
b = (x-a) / y
c = x + y
return a,b,c # 也可以写作 return (a, b)
a,b,c = F1( 9, 4) # 也可以写作 (a,b,c) = F1 ( 9, 4 )
print(a,b,c)
结果显示: 1, 2,13
当然,除了上述方法以外,也可以返回一个列表list或者元组tuple