【Vyper】第2章第2回:ループ処理:for文とrange関数の活用

本記事では、Vyperにおけるループ処理(for文)とrange関数の使い方について詳しく解説します。ループ処理を理解することで、スマートコントラクトのデータ操作を効率的に行えるようになります。
0. 記事の概要
この記事を読むメリット
- Vyperのfor文の基本構文を理解できる
- range関数の使い方を学び、反復処理を適切に実装できる
- 効率的なデータ操作の方法を習得できる
1. for文の基本

1.1 for文の基本構文
@public
def sum_values() -> int128:
total: int128 = 0
for i in range(1, 6):
total += i
return total
動作解説
- total: int128 = 0 初期値を0に設定
- for i in range(1, 6): 1から5までループ処理
- total += i ループごとにtotalにiの値を加算
- return total 計算結果を返す
1.2 range関数の活用
@public
def even_numbers() -> int128[5]:
evens: int128[5] = [0, 0, 0, 0, 0]
index: int128 = 0
for i in range(2, 12, 2):
evens[index] = i
index += 1
return evens
動作解説
- range(2, 12, 2) 2から10まで2ずつ増加
- evens[index] = i 配列に値を格納
- index += 1 インデックスを更新
- return evens 配列を返す
2. ネストしたfor文
2.1 二重ループの活用

@public
def multiply_matrix(a: int128[3], b: int128[3]) -> int128[3][3]:
result: int128[3][3] = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
for i in range(3):
for j in range(3):
result[i][j] = a[i] * b[j]
return result
動作解説
- for i in range(3): 行のループ
- for j in range(3): 列のループ
- result[i][j] = a[i] * b[j] 各要素の積を計算
- return result 計算結果を返す
3. 練習問題

3.1 練習問題
以下の課題に挑戦してください。
- 1から100までの合計を計算する関数を作成する
- 奇数のみを格納する配列を作成する
4. まとめ
本記事では、Vyperにおけるfor文の基本的な使い方と応用について学びました。ループ処理を活用し、効率的なデータ操作を実現しましょう。