文章目录
- 1.版本一
- 2. 版本2
- 3. 版本3
- 4.版本4
- 5.版本5
1.版本一
"""
作者:king
功能:52周存钱挑战
版本:1.0
时间:04.03
使用到的技术 while循环 数据结构化的输出
下一版本升级 : 数据可以全部输出,但是吧可以进行每一周的输出
"""
def main():
"""
主函数
"""
money_per_week = 10 ## 每周存进的金额
i = 1 ## 记录周数
increase_money = 10 ## 递增金额
total_week = 52 ## 总共的周数
saving = 0 ## 账号累计
while i <= total_week:
# 存钱的操作
#saving = saving + money_per_week
saving += money_per_week
# 输出信息
print('第{}周,存入{}元,账号累计{}元'.format(i,money_per_week,saving))
#更新下一周存钱金额
money_per_week += increase_money
i += 1
if __name__=='__main__':
main()
2. 版本2
"""
作者:king
功能:52周存钱挑战
版本:2.0
时间:04.03
使用到的技术 while循环 数据结构化的输出
记录每一周的存款数
"""
import math
def main():
"""
主函数
"""
money_per_week = 10 ## 每周存进的金额
i = 1 ## 记录周数
increase_money = 10 ## 递增金额
total_week = 52 ## 总共的周数
saving = 0 ## 账号累计
money_list = [] ##记录每周的存款数
while i <= total_week:
# 存钱的操作
#saving = saving + money_per_week
#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()
3. 版本3
"""
作者:king
功能:52周存钱挑战
版本:3.0
时间:04.03
使用到的技术 while循环 数据结构化的输出
将while循环改造为for循环
"""
import math
def main():
"""
主函数
"""
money_per_week = 10 ## 每周存进的金额
i = 1 ## 记录周数
increase_money = 10 ## 递增金额
total_week = 52 ## 总共的周数
saving = 0 ## 账号累计
money_list = [] ##记录每周的存款数
#while i <= total_week:
for i in range(total_week):
money_list.append(money_per_week)
saving = math.fsum(money_list)
# 输出信息
print('第{}周,存入{}元,账号累计{}元'.format(i+1,money_per_week,saving))
#更新下一周存钱金额
money_per_week += increase_money
if __name__=='__main__':
main()
4.版本4
"""
作者:king
功能:52周存钱挑战
版本:4.0
时间:04.03
4.0版本增加灵活设置每周的存款数,增加的存款以及存款周数
"""
import math
##全局变量
#saving = 0
def save_money_in_n_weeks(money_per_week,increase_money,total_week):
"""
计算n周内的存款金额
"""
#global saving
money_list = [] ##记录每周的存款数
for i in range(total_week):
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_week = int(input('请输入总共的周数:')) ## 总共的周数
saving = save_money_in_n_weeks(money_per_week,increase_money,total_week)
print('总的存款金额:',saving)
if __name__=='__main__':
main()
5.版本5
"""
作者:king
功能:52周存钱挑战
版本:5.0
时间:04.03
4.0版本增加灵活设置每周的存款数,增加的存款以及存款周数
5.0版本增加的功能:根据用户输入的日期,判断是一年中的第几周,然后输出相应的存款金额
"""
import math
import datetime
def save_money_in_n_weeks(money_per_week,increase_money,total_week):
"""
计算n周内的存款金额
"""
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)
# 输出信息
#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_week = int(input('请输入总共的周数:')) ## 总共的周数
saved_money_list = save_money_in_n_weeks(money_per_week,increase_money,total_week)
input_date_str = input('请输入日期(yyyy/mm/dd):')
input_date = datetime.datetime.strptime(input_date_str, '%Y/%m/%d')
week_num = input_date.isocalendar()[1]
#week_num = int(input('请输入第几周:'))
print('第{}周的存款:{}元'.format(week_num,saved_money_list[week_num - 1]))
if __name__=='__main__':
main()