三天打鱼两天晒网(python)
问题概述:中国有句话叫“三天打鱼两天晒网”,一个人从2021年5月15日起开始“三天打鱼两天晒网”,那么这个人在以后的某一天中是在“打鱼”还是在“晒网”呢?步骤:
1.算法分析
首先先解决计算天数的问题
其次解决的是计算的问题
再者是检查输入日期的真假性
最后是如果输入的日期满足条件,则判断这个人你今天是出于什么状态
2.概要设计
3.测试
调试(对测试出的问题进行调试,调试输入日期,文件测试通过逐行的读取输入,调用第一点的方法来获取天数,调用获取结果的方法,来获得每条的结果,然后写入文件之中,利用循环,当读取到最后的时候直接结束。
4.界面截屏
测试输入一个错误的日期,显然不能输出。
5.心得体会
本次的代码编写过程中,循序渐进的编写。首先通过分析题目得出题目解法的核心思路,然后第一步就是通过利用核心思路去解决我们这个问题需要解决的核心问题。也就是利用python里面相关的模块,来得到用户输入的天数与最开始的天数的差,得到天数,再计算得到具体的结果。然后再基于我们对核心问题的解,去扩展得到满足更多要求的解法,最终满足整个的基本要求和提高要求。满足文件测试的需求,满足输入数据检测的需求,满足扩大文件的需求。总的来说就是循序渐进,一步一步的解决一个要求很多的问题。
附录源代码
from datetime import datetime
import time
import os
date input with the keyboard
def get_days(date_input):
get the days
date_base = ‘2020-01-01’
date_input = input(‘please input the date you want to test with the form xxxx-xx-xx:’)
check its form and work out the answer
date_input = datetime.strptime(date_input, ‘%Y-%m-%d’)
date_base = datetime.strptime(date_base, ‘%Y-%m-%d’)
date_days = (date_input - date_base).days
return date_days
to work out the result into the file out.txt
def work_result(date_days,date_input):
mod_day = date_days % 5
date_input = datetime.strptime(date_input, ‘%Y-%m-%d’)
with open(‘out.txt’, ‘a’) as file_out:
if mod_day <= 3:
file_out.write(date_input + ’ fishing\n’)
print(date_input + ’ fishing’)
else:
file_out.write(date_input + ’ webbing\n’)
print(date_input + ’ webbing’)
file_out.close()
test the aoolication with file date
def file_date_test():
print(‘the following is file test’)
with open(‘in.txt’) as file:
context_line = file.readline()
while context_line:
remove the character ‘\n’
context_line = context_line.rstrip(’\n’)
get the days
days_in_file = get_days(context_line)
work out into the file out.txt
work_result(days_in_file,context_line)
context_line = file.readline()
file.close()
check the date
def isVaildDate(date):
try:
time.strptime(date, “%Y-%m-%d”)
return True
except:
return False
if name == “main”:
date_input = input(‘please input the date you want to test with the form xxxx-xx-xx:’)
while not isVaildDate(date_input):
date_input =input(‘date is illegal,please check and input it again:’)
# expand ths test file use the input
with open('in.txt', 'a') as file_input:
size = os.path.getsize('in.txt')
if size==0:
file_input.write(date_input)
else:
file_input.write('\n'+ date_input)
file_input.close()
# test the application
date_days = get_days(date_input)
work_result(date_days,date_input)
# test the file input and output
file_date_test()
版权归原作者 bug 受虐狗 所有, 如有侵权,请联系我们删除。