第一次使用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()