主页 > imtoken钱包哪个版本好 > 很多朋友问我学完Python有没有什么好的项目可以实践。

很多朋友问我学完Python有没有什么好的项目可以实践。

imtoken钱包哪个版本好 2023-01-17 08:59:16

很多朋友问我学完Python有没有什么好的项目可以实践。

其实做项目主要是按需求来的。 但是对于一个初学者来说比特币提醒器哪个好,很多复杂的项目是无法独立完成的,所以博主选择了一个非常适合初学者的项目。 内容不是很复杂,但是很有趣。 没有比项目更好的了。

在这个项目中,我们将构建一个比特币价格警报服务。

仅需不到50行代码即可完成一个比特币价格提醒服务的功能,并可轻松扩展到其他加密数字货币和服务。

我们马上来看看。

用 Python 实现比特币价格提醒

我们都知道比特币是一个动人的东西。 你无法真正知道它的去向。 因此,为了避免我们不得不反复刷新以查看发生了什么,我们可以制作一个 Python 应用程序来为您完成这项工作。

为此,我们将使用 IFTTT,一个流行的自动化站点。 IFTTT(“if this, then that”)是一个可以在不同的应用程序设备和网络服务之间架起桥梁的工具。

我们将创建两个 IFTTT 小程序:

这两个程序都将由我们的 Python 应用程序触发,该应用程序从 Coinmakercap API 获取数据点击此处。

一个 IFTTT 程序由两部分组成:触发部分和动作部分。

在我们的例子中,触发器是 IFTTT 提供的 Webhook 服务。 您可以将 webhook 视为“用户定义的 HTTP 回调”。 更多信息请参考:WEBHOOK

我们的 Python 应用程序将向 webhook URL 发出 HTTP 请求,webhook URL 将触发该操作。 有趣的部分来了,这个动作可以是任何你想要的。 IFTTT 提供多种操作,例如发送电子邮件、更新 Google 电子表格,甚至给您打电话。

配置项

如果你安装了 python3,只需要再安装一个 requests 包。

$ pip install requests==2.18.4  # We only need the requests package
复制代码

选择一个编辑器,比如 Pycharm 来进行代码编辑。

获取比特币价格

代码很简单,在控制台就可以完成。 导入 requests 包,然后定义 bitcoin_api_url 变量,即 Coinmarketcap API 的 URL。

接下来,使用 requests.get() 函数发送 HTTP GET 请求并保存响应。 由于 API 返回 JSON 响应,我们可以通过 .json() 将其转换为 Python 对象。

>>> import requests
>>> bitcoin_api_url = 'https://api.coinmarketcap.com/v1/ticker/bitcoin/'
>>> response = requests.get(bitcoin_api_url)
>>> response_json = response.json()
>>> type(response_json) # The API returns a list

>>> # Bitcoin data is the first element of the list
>>> response_json[0]
{'id': 'bitcoin', 'name': 'Bitcoin', 'symbol': 'BTC', 'rank': '1', 
 'price_usd': '10226.7', 'price_btc': '1.0', '24h_volume_usd': '7585280000.0',
 'market_cap_usd': '172661078165', 'available_supply': '16883362.0', 
 'total_supply': '16883362.0', 'max_supply': '21000000.0', 
 'percent_change_1h': '0.67', 'percent_change_24h': '0.78', 
 'percent_change_7d': '-4.79', 'last_updated': '1519465767'}
复制代码

上面我们对 price_usd 感兴趣。

发送测试 IFTTT 提醒

现在我们可以继续进行 IFTTT。 在使用IFTTT之前,我们需要先新建一个IFTTT账号,然后安装手机APP(如果你想在手机上接收通知)设置成功后,开始新建一个IFTTT小程序进行测试。

要创建新的测试小程序,请执行以下步骤:

点击大“这个”按钮; 搜索“webhooks”服务并选择“接收网络请求”触发器; 将事件重命名为 test_event; 然后选择大的“那个”按钮; 搜索“通知”服务,选择“从IFTTT应用程序发送通知”,将短信更改为我刚刚触发了我的第一个IFTTT动作!,然后点击“创建动作”; 点击“完成”按钮完成;

要查看如何使用 IFTTT webhook,请单击“文档”按钮。 文档页面包含 webhook 的 URL。

https://maker.ifttt.com/trigger/{event}/with/key/{your-IFTTT-key}
复制代码

接下来,您需要将 {event} 替换为您在第 3 步中给自己起的名称。{your-IFTTT-key} 是现有的 IFTTT 密钥。

现在您可以复制 webhook URL 并启动另一个控制台。 还导入请求并发送发布请求。

>>> import requests
>>> # Make sure that your key is in the URL
>>> ifttt_webhook_url = 'https://maker.ifttt.com/trigger/test_event/with/key/{your-IFTTT-key}'
>>> requests.post(ifttt_webhook_url)

复制代码

运行后可以看到:

比特币价值比特币最新_外国的比特币便宜中国的比特币贵为什么?_比特币提醒器哪个好

创建 IFTTT 小程序

前面只是一个测试,现在我们已经到了最重要的部分。 在开始编写代码之前,我们需要创建两个新的 IFTTT 小程序:一个用于比特币价格的紧急通知,一个用于定期更新。

用于比特币价格紧急通知的小程序:

选择“webhooks”服务,并选择“Receive a web request”触发器; 将事件事件命名为 bitcoin_price_emergency; 对于响应的操作部分,选择“通知”服务,然后继续选择“从 IFTTT 应用程序发送丰富的通知”操作;提供标题,例如“比特币价格紧急情况!” 将 SMS 设置为比特币价格为 ${{Value1}}。 立即购买或出售! (我们稍后会返回到 {{Value1}} 部分)可选,您可以添加指向 Coinmarketcap 比特币页面的 URL 链接:; 创建动作,然后完成小程序设置;

定期更新价格的小程序:

同理选择“webhooks”服务,选择“Receive a web request”的触发器; 将事件事件命名为 bitcoin_price_update; 响应的动作部分,选择“Telegram”服务,然后继续选择“发送消息”动作; 设置短信信息内容为:比特币最新价格:

{{Value1}}; 创建动作,然后完成小程序设置; 将所有东西连接在一起

现在我们有了 IFTTT,这是代码。 您将从创建如下所示的标准 Python 命令行应用框架开始。 码码起来,然后另存为bitcoin_notifications.py:

import requests
import time
from datetime import datetime
def main():
    pass
if __name__ == '__main__':
    main()
复制代码

接下来,我们需要将前面两个 Python 控制台部分的代码转换成两个函数,这两个函数将返回最新的比特币价格比特币提醒器哪个好,然后分别将它们发送到 IFTTT webhook。 在 main() 函数上方添加以下代码。

BITCOIN_API_URL = 'https://api.coinmarketcap.com/v1/ticker/bitcoin/'
IFTTT_WEBHOOKS_URL = 'https://maker.ifttt.com/trigger/{}/with/key/{your-IFTTT-key}'
def get_latest_bitcoin_price():
    response = requests.get(BITCOIN_API_URL)
    response_json = response.json()
    # Convert the price to a floating point number
    return float(response_json[0]['price_usd'])
def post_ifttt_webhook(event, value):
    # The payload that will be sent to IFTTT service
    data = {'value1': value}
    # inserts our desired event
    ifttt_event_url = IFTTT_WEBHOOKS_URL.format(event)
    # Sends a HTTP POST request to the webhook URL
    requests.post(ifttt_event_url, json=data)
复制代码

get_latest_bitcoin_price 除了将价格从字符串更改为浮点数外,基本没有变化。 psot_ifttt_webhook 需要两个参数:事件和值。

事件参数对应于我们之前命名的触发器名称。 同时,IFTTT 的 webhooks 允许我们通过请求发送额外的数据,数据是 JSON 格式。

这就是我们需要 value 参数的原因:在设置我们的小程序时,我们在消息文本中有 {{Value1}} 标记。 此标记将替换为 JSON 负载中的 values1 文本。 requests.post() 函数允许我们通过设置 json 关键字来发送额外的 JSON 数据。

现在我们可以继续我们应用程序的核心主要功能代码。 它包含一个 while True 循环,因为我们希望应用程序永远运行。 在循环中,我们调用 Coinmarkertcap API 获取最新的比特币价格,并记录当前的日期和时间。

根据当前价格,我们将决定是否要发送紧急通知。 对于我们的定期更新,我们会将当前价格和日期放入 bitcoin_history 列表中。 一旦列表达到一定数量(比如 5),我们将把它包起来,发送更新,然后为后续更新重置历史记录。

一个警告是避免过于频繁地发送消息,原因有二:

因此,我们最终添加了一个“go to sleep”睡眠,设置至少 5 分钟后才能获取新数据。 下面的代码实现了我们需要的功能:

BITCOIN_PRICE_THRESHOLD = 10000  # Set this to whatever you like
def main():
    bitcoin_history = []
    while True:
        price = get_latest_bitcoin_price()
        date = datetime.now()
        bitcoin_history.append({'date': date, 'price': price})
        # Send an emergency notification
        if price < BITCOIN_PRICE_THRESHOLD:
            post_ifttt_webhook('bitcoin_price_emergency', price)
        # Send a Telegram notification
        # Once we have 5 items in our bitcoin_history send an update
        if len(bitcoin_history) == 5:
            post_ifttt_webhook('bitcoin_price_update', 
                               format_bitcoin_history(bitcoin_history))
            # Reset the history
            bitcoin_history = []
        # Sleep for 5 minutes 
        # (For testing purposes you can set it to a lower number)
        time.sleep(5 * 60)
复制代码

我们快到了。 但是仍然缺少一个 format_bitcoin_history 函数。它以 bitcoin_history 作为参数,然后使用 Telegram 允许的基本 HTML 标签(如

, , 等) 来转换格式。 将此函数复制到 main() 之上。

def format_bitcoin_history(bitcoin_history):
    rows = []
    for bitcoin_price in bitcoin_history:
        # Formats the date into a string: '24.02.2018 15:09'
        date = bitcoin_price['date'].strftime('%d.%m.%Y %H:%M')
        price = bitcoin_price['price']
        #  (bold) tag creates bolded text
        # 24.02.2018 15:09: $10123.4
        row = '{}: ${}'.format(date, price)
        rows.append(row)
    # Use a 
(break) tag to create a new line # Join the rows delimited by
tag: row1
row2
row3 return '
'.join(rows) 复制代码

最终在手机上显示的结果是这样的:

比特币提醒器哪个好_外国的比特币便宜中国的比特币贵为什么?_比特币价值比特币最新

那么,我们的功能就完成了,只要比特币的价格有更新,在移动端就会有提醒。 当然,如果你觉得烦,你也可以在应用中将其关闭。