見出し画像

Pythonで作る仮想通貨ポートフォリオ アプリ

ステップ・バイ・ステップで暗号通貨のポートフォリオ アプリ作成の手順を示していきます。

0章 概要

0-1    アプリの機能

・仮想通貨の現在価格等を一覧表示
・購入した仮想通貨の価格等を一覧表示
・現在保有する仮想通貨と現在価格の関係から損益状況表示
・保有する仮想通貨情報の新規登録、編集、削除機能
・etc.

0-2  学習内容

・Pythonを使った実践的な開発
・仮想通貨APIの利用方法
・Tkinterを通じたデスクトップアプリの作成
・データベースの利用とアプリとの連携方法(作成・編集・削除・抽出)

0-3  全体を通じた注意点

・作成手順の説明に重点を置き、コードの詳細な説明は省略しています。
(寄せられた質問等に応じて、随時説明を追加し、更新していきます。)

・note上に貼り付けられたコードをコピペされる際は、インデントがズレてしまう時がありますので、その都度、修正をお願いいたします。

0-4   開発環境

・Windows10
・Python3系(既に開発環境がある前提で進めていきます。)

本教材の完成イメージは以下になります。

完成画面

各項目の説明

コイン名 = 仮想通貨名
価格 = 1コインあたりの現在価格
保有コイン数 = 購入したコイン数
購入金額 = 購入時の価格 × 保有コイン数
現在価格 = 価格 × 保有コイン数

1章  APIの取得

まずは下記のサイトで無料アカウントを作成しましょう。


画像45

「GET YOUR API KEY NOW」をクリックし、無料アカウントを作成してください。

Planは下記のBasicプランを選択してください。

プランーフリー


ログイン後画面から、API Keyの枠のところにカーソルをあてると、
「COPY KEY」と表示されますので、ボタンを押してAPI Keyをコピーします。

コピーしたAPIをメモ帳などにコピーしておきます。

ログイン後画面d

2章 APIの利用

2-1 ファイルの作成

デスクトップに「coin_portfolio」という名前で新規フォルダを作成。

任意のエディタからフォルダを開いて、新規ファイルを作成しましょう。(今回はvisual studio codeを使用。何でも構いません。)

画像49

画像50

画像52

新規ファイルを作成し、coin.pyと名付けて保存しましょう。

画像51

以上です。

2-2 APIの実践


coin.pyに下記のように記述する。

my_API = "取得したAPIをここに代入" のところに上記で取得したAPIを入れることを忘れずに。

import requests
import json

# 取得したAPI
my_API = "取得したAPIをここに代入"


api_request = requests.get("https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?start=1&limit=5&convert=JPY&CMC_PRO_API_KEY="+my_API)

api = json.loads(api_request.content)

print(api)

それでは、ここでvisual studio上のターミナルまたはpowershellからコードを実行しましょう。

注意点:コード実行時のターミナルが下記のように作業フォルダ(coin_portfolio)にあることを確認してください。
もし、別のフォルダにある場合は、cd ~ を使って移動してから実行してください。(そうしないとエラーになります。)

ターミナル_LI

runボタンを押して、下記のように表示されることを確認する。

画像48

実行結果
{'status': {'timestamp': '2020-03-17T05:00:13.431Z', 'error_code': 0, 'error_message': None, 'elapsed': 10, 'credit_count': 1, 'notice': None}, 'data': [{'id': 1, 'name': 'Bitcoin', 'symbol': 'BTC', 'slug': 'bitcoin', 'num_market_pairs': 7797, 'date_added': '2013-04-28T00:00:00.000Z', 'tags': ['mineable'], 'max_supply': 21000000, 'circulating_supply': 18274037, 'total_supply': 18274037, 'platform': None, 'cmc_rank': 1, 'last_updated': '2020-03-17T04:59:36.000Z', 'quote': {'JPY': {'price': 544126.9634085277, 'volume_24h': 5022600004133.161, 'percent_change_1h': 0.25609528, 'percent_change_24h': -2.82151983, 'percent_change_7d': -33.92895456, 'market_cap': 9943396262025.082, 'last_updated': '2020-03-17T04:59:03.000Z'}}}, {'id': 1027, 'name':
'Ethereum', 'symbol': 'ETH', 'slug': 'ethereum', 'num_market_pairs': 5183, 'date_added': '2015-08-07T00:00:00.000Z', 'tags':
['mineable'], 'max_supply': None, 'circulating_supply': 110127918.999, 'total_supply': 110127918.999, 'platform': None, 'cmc_rank': 2, 'last_updated': '2020-03-17T04:59:22.000Z', 'quote': {'JPY': {'price': 12065.103296899177, 'volume_24h': 1776191692742.0173, 'percent_change_1h': 0.1547215, 'percent_change_24h': -6.74286208, 'percent_change_7d': -42.38142941, 'market_cap': 1328704718595.4805, 'last_updated': '2020-03-17T04:59:03.000Z'}}}, {'id': 52, 'name': 'XRP', 'symbol': 'XRP', 'slug': 'xrp', 'num_market_pairs': 507, 'date_added': '2013-08-04T00:00:00.000Z', 'tags': [], 'max_supply': 100000000000, 'circulating_supply': 43842625397, 'total_supply': 99991064426, 'platform': None, 'cmc_rank': 3, 'last_updated': '2020-03-17T04:59:06.000Z', 'quote': {'JPY': {'price': 15.196293430141932, 'volume_24h': 295354802995.2594, 'percent_change_1h': 0.50066587, 'percent_change_24h': -5.35301243, 'percent_change_7d': -29.85360105, 'market_cap': 666245400280.605, 'last_updated': '2020-03-17T04:59:03.000Z'}}}, {'id': 825, 'name': 'Tether', 'symbol': 'USDT', 'slug': 'tether', 'num_market_pairs': 4245, 'date_added': '2015-02-25T00:00:00.000Z', 'tags': [], 'max_supply': None, 'circulating_supply': 4642367414, 'total_supply': 4776930644, 'platform': {'id': 83, 'name': 'Omni', 'symbol': 'OMNI', 'slug': 'omni', 'token_address': '31'}, 'cmc_rank': 4, 'last_updated': '2020-03-17T04:59:24.000Z', 'quote': {'JPY': {'price': 103.19497788855166, 'volume_24h': 6376556970711.307, 'percent_change_1h': 0.78138255, 'percent_change_24h': -3.59523203, 'percent_change_7d': -0.80139316, 'market_cap': 479069002638.2628, 'last_updated': '2020-03-17T04:59:03.000Z'}}}, {'id': 1831, 'name': 'Bitcoin Cash', 'symbol': 'BCH', 'slug': 'bitcoin-cash', 'num_market_pairs': 457, 'date_added': '2017-07-23T00:00:00.000Z', 'tags': ['mineable'], 'max_supply': 21000000, 'circulating_supply': 18334912.5, 'total_supply': 18334912.5, 'platform': None, 'cmc_rank': 5, 'last_updated': '2020-03-17T04:59:07.000Z', 'quote': {'JPY': {'price': 18440.909782953502, 'volume_24h': 461885206123.8931, 'percent_change_1h': 0.37151637, 'percent_change_24h': -2.2399873, 'percent_change_7d': -34.2735096, 'market_cap': 338112467290.84644, 'last_updated': '2020-03-17T04:59:03.000Z'}}}]}

任意のデータを抽出してみましょう。
今回は0番目のビットコインの名前と値段を抽出します。

import requests
import json


my_API = "取得したAPIをここに代入"

api_request = requests.get("https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?start=1&limit=5&convert=JPY&CMC_PRO_API_KEY="+my_API)

api = json.loads(api_request.content)

# 追加/修正 ここから--------------------------------start
print(api["data"][0]["symbol"])
print(api["data"][0]["quote"]["JPY"]["price"])
# 追加/修正 ここから--------------------------------end

下記のように表示されたら成功です。

BTC
545346.918010175

次に、他のコインについても適用できるように、for文を使いましょう。

下記のように修正します。

import requests
import json

# 取得したAPI
my_API = "取得したAPIをここに代入"


api_request = requests.get("https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?start=1&limit=5&convert=JPY&CMC_PRO_API_KEY="+my_API)

api = json.loads(api_request.content)

# 追加/修正 ここから--------------------------------start

for i in range(0,5):
   print(api["data"][i]["symbol"])
   print(api["data"][i]["quote"]["JPY"]["price"])
   print("{:,.2f}".format(api["data"][i]["quote"]["JPY"]["price"]))
   print("---------------")

# 追加/修正 ここまで--------------------------------end

"{:,.2f}".format(~) について

これで100円区切り、小数点以下2位まで表示するようにしています。

下記のように表示されれば、成功です。

BTC
549,087.41
---------------
ETH
12,088.62
---------------
XRP
15.32
---------------
USDT
107.18
---------------
BCH
18,834.66
---------------

次に任意に選択した複数のコインにマッチするようにする。
ここでは、BTCとETHを選択したと仮定し、リストを作成。For文の中で、この2つのシンボルに該当する場合にのみ、表示するようにコードを修正。

import requests
import json

# 取得したAPI
my_API = "取得したAPIをここに代入"


api_request = requests.get("https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?start=1&limit=5&convert=JPY&CMC_PRO_API_KEY="+my_API)

api = json.loads(api_request.content)


# 追加/修正 ここから--------------------------------start

coins = ["BTC", "ETH"]

# 追加/修正 ここまで--------------------------------end




for i in range(0,5):

# 追加/修正 ここから--------------------------------start
   for coin in coins:
       if api["data"][i]["symbol"] == coin:
# 追加/修正 ここまで--------------------------------end
           print(api["data"][i]["symbol"])
           print("{:,.2f}".format(api["data"][i]["quote"]["JPY"]["price"]))
           print("---------------")  

下記のように表示されれば、成功。

BTC
590,252.13
---------------
ETH
12,984.99
---------------

更にコイン名も表示したいので、下記のように修正

import requests
import json

# 取得したAPI
my_API = "取得したAPIをここに代入"


api_request = requests.get("https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?start=1&limit=5&convert=JPY&CMC_PRO_API_KEY="+my_API)

api = json.loads(api_request.content)


coins = ["BTC", "ETH"]




for i in range(0,5):
   for coin in coins:
       if api["data"][i]["symbol"] == coin:
           
# 追加/修正 ここから--------------------------------start

           print(api["data"][i]["name"] + " : " +api["data"][i]["symbol"])
           print("{:,.2f}".format(api["data"][i]["quote"]["JPY"]["price"]))
# 追加/修正 ここまで--------------------------------end
            print("---------------")

下記のように表示されれば成功。

Bitcoin : BTC
589,673.72
---------------
Ethereum : ETH
12,935.73
---------------

2-3 損益表示

まずは購入した時の金額(固定値)を辞書型で表現します。
辞書内に、シンボル、保有コイン数、1コイン当たりの金額を盛り込む。

購入時の内容と現在価格を基に損益を表現する。

下記のように修正

import requests
import json

# 取得したAPI
my_API = "取得したAPIをここに代入"

api_request = requests.get("https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?start=1&limit=5&convert=JPY&CMC_PRO_API_KEY="+my_API)

api = json.loads(api_request.content)

# 追加/修正 ここから--------------------------------start

coins = [
   {
       "symbol":"BTC",
       "amount_owned": 2,
       "price_per_coin":800000
   },

   {
       "symbol":"ETH",
       "amount_owned": 10,
       "price_per_coin":10000
   },

]


# 追加/修正 ここまで--------------------------------end

for i in range(0,5):
   for coin in coins:

# 追加/修正 ここから--------------------------------start

       if api["data"][i]["symbol"] == coin["symbol"]:
           total_paid = coin["amount_owned"] * coin["price_per_coin"]
           current_value = coin["amount_owned"] * api["data"][i]["quote"]["JPY"]["price"]
           pl_percoin = api["data"][i]["quote"]["JPY"]["price"] - coin["price_per_coin"]
           total_pl_coin = pl_percoin * coin["amount_owned"]


           print(api["data"][i]["name"] + " : " +api["data"][i]["symbol"])
           print("{:,.2f}".format(api["data"][i]["quote"]["JPY"]["price"]))
           print("保有コイン数", coin["amount_owned"])
           print("購入金額", "{:,.2f}".format(total_paid))
           print("現在金額", "{:,.2f}".format(current_value))
           print("1コイン当たり損益","{:,.2f}".format(pl_percoin))
           print("損益","{:,.2f}".format(total_pl_coin))
           print("---------------")

# 追加/修正 ここまで--------------------------------end

最後に、すべてのコインの合計損益を表示できるようにする。

コードを下記のように修正。

import requests
import json

# 取得したAPI
my_API = "取得したAPIをここに代入"

api_request = requests.get("https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?start=1&limit=5&convert=JPY&CMC_PRO_API_KEY="+my_API)

api = json.loads(api_request.content)

# coins = ["BTC", "ETH"]

coins = [
   {
       "symbol":"BTC",
       "amount_owned": 2,
       "price_per_coin":800000
   },

   {
       "symbol":"ETH",
       "amount_owned": 10,
       "price_per_coin":10000
   },

]


# 追加/修正 ここから--------------------------------start

total_pl = 0

# 追加/修正 ここまで--------------------------------end

for i in range(0,5):
   for coin in coins:
       if api["data"][i]["symbol"] == coin["symbol"]:
           total_paid = coin["amount_owned"] * coin["price_per_coin"]
           current_value = coin["amount_owned"] * api["data"][i]["quote"]["JPY"]["price"]
           pl_percoin = api["data"][i]["quote"]["JPY"]["price"] - coin["price_per_coin"]
           total_pl_coin = pl_percoin * coin["amount_owned"]
            
           
# 追加/修正 ここから--------------------------------start

           total_pl = total_pl + total_pl_coin

# 追加/修正 ここまで--------------------------------end

           print(api["data"][i]["name"] + " : " +api["data"][i]["symbol"])
           print("{:,.2f}".format(api["data"][i]["quote"]["JPY"]["price"]))
           print("保有コイン数", coin["amount_owned"])
           print("購入金額", "{:,.2f}".format(total_paid))
           print("現在金額", "{:,.2f}".format(current_value))
           print("1コイン当たり損益","{:,.2f}".format(pl_percoin))
           print("損益","{:,.2f}".format(total_pl_coin))
           print("---------------")


# 追加/修正 ここから--------------------------------start

print("---------------")
print("合計損益", "{:,.2f}".format(total_pl))

# 追加/修正 ここまで--------------------------------end

実行し、下記のような結果が出れば成功です。

Bitcoin : BTC
698,513.03    
保有コイン数 2
購入金額 1,600,000.00
現在金額 1,397,026.07
1コイン当たり損益 -101,486.97
損益 -202,973.93
---------------
Ethereum : ETH
15,570.98
保有コイン数 10
購入金額 100,000.00
現在金額 155,709.81
1コイン当たり損益 5,570.98
損益 55,709.81
---------------
---------------
合計損益 -147,264.12

3-1 GUIの作成

GUIとしてTkinterを使用します。
まずは表示するために、下記のようにコードを追加しましょう。

また、API以降のコードは関数化し、呼び出さない限り、実行されないようにしておきましょう。
(コインマーケットのAPI無料枠には回数の制限があるため)

# 追加/修正 ここから--------------------------------start


from tkinter import *


# 追加/修正 ここまで--------------------------------end

import requests
import json


# 追加/修正 ここから--------------------------------start

pycrypto = Tk()
pycrypto.title("暗号通貨ポートフォリオ")
pycrypto.mainloop()

# 追加/修正 ここまで--------------------------------end


# 追加/修正 ここから--------------------------------start
# 関数を定義し、全体を選択し、タブキーでインデントをずらす。
def my_portfolio:
   # 取得したAPI
   my_API = "取得したAPIをここに代入"

   api_request = requests.get("https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?start=1&limit=5&convert=JPY&CMC_PRO_API_KEY="+my_API)

   api = json.loads(api_request.content)

   # coins = ["BTC", "ETH"]

   coins = [
       {
           "symbol":"BTC",
           "amount_owned": 2,
           "price_per_coin":800000
       },

       {
           "symbol":"ETH",
           "amount_owned": 10,
           "price_per_coin":10000
       },

   ]


   total_pl = 0

   for i in range(0,5):
       for coin in coins:
           if api["data"][i]["symbol"] == coin["symbol"]:
               total_paid = coin["amount_owned"] * coin["price_per_coin"]
               current_value = coin["amount_owned"] * api["data"][i]["quote"]["JPY"]["price"]
               pl_percoin = api["data"][i]["quote"]["JPY"]["price"] - coin["price_per_coin"]
               total_pl_coin = pl_percoin * coin["amount_owned"]

               total_pl = total_pl + total_pl_coin

               print(api["data"][i]["name"] + " : " +api["data"][i]["symbol"])
               print("{:,.2f}".format(api["data"][i]["quote"]["JPY"]["price"]))
               print("保有コイン数", coin["amount_owned"])
               print("購入金額", "{:,.2f}".format(total_paid))
               print("現在金額", "{:,.2f}".format(current_value))
               print("1コイン当たり損益","{:,.2f}".format(pl_percoin))
               print("損益","{:,.2f}".format(total_pl_coin))
               print("---------------")


   print("---------------")
   print("合計損益", "{:,.2f}".format(total_pl))

# 追加/修正 ここまで--------------------------------end


実行し、下記のように表示されれば、成功です。


コメント 2020-03-20 081318 (2)

次に、Tkinter上に文字を表示しましょう。

下記のようにコードを追加します。

from tkinter import *

import requests
import json

pycrypto = Tk()
pycrypto.title("暗号通貨ポートフォリオ")

# 削除 ここから--------------------------------start

#pycrypto.mainloop()

# 削除 ここまで--------------------------------end


def my_portfolio:
   # 取得したAPI
   my_API = "取得したAPIをここに代入"

   api_request = requests.get("https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?start=1&limit=5&convert=JPY&CMC_PRO_API_KEY="+my_API)

   api = json.loads(api_request.content)

   # coins = ["BTC", "ETH"]

   coins = [
       {
           "symbol":"BTC",
           "amount_owned": 2,
           "price_per_coin":800000
       },

       {
           "symbol":"ETH",
           "amount_owned": 10,
           "price_per_coin":10000
       },

   ]


   total_pl = 0

   for i in range(0,5):
       for coin in coins:
           if api["data"][i]["symbol"] == coin["symbol"]:
               total_paid = coin["amount_owned"] * coin["price_per_coin"]
               current_value = coin["amount_owned"] * api["data"][i]["quote"]["JPY"]["price"]
               pl_percoin = api["data"][i]["quote"]["JPY"]["price"] - coin["price_per_coin"]
               total_pl_coin = pl_percoin * coin["amount_owned"]

               total_pl = total_pl + total_pl_coin

               print(api["data"][i]["name"] + " : " +api["data"][i]["symbol"])
               print("{:,.2f}".format(api["data"][i]["quote"]["JPY"]["price"]))
               print("保有コイン数", coin["amount_owned"])
               print("購入金額", "{:,.2f}".format(total_paid))
               print("現在金額", "{:,.2f}".format(current_value))
               print("1コイン当たり損益","{:,.2f}".format(pl_percoin))
               print("損益","{:,.2f}".format(total_pl_coin))
               print("---------------")


   print("---------------")
   print("合計損益", "{:,.2f}".format(total_pl))



# 追加/修正 ここから--------------------------------start

name = Label(pycrypto, text="Bitcoin", bg="black", fg="white")
name.grid(row=0, column=0, sticky=N+S+E+W)
pycrypto.mainloop()

# 追加/修正 ここまで--------------------------------end


下記のように表示されれば、成功です。

画像2

それでは、タイトル部分を作成していきましょう。

コードを下記のように修正しましょう。

from tkinter import *

import requests
import json

pycrypto = Tk()
pycrypto.title("暗号通貨ポートフォリオ")


def my_portfolio:
   # 取得したAPI
   my_API = "取得したAPIをここに代入"

   api_request = requests.get("https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?start=1&limit=5&convert=JPY&CMC_PRO_API_KEY="+my_API)

   api = json.loads(api_request.content)

   # coins = ["BTC", "ETH"]

   coins = [
       {
           "symbol":"BTC",
           "amount_owned": 2,
           "price_per_coin":800000
       },

       {
           "symbol":"ETH",
           "amount_owned": 10,
           "price_per_coin":10000
       },

   ]


   total_pl = 0

   for i in range(0,5):
       for coin in coins:
           if api["data"][i]["symbol"] == coin["symbol"]:
               total_paid = coin["amount_owned"] * coin["price_per_coin"]
               current_value = coin["amount_owned"] * api["data"][i]["quote"]["JPY"]["price"]
               pl_percoin = api["data"][i]["quote"]["JPY"]["price"] - coin["price_per_coin"]
               total_pl_coin = pl_percoin * coin["amount_owned"]

               total_pl = total_pl + total_pl_coin

               print(api["data"][i]["name"] + " : " +api["data"][i]["symbol"])
               print("{:,.2f}".format(api["data"][i]["quote"]["JPY"]["price"]))
               print("保有コイン数", coin["amount_owned"])
               print("購入金額", "{:,.2f}".format(total_paid))
               print("現在金額", "{:,.2f}".format(current_value))
               print("1コイン当たり損益","{:,.2f}".format(pl_percoin))
               print("損益","{:,.2f}".format(total_pl_coin))
               print("---------------")


   print("---------------")
   print("合計損益", "{:,.2f}".format(total_pl))



# 追加/修正 ここから--------------------------------start

name = Label(pycrypto, text="コイン名", bg="black", fg="white")
name.grid(row=0, column=0, sticky=N+S+E+W)

name = Label(pycrypto, text="価格", bg="black", fg="white")
name.grid(row=0, column=1, sticky=N+S+E+W)

name = Label(pycrypto, text="保有コイン数", bg="black", fg="white")
name.grid(row=0, column=2, sticky=N+S+E+W)

name = Label(pycrypto, text="購入金額", bg="black", fg="white")
name.grid(row=0, column=3, sticky=N+S+E+W)

name = Label(pycrypto, text="現在価格", bg="black", fg="white")
name.grid(row=0, column=4, sticky=N+S+E+W)

name = Label(pycrypto, text="1コイン当たり損益", bg="black", fg="white")
name.grid(row=0, column=5, sticky=N+S+E+W)

name = Label(pycrypto, text="合計損益", bg="black", fg="white")
name.grid(row=0, column=6, sticky=N+S+E+W)

# 追加/修正 ここまで--------------------------------end

pycrypto.mainloop()



実行し、下記のように表示されれば、成功です。

画像3


このままだと見ずらいので、文字色を黒に変えて、背景色を1列ずつグレートと白に変更します。下記のようにコードを修正します。

from tkinter import *

import requests
import json

pycrypto = Tk()
pycrypto.title("暗号通貨ポートフォリオ")

def my_portfolio:
   # 取得したAPI
   my_API = "取得したAPIをここに代入"

   api_request = requests.get("https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?start=1&limit=5&convert=JPY&CMC_PRO_API_KEY="+my_API)

   api = json.loads(api_request.content)

   # coins = ["BTC", "ETH"]

   coins = [
       {
           "symbol":"BTC",
           "amount_owned": 2,
           "price_per_coin":800000
       },

       {
           "symbol":"ETH",
           "amount_owned": 10,
           "price_per_coin":10000
       },

   ]


   total_pl = 0

   for i in range(0,5):
       for coin in coins:
           if api["data"][i]["symbol"] == coin["symbol"]:
               total_paid = coin["amount_owned"] * coin["price_per_coin"]
               current_value = coin["amount_owned"] * api["data"][i]["quote"]["JPY"]["price"]
               pl_percoin = api["data"][i]["quote"]["JPY"]["price"] - coin["price_per_coin"]
               total_pl_coin = pl_percoin * coin["amount_owned"]

               total_pl = total_pl + total_pl_coin

               print(api["data"][i]["name"] + " : " +api["data"][i]["symbol"])
               print("{:,.2f}".format(api["data"][i]["quote"]["JPY"]["price"]))
               print("保有コイン数", coin["amount_owned"])
               print("購入金額", "{:,.2f}".format(total_paid))
               print("現在金額", "{:,.2f}".format(current_value))
               print("1コイン当たり損益","{:,.2f}".format(pl_percoin))
               print("損益","{:,.2f}".format(total_pl_coin))
               print("---------------")


   print("---------------")
   print("合計損益", "{:,.2f}".format(total_pl))



# 追加/修正 ここから--------------------------------start

name = Label(pycrypto, text="コイン名", bg="grey", fg="black")
name.grid(row=0, column=0, sticky=N+S+E+W)

name = Label(pycrypto, text="価格", bg="white", fg="black")
name.grid(row=0, column=1, sticky=N+S+E+W)

name = Label(pycrypto, text="保有コイン数", bg="grey", fg="black")
name.grid(row=0, column=2, sticky=N+S+E+W)

name = Label(pycrypto, text="購入金額", bg="white", fg="black")
name.grid(row=0, column=3, sticky=N+S+E+W)

name = Label(pycrypto, text="現在価格", bg="grey", fg="black")
name.grid(row=0, column=4, sticky=N+S+E+W)

name = Label(pycrypto, text="1コイン当たり損益", bg="white", fg="black")
name.grid(row=0, column=5, sticky=N+S+E+W)

name = Label(pycrypto, text="合計損益", bg="grey", fg="black")
name.grid(row=0, column=6, sticky=N+S+E+W)

# 追加/修正 ここまで--------------------------------end

pycrypto.mainloop()

コードを実行し、下記のようにタイトル部分が表示されれば成功です。​

画像4


ここから先は

134,124字 / 39画像

¥ 2,000

この記事が気に入ったらサポートをしてみませんか?