!pip install ita -U --userのように「-U」オプション付きでライブラリitaをインストールするコードが書かれていましたが,これを大学の教育用計算機システム上で実行するとおかしくなることがあるようです.現在は,
!pip install ita --userのように「-U」オプションなしのものを配布しています.もう一度Notebookをダウンロードし直して新しいファイルを使ってください.これを実行しようとしても,
AttributeError: '_NamespacePath' object has no attribute 'sort'というエラーが出る時は,ターミナルで
rm -rf ~/.localを一度実行すると回復するようです.
def ex5_1(n): results = ita.array.make1d(n) #長さnの文字列 for i in range(0, n): #0からnまで results[i] = 1/(i+1) #i番目の要素 return results教科書の5.6節[発展]配列の様々な機能で扱った内包表記を使って短く回答した人もいた.
def ex5_1(n): return [1 / (i + 1) for i in range(n)]また,Pythonに組み込みの関数mapを使って書いた人もいた(一部改変).
def ex5_1(n): list(map(lambda x: 1 / (1 + x), range(n)))
def ex5_3(n): #配列の用意 image = ita.array.make2d(n, n)#n行n列の二次元配列を生成 for i in range(0, n): for j in range(0, n): image[i][j] = (i + j + 1) % 2 #マスの行と列の和が奇数であるか偶数であるかにより1,0であるかを判定 #(模様を逆にするには"(i+j)%2"とすればよい) return imageif文で分岐を書いた人もいた.
def ex5_3(n): #市松模様 im = ita.array.make2d(n,n) for i in range(n): for j in range(n): if i % 2 == 0: if j % 2 == 0: im[i][j]=1 else: im[i][j]=0 else: if j % 2 == 0: im[i][j]=0 else: im[i][j]=1 return im内包表記で短く書いた人もいた.
def ex5_3(n): return [[(i + j + 1) % 2 for j in range(n)] for i in range(n)]
mkdir ~/algo19のようにします.そして,ターミナルを開くたびに
cd ~/algo19 jupyter notebookと入力してJupyter Notebookを動かしてください.詳しくは,はいぱーワークブック「14.4 コマンドを使ったファイル操作」を参照してください.
cd ~/algo19を済ませてから,
python vote.py 選択肢番号のように使います.
Jupyter Notebookを使いながら(一旦終了せずに),投票システムも使うには,ターミナルのメニューバーの「シェル」->「新規タブ」を選ぶか,[Command]+[T]で別のタブを開いて(あるいは[Command]+[N]で別のウィンドウを開いて),投票システムを使うことをお勧めします.このあたりのことは,「はいぱーワークブック」の15.4 ターミナルの便利な使い方に書いてあるので参考にしてください.
cd ~/algo19と入力してください.これらの機能を使うと,Jupyter Notebookを抜けずにvoteできます.
ターミナルの基本的な使い方は,はいぱーワークブックの15.2 ターミナルの基本的な使い方を,より高度な使い方は,15.4 ターミナルの便利な使い方を参照してください.
cdというコマンドと「~」の意味は,はいぱーワークブックの14.4 コマンドを使ったファイル操作の14.4.1 ディレクトリを読むと分かります.