Google Colaboratory+Nimで基本文法について勉強する(リスト, for文m, If文)
Google Colaboratory+Nimで基本文法(リスト, for文m, If文)について勉強します.
Google Colaboratory(以下Google Colab)は、Google社が無料で提供している機械学習の教育や研究用の開発環境です。開発環境はJupyter Notebookに似たインターフェースを持ち、Pythonの主要なライブラリがプリインストールされています。
引用元:Google Colabの使い方 (opens new window)
全国630店舗以上!もみほぐし・足つぼ・ハンドリフレ・クイックヘッドのリラクゼーション店【りらくる】
# nim4colabのインストール
Google Colab で nimコマンドを使用するためのライブラリであるnim4colabをインストールします.
%load_ext nim4colab により%を付けてNimのコマンドを使えます.
!pip install git+https://github.com/demotomohiro/nim4colab.git
%load_ext nim4colab
# nimpyのインストール
PythonからNimを呼び出すためのNimのライブラリ、nimpyをインストールします.
Nim初心者が始めるNimとnimpy (opens new window)
nimpyをインストールすることで、後述の fib.nim内で使っているnimpyをコンパイル、ライブラリとして使用することができます.
nimbleはNimのライブラリをインストールするためのコマンドです.
%nimble install nimpy -y
# Nimの基本文法
ここでは、「空ファイルの作成」に必要なNimの基本構文を記載します。
# リスト型
リスト型は、Pythonでは頻繁に使用され、かなり大事な型になりますので,Nimでも練習します。
変数は1つ数値・文字列しか格納できませんが、リスト型は複数の数値・文字列を格納できます。
Pythonでは、複数のデータを管理したい場合に使います。 listは 配列名 = ["a","b","c"] という形式で使用できます。
ただし、リストの中身は左から数え始め、最初は1ではなく、0から数えます。
このリストの順番のことをインデックスと呼びます。
text_list[0]など、リストのインデックスを指定することで、リスト内の数値・文字列を出力できます。
# python
text_list = ["a", "b", "c", "d", "e", "f"]
print(text_list)
print(text_list[0])
print(text_list[5])
# 実行結果
# ['a', 'b', 'c', 'd', 'e', 'f']
# a
# f
# nim
# Google Colabでnimを使用するためのおまじない
%%nimc
import sugar
var ary = @["a", "b", "c", "d", "e", "f"]
echo ary, ary.len
echo ary[0]
echo ary[5]
echo ary[ary.len-1]
var results = @[ary[0], ary[2]]
echo results
# 実行結果
# @["a", "b", "c", "d", "e", "f"]6
# a
# f
# f
# @["a", "c"]
# for
for文は、リストに格納されている数値・文字列を順番に処理していくことです。
下記のコードでは、「text_list」を左から、「text」という変数にいれて、print(text)で出力するという繰り返し作業をしてます。
for文は、さまざまな書き方があるので、コードを書く時や他人のコード見た時に逐次検索していくことをお勧めします。
全て、把握しようとしたら、キリがないです。
# python
text_list = ["a", "b", "c", "d", "e", "f"]
for text in text_list:
print(text)
# 実行結果
# a
# b
# c
# d
# e
# f
# nim
# Google Colabでnimを使用するためのおまじない
%%nimc
import sugar
# for x in 0..6:
# echo x
var ary = @["a", "b", "c", "d", "e", "f"]
echo ary, ary.len
for x in 0..6:
echo x
# text_list = ["a", "b", "c", "d", "e", "f"]
# for i in range(6):
# print(text_list[i])
# 実行結果
# 42
# 63
# 21
# 84
# 2.0
# 42 + 21
# nim(関数定義)
# Google Colabでnimを使用するためのおまじない
%%nimc
# 返り値:result
proc integer00() =
echo 42
echo 42 + 21 # 足し算
echo 42 - 21 # 引き算
echo 42 * 2 # かけ算
echo 42 / 21 # 割り算
echo "42 + 21" # 文字列
integer00()
# 実行結果
# 42
# 63
# 21
# 84
# 2.0
# 42 + 21
\
# 閑話休題:fou文(range)
本記事のサンプルコードでは使いませんが、for文ではrange()関数を用いることで、特定の回数分の繰り返し作業することもあります。
Python
# range(6): 0から5までの連番のリストを返す
# range(2,6): 2から5までの連番のリストを返す
text_list = ["a", "b", "c", "d", "e", "f"]
for i in range(6):
print(text_list[i])
# 実行結果
# a
# b
# c
# d
# e
# f
Nim
%%nimc
var a = 0
var b = 0
for i in 0..3:
a += 1
echo a
b += 2
echo b
# 実行結果
# 1
# 2
# 2
# 4
# 3
# 6
# 閑話休題:fou文(逐次計算)
また、for文では、特定の数値を繰り返しで足し算したい場合は,下記のような特殊な書き方をします。
Python
a = 0
b = 0
for i in range(3):
a += 1
print(a)
b += 2
print(b)
# 実行結果
# 1
# 2
# 2
# 4
# 3
# 6
Nim
%%nimc
var a = 0
var b = 0
for i in 0..3:
a += 1
echo a
b += 2
echo b
# 実行結果
# 1
# 2
# 2
# 4
# 3
# 6
# if文
Pythonでは、ある条件に当てはまるかどうかによって、違う処理をしたい場合がありますので,Nimでも練習します。
その時は、if文を用いることで、条件によって処理を分岐させることができます。
「if 条件文」という書き方が基本で、条件文がTrueになれば、実行されます。
下記では、「iが5以下か否か」で処理を分岐させています。
また、否定文でif文を作りたい場合は、「if not 条件文」とします。
一応、条件文の動きも出力します。
# python
for i in range(10):
# 5以下
if i <= 5:
print(i <= 5)
print("5以下:", i)
for i in range(10):
# 5以下
if not i <= 5:
print(i <= 5)
print("5以上:", i)
# 実行結果
# True
# 5以下: 0
# True
# 5以下: 1
# True
# 5以下: 2
# True
# 5以下: 3
# True
# 5以下: 4
# True
# 5以下: 5
# False
# 5以上: 6
# False
# 5以上: 7
# False
# 5以上: 8
# False
# 5以上: 9
また、複数の条件分岐を記載する場合は、「elif」と「else」を使います。
「elif」は前述のif条件以外の条件を作成できます。
「elif」は前述のif条件・elif条件に当てはまらない時の処理を実行します。
下記では、「iが5未満の時」・「iが5以上・8以下」・「それ以外」で処理を分岐させています。
for i in range(10):
# 5以下
if i < 5:
print("5未満:", i)
elif i <= 8:
print("8以下:", i)
else:
print("それ以外:", i)
# 実行結果
# 5未満: 0
# 5未満: 1
# 5未満: 2
# 5未満: 3
# 5未満: 4
# 8以下: 5
# 8以下: 6
# 8以下: 7
# 8以下: 8
# それ以外: 9
# nim
# nim(関数定義)
# Google Colabでnimを使用するためのおまじない
%%nimc
import sugar
for i in 0..10:
if i <= 5:
echo "5以下:", i
for i in 0..10:
if not i <= 5:
echo "5以上:", i
# 実行結果
# True
# 5以下: 0
# True
# 5以下: 1
# True
# 5以下: 2
# True
# 5以下: 3
# True
# 5以下: 4
# True
# 5以下: 5
# False
# 5以上: 6
# False
# 5以上: 7
# False
# 5以上: 8
# False
# 5以上: 9
# Google Colabでnimを使用するためのおまじない
%%nimc
for i in 0..10:
# 5以下
if i < 5:
echo "5未満:", i
elif i <= 8:
echo "8以下:", i
else:
echo "それ以外:", i
# まとめ
Google Colaboratory+Nimで基本文法(リスト, for文m, If文)について勉強しました.
# 参考サイト
Nimの特徴や使い方をわかりやすく解説! (opens new window)
Nim初心者が始めるNimとnimpy (opens new window)
Speeding up Python code with Nim (opens new window)
Nimを組み込んでPythonを高速化してみた (opens new window)
至高の言語、Nimを始めるエンジニアへ (opens new window)
Nim Compiler User Guide (opens new window)
スレッドローカルストレージ (opens new window)
PythonistaのためのNim入門 (opens new window)
Nimの便利な標準ライブラリ sugar (opens new window)
Nim初心者が始めるNimとnimpy (opens new window)
Nim 変数、定数の宣言方法(var, let, const) (opens new window)
Nimを知ってほしい2022 (opens new window)
nim いろいろなコメントの方法 (opens new window)