• Skip to main content
  • Skip to primary sidebar

学習記録

ブロックチェーン

Blockchainプログラミング基礎:ユーザー入力

2018年9月4日 by 河副 太智 Leave a Comment

ユーザー入力値をブロックチェーンに追加

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
blockchain=[]
 
def get_last_blockchain_value():
    return blockchain[-1]
 
def add_value(transaction_amount,last_transaction=[1]):
    blockchain.append([last_transaction,transaction_amount])
 
tx_amount = float(input("your transaction amount please: "))
add_value(tx_amount)
 
tx_amount = float(input("your transaction amount please: "))
add_value(last_transaction=get_last_blockchain_value(),transaction_amount=tx_amount)
 
tx_amount = float(input("your transaction amount please: "))
add_value(tx_amount,get_last_blockchain_value())
 
print(blockchain)

実行するとyour transaction amount please:と出てくるので
任意の数値を入力していきます。

 

>>>
your transaction amount please: 2.5
your transaction amount please: 8.6
your transaction amount please: 5.2
[[[1], 2.5], [[[1], 2.5], 8.6], [[[[1], 2.5], 8.6], 5.2]]

 

ユーザー入力を自作関数化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
blockchain=[]
 
def get_last_blockchain_value():
    return blockchain[-1]
 
def add_value(transaction_amount,last_transaction=[1]):
    blockchain.append([last_transaction,transaction_amount])
    
    
def get_user_input():
    return float(input("your transaction amount please: "))
 
    
tx_amount = get_user_input()
add_value(tx_amount)
 
tx_amount = get_user_input()
add_value(last_transaction=get_last_blockchain_value(),transaction_amount=tx_amount)
 
tx_amount = get_user_input()
add_value(tx_amount,get_last_blockchain_value())
 
print(blockchain)

>>>
your transaction amount please: 1.3
your transaction amount please: 5.8
your transaction amount please: 5.6
[[[1], 1.3], [[[1], 1.3], 5.8], [[[[1], 1.3], 5.8], 5.6]]

 

Filed Under: ブロックチェーン

Blockchainプログラミング基礎:値を追加していく

2018年9月3日 by 河副 太智 Leave a Comment

ブロックチェーンに値を追加していく

ブロックチェーンは過去のデータを参照しつつ
新たなデータを追加していきます。

 

まずは一番最初のリストに数値1を入れます。

1
blockchain=[[1]]

これでblockchainというリストに数値1が格納されます。

 

次にブロックチェーンっぽく値を追加していきます。

1
2
3
4
5
6
7
blockchain=[[1]]
 
def add_value(value):
    blockchain.append([blockchain[-1],value])
    print(blockchain)
 
add_value(2)

>>[[1], [[1], 2]]

もとの1はそのままで、カンマ以降は最初のブロックチェーンにあった1と
新たに追加された2が格納されました。

 

もう一つ値を追加します。

1
2
3
4
5
6
7
8
blockchain=[[1]]
 
def add_value(value):
    blockchain.append([blockchain[-1],value])
    print(blockchain)
 
add_value(2)
add_value(0.9)

>>[[1], [[1], 2], [[[1], 2], 0.9]]

今度は3番目に0.9が追加されています。

わかりづらいので色分けカンマ別に縦表示にします。

[[1],
[[1], 2],
[[[1], 2], 0.9]]

 

同じ要領でもう一つ値を追加します。

1
2
3
4
5
6
7
8
9
blockchain=[[1]]
 
def add_value(value):
    blockchain.append([blockchain[-1],value])
    print(blockchain)
 
add_value(2)
add_value(0.9)
add_value(10.89)

>>>[[1], [[1], 2], [[[1], 2], 0.9], [[[[1], 2], 0.9], 10.89]]

ゴチャゴチャしてきましたね

カンマ別に縦表示にすると以下のようになります。

[[1],
[[1], 2],
[[[1], 2], 0.9],
[[[[1], 2], 0.9], 10.89]]

 

 

自作関数を2つに分けて
add_value()から別の自作関数
get_last_blockchain_value()を呼び出して
参照する過去の値と新規追加の値を別にする

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
blockchain=[[1]]
 
def get_last_blockchain_value():
    return blockchain[-1]
 
def add_value(transaction_amount):
    blockchain.append([get_last_blockchain_value(),transaction_amount])
 
 
add_value(2)
add_value(0.9)
add_value(10.89)
 
print(blockchain)

 

 

コードの最初にblockchain=[1]と定義してありますが
リストの最初の値が確定できない場合はblockhain=[]から始めたい
場合もあると思います。

その場合は以下のようにデフォルトを与える事でうまくいきます。

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
blockchain=[]
 
def get_last_blockchain_value():
    return blockchain[-1]
 
def add_value(transaction_amount,last_transaction=[1]):
    blockchain.append([last_transaction,transaction_amount])
 
 
add_value(2)
add_value(0.9,get_last_blockchain_value())
add_value(10.89,get_last_blockchain_value())
 
print(blockchain)

 

Filed Under: ブロックチェーン

前の値を参照しつつ次の値を追加

2018年9月1日 by 河副 太智 Leave a Comment

以下のように過去のlistに対し、新たな値を追加していきます。

自作関数add_value()を3回実行すればlistの過去の値に対し
新たなデータが次々と追加されていきます。
まさにブロックチェーンの基礎ですね

1
2
3
4
5
6
7
8
9
blockchain=[[1]]
 
def add_value():
    blockchain.append([blockchain[-1],6])
    print(blockchain)
 
add_value()
add_value()
add_value()

>>>[[1], [[1], 6]]
>>>[[1], [[1], 6], [[[1], 6], 6]]
>>>[[1], [[1], 6], [[[1], 6], 6], [[[[1], 6], 6], 6]]

Filed Under: ブロックチェーン

Blockchainプログラミング基礎:自作関数でリスト作成

2018年9月1日 by 河副 太智 Leave a Comment

自作関数を使って変数blockchainに値を追加
まず最初にblockchain=[1]としてリストの値を1のみにして
そこに色々足してみます。

1
2
3
4
5
6
7
blockchain=[1]
 
def add_value():
    blockchain.append(0)
    print(blockchain)
 
add_value()

>>[1, 0]
リストに0が追加されました。

 

1
2
3
4
5
6
7
blockchain=[1]
 
def add_value():
    blockchain.append(blockchain[0])
    print(blockchain)
 
add_value()

>[1, 1]
blockchain[0]の値と同じものを追加するという意味なので
1が追加される

 

1
2
3
4
5
6
7
blockchain=[1]
 
def add_value():
    blockchain.append([blockchain[0],5.3])
    print(blockchain)
 
add_value()

>[1, [1, 5.3]]
ちょっとややこしいけど[]で囲まれている場合は
blockchain[0]の値と同じものと5.3を別の[]に入れて、
元の値1のカンマで区切った次の位置に追加している。

 

1
2
3
4
5
6
7
blockchain=[1]
 
def add_value():
    blockchain.append(blockchain[-1])
    print(blockchain)
 
add_value()

[1, 1]
blockchain[-1]と指定するとlistの値の一番最後の値を意味する
ブロックチェーンでは最後の値にどんどん新たな情報を追加していくので
この[-1]の概念は非常に重要です。

Filed Under: ブロックチェーン

Blockchainプログラミング基礎:listの使い方

2018年4月21日 by 河副 太智 Leave a Comment

PythonでのBlockchainプログラミングの初歩はlistの使い方です。

1
2
3
4
#変数blockchainに4つの数値をlist形式で渡す。
>>> blockchain =[1,5,7,809]
>>> blockchain
[1, 5, 7, 809]

 

1
2
3
#変数blockchainのlist内の左から3番目の数値を取得
>>> blockchain[2]
7

 

1
2
3
#変数blockchainのlist内の左から3番目の数値を2倍にする
>>> blockchain[2]*2
14

↑このlistの特定の数値を2倍にするのはlistの中身を変更するわけではなく
一次的に2倍にされた数値が表示されているだけですので
再度変数blockchainを表示させれば2倍になる前の数値が出てきます。

 

1
2
3
4
5
6
#listに値を追加する場合はappend()を使用数値3をlist末尾に追加します。
>>> blockchain
[1, 5, 7, 809]
>>> blockchain.append(3)
>>> blockchain
[1, 5, 7, 809, 3]

 

1
2
3
4
5
6
#listの末尾を削除するにはpopを使用
 
>>> blockchain.pop()
3
>>> blockchain
[1, 5, 7, 809]

↑この方法ですと一次的ではなくlistから値が削除されるので
次回変数blockchainを呼び出せば末尾の3は除外されたlistが
表示される事になります。

Filed Under: ブロックチェーン Tagged With: ブロックチェーン

Primary Sidebar

カテゴリー

  • AWS
  • Bootstrap
  • Dash
  • Django
  • flask
  • GIT(sourcetree)
  • Plotly/Dash
  • VPS
  • その他tool
  • ブログ
  • プログラミング
    • Bokeh
    • css
    • HoloViews
    • Jupyter
    • Numpy
    • Pandas
    • PosgreSQL
    • Python 基本
    • python3
      • webアプリ
    • python3解説
    • scikit-learn
    • scipy
    • vps
    • Wordpress
    • グラフ
    • コマンド
    • スクレイピング
    • チートシート
    • データクレンジング
    • ブロックチェーン
    • 作成実績
    • 時系列分析
    • 機械学習
      • 分析手法
      • 教師有り
    • 異常値検知
    • 自然言語処理
  • 一太郎
  • 数学
    • sympy
      • 対数関数(log)
      • 累乗根(n乗根)
    • 暗号学

Copyright © 2025 · Genesis Sample on Genesis Framework · WordPress · Log in