欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

(四)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