見出し画像

Pythonの実行環境を構築してみた(take 2)

前回、Pythonの実行環境を構築した記事を公開しましたが、Terminalを立ち上げるたびに環境設定からやり直さないといけない不具合が発生していました。

今回は、この問題を解決することを目指して、別のアプローチで再インストールを試みました。結果、快適な実行環境を得ることができました👏
めでたし、めでたし!


前回の記事はこちら


Pythonの実行環境の構築(テイク2)

参考にしたのはこちら。

Pythonのインストールの仕方については、本書p.18-27に記載された手順で問題なし。更に、この本に従って下記の機能を追加します。
「openpyxl」:Excelファイルを読み書きするために必要
「selenium」:ブラウザを操作するために必要

この本の好きなところは、Mac環境で必要な設定変更についてページが割いてあること。わかりやすくて助かりました。


Pythonの開発・実行環境として、IDLEを使ってみる

上記の本で紹介されたIDLEツールを使って、以前に遊んでいた平方根を求めるプログラムを動かしてみました。

IDLEはここにあります

アプリケーションフォルダの、Python 3.12(私がインスーとしたバージョン)のなかに、IDLEを見つけることができます。
IDLEのアイコンです。


IDLEをクリックして起動すると、

IDLEのShellウィンドウが開きます。


平方根を求めるPythonのコードを呼び出してみます

① FileメニューからOpenを選択し、

② 保存済みのコードを選択します。


平方根を求めるPythonのコードを編集してみます

③ Shellウィンドウとは別に、Editorウィンドウが開きます。

Editorウィンドウで、コードを修正することができます。
左側がShellウィンドウ、右側がEditorウィンドウ。


平方根を求めるPythonのコードを実行してみます

④ Runメニューから、Run Moduleを選択すると、、、

⑤ 修正後のコードが保存されていない場合は、、、

上書き保存しても良いか、聞いてきます

⑥ 上記の画面でOKをクリックすると、すぐに実行されます。

Shellウィンドウに、実行結果が表示されました

⑦ 実行時にエラーが発生したら、例えばこんな感じ。


平方根を求めるPythonのコードの例

上掲の記事に掲載したコードに、若干の修正を加えました。

主な変更点は、√4とか√9の計算で、ループの途中で平方根が算出できているのに、指定した小数点以下の桁数になるまで近似値をもとめ続けているのを抑止したこと。ちょっと、ごちゃごちゃしてますね、、、。

def root_digit(square, first, step):
    r = first
    for i in range(1, 11, 1):
        #print('r + step = {0:.15f} (r + step) ^ 2 = {1:.15f}'.format((r + step), ((r + step) ** 2)))
        
        if square == ((r + step) ** 2):
            return (r + step)

        if square < ((r + step) ** 2):
            return r

        r += step

def root(square):
    r = 0.0
    step = 1.0

    for i in range(1, 15, 1):
        t = root_digit(square, r, step)

        if square == (t ** 2):
            return t
        
        if not t is None:
            r = t
            step /= 10.0
        
    return r

for i in range(2,10,1):
    root2 = root(i)
    print('Root({0}) = {1:.15f}'.format(i, root2))


※近似値の計算過程を見たければ、コメントアウトされた次のコードの冒頭の#を削除すれば良い。

#print('r + step = {0:.15f} (r + step) ^ 2 = {1:.15f}'.format((r + step), ((r + step) ** 2)))
============= RESTART: /Users/akio/Documents/Python/square_root.py =============
r + step = 1.000000000000000 (r + step) ^ 2 = 1.000000000000000
r + step = 2.000000000000000 (r + step) ^ 2 = 4.000000000000000
r + step = 1.100000000000000 (r + step) ^ 2 = 1.210000000000000
r + step = 1.200000000000000 (r + step) ^ 2 = 1.440000000000000
r + step = 1.300000000000000 (r + step) ^ 2 = 1.690000000000001
r + step = 1.400000000000000 (r + step) ^ 2 = 1.960000000000001
r + step = 1.500000000000000 (r + step) ^ 2 = 2.250000000000001
r + step = 1.410000000000000 (r + step) ^ 2 = 1.988100000000001
r + step = 1.420000000000000 (r + step) ^ 2 = 2.016400000000001
r + step = 1.411000000000000 (r + step) ^ 2 = 1.990921000000001
r + step = 1.412000000000000 (r + step) ^ 2 = 1.993744000000000
r + step = 1.413000000000000 (r + step) ^ 2 = 1.996569000000000
r + step = 1.414000000000000 (r + step) ^ 2 = 1.999396000000000
r + step = 1.415000000000000 (r + step) ^ 2 = 2.002224999999999
r + step = 1.414100000000000 (r + step) ^ 2 = 1.999678810000000
r + step = 1.414200000000000 (r + step) ^ 2 = 1.999961640000000
r + step = 1.414300000000000 (r + step) ^ 2 = 2.000244490000000
r + step = 1.414210000000000 (r + step) ^ 2 = 1.999989924100000
r + step = 1.414220000000000 (r + step) ^ 2 = 2.000018208400000
r + step = 1.414211000000000 (r + step) ^ 2 = 1.999992752521000
r + step = 1.414212000000000 (r + step) ^ 2 = 1.999995580944000
r + step = 1.414213000000000 (r + step) ^ 2 = 1.999998409368999
r + step = 1.414214000000000 (r + step) ^ 2 = 2.000001237795999
r + step = 1.414213100000000 (r + step) ^ 2 = 1.999998692211609
r + step = 1.414213200000000 (r + step) ^ 2 = 1.999998975054240
r + step = 1.414213300000000 (r + step) ^ 2 = 1.999999257896890
r + step = 1.414213400000000 (r + step) ^ 2 = 1.999999540739560
r + step = 1.414213500000000 (r + step) ^ 2 = 1.999999823582250
r + step = 1.414213600000000 (r + step) ^ 2 = 2.000000106424960
r + step = 1.414213510000000 (r + step) ^ 2 = 1.999999851866520
r + step = 1.414213520000000 (r + step) ^ 2 = 1.999999880150790
r + step = 1.414213530000000 (r + step) ^ 2 = 1.999999908435060
r + step = 1.414213540000000 (r + step) ^ 2 = 1.999999936719331
r + step = 1.414213550000000 (r + step) ^ 2 = 1.999999965003602
r + step = 1.414213560000000 (r + step) ^ 2 = 1.999999993287873
r + step = 1.414213570000000 (r + step) ^ 2 = 2.000000021572144
r + step = 1.414213561000000 (r + step) ^ 2 = 1.999999996116300
r + step = 1.414213562000000 (r + step) ^ 2 = 1.999999998944727
r + step = 1.414213563000000 (r + step) ^ 2 = 2.000000001773155
r + step = 1.414213562100000 (r + step) ^ 2 = 1.999999999227570
r + step = 1.414213562200000 (r + step) ^ 2 = 1.999999999510413
r + step = 1.414213562300000 (r + step) ^ 2 = 1.999999999793256
r + step = 1.414213562400000 (r + step) ^ 2 = 2.000000000076098
r + step = 1.414213562310000 (r + step) ^ 2 = 1.999999999821540
r + step = 1.414213562320000 (r + step) ^ 2 = 1.999999999849824
r + step = 1.414213562330000 (r + step) ^ 2 = 1.999999999878108
r + step = 1.414213562340000 (r + step) ^ 2 = 1.999999999906393
r + step = 1.414213562350000 (r + step) ^ 2 = 1.999999999934677
r + step = 1.414213562360000 (r + step) ^ 2 = 1.999999999962961
r + step = 1.414213562370000 (r + step) ^ 2 = 1.999999999991245
r + step = 1.414213562380000 (r + step) ^ 2 = 2.000000000019530
r + step = 1.414213562371000 (r + step) ^ 2 = 1.999999999994074
r + step = 1.414213562372000 (r + step) ^ 2 = 1.999999999996903
r + step = 1.414213562373000 (r + step) ^ 2 = 1.999999999999732
r + step = 1.414213562374000 (r + step) ^ 2 = 2.000000000002560
r + step = 1.414213562373100 (r + step) ^ 2 = 2.000000000000014
Root(2) = 1.414213562373000
r + step = 1.000000000000000 (r + step) ^ 2 = 1.000000000000000

/* (√3の計算過程、一部省略) */

r + step = 1.732050807568802 (r + step) ^ 2 = 2.999999999999739
r + step = 1.732050807568902 (r + step) ^ 2 = 3.000000000000085
Root(3) = 1.732050807568802
r + step = 1.000000000000000 (r + step) ^ 2 = 1.000000000000000
r + step = 2.000000000000000 (r + step) ^ 2 = 4.000000000000000
Root(4) = 2.000000000000000

/* (以下省略) */



うん、なかなかいい感じ!

この本に紹介されている機能については、これから習得していきますが、エクセルと連携できるところが魅力的。いずれは、本業の方で活用していきたいと思っています。



ここまで読んでいただき、ありがとうございました。

(冒頭の写真は、大津市の柳が崎湖畔公園のイングリッシュガーデンの薔薇のトンネル。)

この記事が参加している募集

これまでの収益は全て、それを必要としておられる方々へ、支援機関を通して寄付させていただきました。この活動は今後も継続したいと思っています。引き続きよろしくお願いいたします。