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

版权声明:不经博主同意不得以任何名义转载,谢谢合作 https://blog.csdn.net/Z_Howe01/article/details/85380300
第一次使用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()

猜你喜欢

转载自blog.csdn.net/Z_Howe01/article/details/85380300