对于python初学者有哪些项目可以用来练练手
SegmentFault 社区原文:给Python初学者的最好练手项目;作者:路远
有很多朋友问我学习了Python后,有没有什么好的项目可以练手。
其实,做项目主要还是根据需求来的。但是对于一个初学者来说,很多复杂的项目没办法独立完成,因此博主挑选了一个非常适合初学者的项目,内容不是很复杂,但是非常有趣,我相信对于初学者小白来说是再好不过的项目了。
这个项目中,我们将要建立一个比特币价格的提醒服务。
你将主要会学习到HTTP的请求,以及如何使用requests包来发送这些请求。同时,你会了解webhooks和如何使用它将Python app与外部设备连接,例如移动端手机提醒或者 Telegram 服务。仅仅不到50行的代码就能完成一个比特币价格提醒服务的功能,并且可以轻松的扩展到其它加密数字货币和服务中。
下面我们马上来看看。
用Python实现比特币价格提醒我们都知道,比特币是一个变动的东西。你无法真正的知道它的去向。因此,为了避免我们反复的刷新查看最新动态,我们可以做一个Python app来为你工作。
为此,我们将会使用一个很流行的自动化网站IFTTT。IFTTT("if this, then that")是一个可以在不同app设备与web服务之间建立连接桥梁的工具。
我们将会创建两个IFTTT applets:
一个是当比特币价格下滑到一定阈值后的紧急提醒另一个是常规的比特币价格的更新两个程序都将被我们的Python app触发,Python app从Coinmakercap API (https://coinmarketcap.com/api/) 获取数据。
一个IFTTT程序有两个部分组成:触发部分和动作部分。
在我们的情况下,触发是一个IFTTT提供的webhook服务。你可以将webhook想象为"user-defined HTTP callbacks",更多请参考:http://timothyfitz.com/2009/0...
我们的Python app将会发出一个HTTP请求到webhook URL,然后webhook URL触发动作。有意思的部分来了,这个动作可以是你想要的任何东西。IFTTT提供了众多的动作像发送一个email,更新一个Google电子数据表,甚至可以给你打电话。
配置项目如果你安装了python3,那么只要再安装一个requests包就可以了。$ pip install requests==2.18.4 # We only need the requests package选一个编辑器,比如Pycharm进行代码编辑。
获取比特币价格代码很简单,可以在console中进行。导入requests包,然后定义bitcoin_api_url变量,这个变量是Coinmarketcap API的URL。
接着,使用requests.get()函数发送一个 HTTP GET请求,然后保存响应response。由于API返回一个JSON响应,我们可以通过.json()将它转换为python对象。\u0026gt;\u0026gt;\u0026gt; import requests\u0026gt;\u0026gt;\u0026gt; bitcoin_api_url = \u0026#39;https://api.coinmarketcap.com/v1/ticker/bitcoin/\u0026#39;\u0026gt;\u0026gt;\u0026gt; response = requests.get(bitcoin_api_url)\u0026gt;\u0026gt;\u0026gt; response_json = response.json()\u0026gt;\u0026gt;\u0026gt; type(response_json) # The API returns a list\u0026lt;class \u0026#39;list\u0026#39;\u0026gt;\u0026gt;\u0026gt;\u0026gt; # Bitcoin data is the first element of the list\u0026gt;\u0026gt;\u0026gt; response_json{\u0026#39;id\u0026#39;: \u0026#39;bitcoin\u0026#39;, \u0026#39;name\u0026#39;: \u0026#39;Bitcoin\u0026#39;, \u0026#39;symbol\u0026#39;: \u0026#39;BTC\u0026#39;, \u0026#39;rank\u0026#39;: \u0026#39;1\u0026#39;, \u0026#39;price_usd\u0026#39;: \u0026#39;10226.7\u0026#39;, \u0026#39;price_btc\u0026#39;: \u0026#39;1.0\u0026#39;, \u0026#39;24h_volume_usd\u0026#39;: \u0026#39;7585280000.0\u0026#39;, \u0026#39;market_cap_usd\u0026#39;: \u0026#39;172661078165\u0026#39;, \u0026#39;available_supply\u0026#39;: \u0026#39;16883362.0\u0026#39;, \u0026#39;total_supply\u0026#39;: \u0026#39;16883362.0\u0026#39;, \u0026#39;max_supply\u0026#39;: \u0026#39;21000000.0\u0026#39;, \u0026#39;percent_change_1h\u0026#39;: \u0026#39;0.67\u0026#39;, \u0026#39;percent_change_24h\u0026#39;: \u0026#39;0.78\u0026#39;, \u0026#39;percent_change_7d\u0026#39;: \u0026#39;-4.79\u0026#39;, \u0026#39;last_updated\u0026#39;: \u0026#39;1519465767\u0026#39;}
推荐阅读
- 5.1声道片源对于没有5.1硬件系统的用户来说有意义吗
- |常州天宁:检察建议让“忙道”回归盲道
- 怎样成为一名合格的Python程序员?
- python 爬虫,咋获得输入验证码之后的搜索结果
- python的html5lib这个库咋使用啊我在网上也没有找到相关文档
- 英雄联盟快捷键Q、E、R咋操作呢
- 零基础入门学习啥语言好
- 2017年iPhone性价比最高的是哪款产品
- Python3.4和3.5区别大么
- 友盟对于日活是怎么样统计的
