python案例:在线虚拟存钱指南

第一次使用CSDN,是基于在微信课程中对python的学习,想把我的一些代码保存到一个在线平台,以供我之后的学习和反思。
第一次我先把我的存钱作业放上来,欢迎各位码农批评指正。
**小代码如下:**
'''
    案例学习·元旦快乐
    作者:Z_Howe01
    功能:在线虚拟存钱指南·根据用户的选择,输入的日期或者周数,获取预收入
    版本:5.0
    日期:2018.12.30
'''
import math,datetime
#全局变量
saving = 0
money_list = []   # 记录每周存款数的列表
saved_money_list = [] #记录每周账户累计
def save_money_in_n_weeks(money_per_week,increase_money,total_week):
    '''
    计算n周内的存款金额
    '''
    global saving,money_list,saved_money_list    # 全局变量的设置

    for i in range(total_week):
        money_list.append(money_per_week)
        saving = math.fsum(money_list)
        saved_money_list.append(saving)
        # 更新下一周的存钱金额
        i += 1
        money_per_week += increase_money
    return saving

def main():
    '''
    主函数 
    '''
    money_per_week = float(input('请输入第一周存入的金额:'))            #每周存入的金额
    increase_money = float(input('请输入每周存入递增金额:'))            #递增的金额
    total_week = int(input('请输入您预计总共的周数:'))                        #总共的周数
    save_money_in_n_weeks(money_per_week, increase_money, total_week)    #调入函数
    print('预计您总共存入金额:',saving)

    def find_money_per_week_and_saving():
        '''
        查询系统函数
        '''
        nonlocal total_week        #非全局变量的设置
        global money_list, saved_money_list      #全局变量的设置
        y_or_n = input('您是否要查询存款金额?(y or n)')
        if y_or_n == 'y':
            y_or_n_date = input('您要查找周数还是查找日期(w or d)?')
            if y_or_n_date == 'w':
                week_find = int(input('请输入您要查找的周序数(用阿拉伯数字输入);'))
                if week_find <= total_week:
                    print('您第{}周存入的金额为{},累计已存入{}元'.format(week_find, money_list[week_find - 1],saved_money_list[week_find - 1]))
                    find_money_per_week_and_saving()  # 调入本函数实现循环
            elif y_or_n_date == 'd':
                date_find = input('请输入您要查找的日期(yyyy/mm/dd):')
                date_find_split = datetime.datetime.strptime(date_find,'%Y/%m/%d')
                final_result = date_find_split.isocalendar()[1]
                print('您输入的{}是该年第{}周'.format(date_find,final_result))
                print('您在这一周预计存入的金额为{}元,累计已存入{}元'.format(money_list[final_result - 1],saved_money_list[final_result - 1]))
                print('************************************************************')   #纯粹是为了美观
                find_money_per_week_and_saving()  # 调入本函数实现循环

    find_money_per_week_and_saving()    #在主函数内调入在主函数内部定义的函数

if __name__ == '__main__':
    main()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值