Python入门-21、22、23、24、25:列表,math库,for循环,range()函数,形参和实参,datetime库

52周存钱挑战1.0

案例描述

在这里插入图片描述

案例分析

在这里插入图片描述

完整程序及结果

'''
作者:张梦
功能:52周存钱挑战
版本:1.0
日期:2018.12.12
'''

'''主函数'''
def main():
    money_per_week = 10      # 每周存入金额
    i = 1                   # 记录周数
    increase_money = 10     # 递增金额
    total_weeks =52         # 总共周数
    saving = 0              # 账户累计金额

    while i <= total_weeks:
        # 账户金额
        saving += money_per_week
        # 输出
        print('第{}周,存入{}元,账户累计{}元'.format(i,money_per_week,saving))
        # 更新下一周存入金额
        money_per_week += increase_money
        i += 1

if __name__ == '__main__':
    main()

结果:(把结果print到OneNote粘过来的)
在这里插入图片描述
在这里插入图片描述

52周存钱挑战2.0

案例描述

在这里插入图片描述

案例分析

列表

在这里插入图片描述
前三点与字符串一样
在这里插入图片描述
在这里插入图片描述
append v. 增补,附加,添加
示例:
在这里插入图片描述
在这里插入图片描述

math库

在这里插入图片描述
更多math库函数:https://docs.python.org/3/library/math.html
示例:
在这里插入图片描述

完整程序

'''
作者:张梦
功能:52周存钱挑战
版本:2.0
新增功能:记录每周存款数
日期:2018.12.12
'''

import math
'''主函数'''
def main():
    money_per_week = 10      # 每周存入金额
    i = 1                   # 记录周数
    increase_money = 10     # 递增金额
    total_weeks =52         # 总共周数
    saving = 0              # 账户累计金额
    money_list = []         # 记录每周存款数的列表

    while i <= total_weeks:
        # 账户金额
        # saving += money_per_week
        money_list.append(money_per_week)
        saving = math.fsum(money_list)
        # 输出
        print('第{}周,存入{}元,账户累计{}元'.format(i,money_per_week,saving))
        # 更新下一周存入金额
        money_per_week += increase_money
        i += 1

if __name__ == '__main__':
    main()

52周存钱挑战3.0

案例描述

在这里插入图片描述
用for代替while

案例分析

for循环

在这里插入图片描述
示例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

完整程序

在这里插入图片描述
这里i是从0开始,所以输出时记得加1

52周存钱挑战4.0

案例描述

在这里插入图片描述

案例分析

只需把部分程序更改成如下:
在这里插入图片描述

形参与实参,全局变量与局部变量

在这里插入图片描述
函数外的是全局变量,如果想要在函数里更改和使用全局变量,需要先声明:global 变量名
在这里插入图片描述

完整程序及结果

'''
作者:张梦
功能:52周存钱挑战
版本:4.0
2.0新增功能:记录每周存款数
3.0新增功能:使用for循环直接计数
4.0新增功能:灵活设置每周存款数、增加的存款数及存款周数
日期:2018.12.16
'''

import math

'''计算N周内的存款金额'''
def save_money_in_n_weeks(money_per_week, increase_money, total_weeks):
    money_list = []  # 记录每周存款数的列表
    for i in range(total_weeks):
        # 账户金额
        money_list.append(money_per_week)
        saving = math.fsum(money_list)
        # 输出
        #  print('第{}周,存入{}元,账户累计{}元'.format(i + 1, money_per_week, saving))
        # 更新下一周存入金额
        money_per_week += increase_money

    return saving		# 将参数传到主函数里

'''主函数'''
def main():
    money_per_week = float(input('请输入每周存入的金额'))  # 每周存入金额
    increase_money = float(input('请输入每周递增的金额'))  # 递增金额
    total_weeks = int(input('请输入总共的周数'))  # 总共周数

    saving = save_money_in_n_weeks(money_per_week, increase_money, total_weeks)
    print('总的存款金额', saving)

if __name__ == '__main__':
    main()

结果:
在这里插入图片描述

52周存钱挑战4.0

案例描述

在这里插入图片描述

案例分析

将总金额存入列表,然后索引查找
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

datatime库

在这里插入图片描述
日期时间格式:https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior
在这里插入图片描述
一个是四位的年份一个是两位的年份
更多操作:https://docs.python.org/3/library/datetime.html#module-datetime
strptime parse:解析
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

完整程序及结果

'''
作者:张梦
功能:52周存钱挑战
版本:5.0
2.0新增功能:记录每周存款数
3.0新增功能:使用for循环直接计数
4.0新增功能:灵活设置每周存款数、增加的存款数及存款周数
5.0新增功能:根据用户输入日期,判断是第几周,输出存款总金额
日期:2018.12.16
'''

import math
import datetime

'''计算N周内的存款金额'''
def save_money_in_n_weeks(money_per_week, increase_money, total_weeks):
    money_list = []         # 记录每周存款数的列表
    saved_money_list = []   # 记录每周账户总额
    for i in range(total_weeks):
        # 账户金额
        money_list.append(money_per_week)
        saving = math.fsum(money_list)
        saved_money_list.append(saving)
        # 输出
        #  print('第{}周,存入{}元,账户累计{}元'.format(i + 1, money_per_week, saving))
        # 更新下一周存入金额
        money_per_week += increase_money

    return saved_money_list

'''主函数'''
def main():
    money_per_week = float(input('请输入每周存入的金额'))  # 每周存入金额
    increase_money = float(input('请输入每周递增的金额'))  # 递增金额
    total_weeks = int(input('请输入总共的周数'))  # 总共周数
    # 调用函数
    saved_money_list = save_money_in_n_weeks(money_per_week, increase_money, total_weeks)
    # 输出第几周的存款
    input_data_str = input('请输入日期(yyyy/mm/dd):')
    input_data = datetime.datetime.strptime(input_data_str,format('%Y/%m/%d'))      # 将输入的时间字符串解析
    week_num = input_data.isocalendar()[1]                                          # 取出第几周
    print('第{}周的存款为{}元'.format(week_num, saved_money_list[week_num-1]))

if __name__ == '__main__':
    main()

结果:
在这里插入图片描述

小结

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值