0


三天打鱼,两天晒网(python)

三天打鱼两天晒网(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()
标签: python

本文转载自: https://blog.csdn.net/m0_52451299/article/details/115128904
版权归原作者 bug 受虐狗 所有, 如有侵权,请联系我们删除。

“三天打鱼,两天晒网(python)”的评论:

还没有评论