鱼C论坛

 找回密码
 立即注册
查看: 3078|回复: 1

[原创] 【Python038作业】打卡挑战

[复制链接]
发表于 2021-7-8 11:01:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
菜鸟一个
写了个很简陋的打卡挑战,根据每天完成任务的时间自动升级(这不是放假了嘛,也算是督促自己)
日志存放在自己选的txt文档
当然,具体升级条件和打印内容可以自己更改

import easygui as g
import time

g.msgbox('欢迎使用坚持打卡系统')

count = 1
fields = []

while 1:
    target = g.enterbox(msg = '请输入今天完成的第{}个任务(输入“结束”停止录入)'.format(count),title = '任务清单录入')
    if target == '结束':
        break
    if target == '':#检测是否为空
        g.msgbox('您录入的任务不能为空')
        continue
    else:
        count += 1
        fields.append(target)
#完成任务的录入

title = '任务清单'
msg = '请输入每一项任务坚持的时间(单位为小时,请输入阿拉伯数字)'
fields_values = g.multenterbox(msg,title,fields = fields)

while 1:#数据不能为空且要为数字
    if fields_values == None:
        break
    errmsg = ''
    for i in range(len(fields)):
        try:
            int(fields_values[i].strip())
        except ValueError:
            errmsg += '{}录入数据格式有误,请重新输入\n'.format(fields[i])
    if errmsg == '':
        break
    fields_values = g.multenterbox(errmsg,title,fields = fields,values = fields_values)
            
#建立任务清单
dict_target = dict(zip(fields,fields_values))

g.msgbox('请选择一个文本文件保存您的打卡记录')
file_txt = g.fileopenbox()#利用txt文档记录


def check(file_txt):
    with open(file_txt) as f1:
        content = list(f1)
        if content == []:
            level = 1
            return level
        else:
            return content[-1][-1]#返回上一次等级
            
               
def cul_level():
    level = check(file_txt)
    with open(file_txt,'a') as f:
        f.write('\n{}\n'.format(time.asctime(time.localtime(time.time()))))
        f.write('任务记录(L{}):'.format(level))
        f.write('\n')
        sum_exp = 0
        for each_item in dict_target.items():
            f.write('{}{}小时\n'.format(each_item[0],each_item[1]))
            exp = int(each_item[1])*10#每完成一小时经验加十
            sum_exp += exp
        new_level = int(level) + sum_exp // 50
        if new_level > int(level):
            f.write('等级升至L{}'.format(new_level))
        else:
            f.write('等级为L{}'.format(level))
            #经验升级规则以及日志录入


cul_level()


屏幕截图(13).png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-8 18:05:17 | 显示全部楼层
不错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 02:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表