每日10行代码108: python编写的自我奖励小程序

176 篇文章 4 订阅
15 篇文章 2 订阅

前几天看了一本书名字叫《慢思考》,书中的最后提到了自我奖励和惩罚,主要说的时用奖励来促进自己完成计划,完成自我的约束,有惩罚来约束自己的过错。
其实类似这样的奖励和惩罚在很多书中都有提到,这次又一次的遇到这个提法,我突然产生一个想法:
我要用python来实现一个随机奖励的小程序。
为什么要随机呢?因为有相关研究表明,随机的奖励比固定的奖励更加的吸引人,这也是游戏中随机奖励的根本原因。
经过这两天断断续续的编码,在今天我把这个功能实现了,现在分享给大家。
先看一下我的奖励文件,我把所有的奖励内容都放在了一个json文件里,大概的内容如下,大家可以自行修改想要的奖励:

{"喝一杯星巴克咖啡":10,
"买一本喜欢的书":10,
"玩一次炉石传说":10,
"玩一次巫师3":8,
"买游戏《血污:夜之仪式》":3,
"个人奖励金钱账户增加若干":120,
"个人奖励时间账户增加若干":120,
"看一部电影":2,
"15分钟无目的放松":10,
"买一双鞋":2}

上面左边都是奖励内容,右边是奖励的权重,权重越大,随机先出的概率就越大,注意有两个奖励权重特别大,分别是“个人奖励金钱账户增加若干” 和"个人奖励时间账户增加若干" 这个其实就是给自己一定的金钱或时间奖励。
最后主程序:

import random
import json
import time
import openpyxl


def lottery():
    filepath=r"个人奖励清单.json"
    with open(filepath,encoding='utf-8') as f:
        data_dict = json.load(f)


    population = [i for i in data_dict.keys()]
    weights = [j for j in data_dict.values()]
    t=random.choices(population,weights,k=1)
    add_money,add_time = 0,0
    reward_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) 
    reward = ""
    if t[0]=="个人奖励金钱账户增加若干":
        add_money = round(random.normalvariate(15,5))
        reward = f"个人奖励金钱账户增加{add_money}元"
    elif t[0]=="个人奖励时间账户增加若干":
        add_time = round(random.normalvariate(15,5))
        reward = f"个人奖励时间账户增加{add_time}分钟"
    else:
        reward = t[0]
    return reward_time,reward,add_time,add_money
    

def save(reason,reward_time,reward,add_time,add_money,res_excel):
    wb = openpyxl.load_workbook(res_excel)
    ws = wb.active
    ws.append([reason,reward_time,reward,add_time,add_money])
    wb.save(res_excel)


if __name__ == '__main__':
    res_excel = r'个人奖励记录.xlsx'    
    str = input("是否要进行奖励::")
    if str.upper()=='Y': 
        reason = input("请输入奖励原因:")       
        reward_time,reward,add_time,add_money=lottery()
        save(reason,reward_time,reward,add_time,add_money,res_excel)
    else:
        exit("输入异常,程序正常退出")

最终的奖励结果我保存在excel里,大致格式如下:
在这里插入图片描述
本来准备传个附件的,结果没找到地方,就直接贴图了。

ps:这个小程序虽然简单,但是确是我最近写的最满意的一段代码了,希望以后我能每天给自己奖励。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 在 Python编写爬虫小程序通常会使用到一些第三方库,比如 Requests 和 BeautifulSoup。 首先,需要安装这两个库,可以使用 pip 命令安装: ``` pip install requests pip install beautifulsoup4 ``` 然后,就可以开始编写爬虫代码了。首先,使用 Requests 库发送 HTTP 请求,获取网页的 HTML 源代码: ```python import requests url = 'http://www.example.com' response = requests.get(url) html = response.text ``` 接下来,使用 BeautifulSoup 解析 HTML 源代码,并使用 find() 或 find_all() 方法提取你想要的信息: ```python from bs4 import BeautifulSoup soup = BeautifulSoup(html, 'html.parser') # 提取所有的段落 paragraphs = soup.find_all('p') # 提取第一个段落 first_paragraph = soup.find('p') ``` 通常,还会使用正则表达式或其他方法来进一步处理提取出来的信息。 爬虫程序的具体实现可能因网站而异,但是上面的步骤是编写爬虫的基本流程。 ### 回答2: Python是一种功能强大的编程语言,非常适合编写爬虫小程序。下面我将用300字中文回答如何使用Python编写爬虫小程序。 首先,我们需要安装Python,并在电脑上配置好开发环境。接下来,我们可以使用Python的爬虫库,如BeautifulSoup、requests等,来帮助我们实现爬虫功能。 首先,我们需要导入所需的库。例如,使用"import requests"导入requests库。 然后,我们可以使用requests库向目标网站发送请求,获取网页的内容。例如,使用"response = requests.get('http://www.example.com')"获取网页的内容。 接下来,我们可以使用BeautifulSoup库来解析网页的内容,并提取我们需要的信息。例如,使用"bs = BeautifulSoup(response.text, 'html.parser')"解析网页。 然后,我们可以使用BeautifulSoup提供的方法,如"find_all"、"find"等,来查找和提取我们需要的信息。例如,使用"bs.find_all('a')"查找网页中的所有链接。 最后,我们可以将提取到的信息保存到文件中,或者进其他的数据处理。 在编写爬虫小程序时,我们需要注意一些问题。首先,合法性和道德性是很重要的。我们应该遵守相关法律法规,并遵循网站的规则。其次,我们要注意爬取速度,以免给目标网站造成过大的负担。最后,我们需要处理异常情况,如网络连接问题和页面解析错误等。 总的来说,Python编写爬虫小程序是一项非常有趣和有挑战性的任务。通过合理地使用Python的库和技巧,我们可以方便地获取到所需的信息,并实现各种各样的功能。无论是学习资料的搜集、数据的分析,还是网络爬虫的开发,Python都是一个非常强大的工具。相信通过学习和实践,我们可以编写出高效且稳定的爬虫小程序。 ### 回答3: Python编写爬虫小程序是指使用Python语言编写一个能够自动获取互联网上信息的程序。爬虫是指模拟浏览器为,自动访问网页并提取网页中的数据。 编写一个爬虫小程序通常包括以下几个步骤: 1. 导入所需的库:使用Python编写爬虫程序时,首先需要导入所需的库,例如requests、beautifulsoup等,以帮助程序实现网络请求和数据解析功能。 2. 发起网络请求:使用requests库发送HTTP请求,并获取网页的HTML源码。 3. 数据解析:使用beautifulsoup等库解析HTML源码,提取所需的数据。可以通过选择器、xpath等方式定位指定的元素,获取其文本内容或属性。 4. 数据存储:将爬取到的数据存储到文件或数据库中,以便后续使用。 5. 循环爬取多个页面:如果需要爬取多个页面,可以使用循环结构,根据不同的网址重复执步骤2、3和4。 6. 异常处理:在编写爬虫程序时,也需要考虑到异常情况的处理,例如网络连接超时、页面不存在等情况,可通过try...except语句块捕获异常,并执相应的处理操作。 总之,通过Python编写爬虫小程序可以轻松地获取网页上的数据,并进进一步的处理和分析。但在实际应用中,需要注意尊重网站的规则,合理使用爬虫技术,避免给网站带来过多的访问压力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值