新しい本を読むと知見が広がる
₍2024/2/25‗改訂)
森巧尚さんが書いた「ゲーム作りで楽しく学ぶPythonのきほん」
という本を読んでいます。【PR】
本の中では当たり前と思われる誤差の話が出ていまして、「そういえば気にしてなかった!」と驚かされてます。
BMIを求める簡易プログラム
例えば、以下で身長体重からBMIを算出するプログラムを例にとって解説してみせます。パソコンから身長体重の具体的な値を入力してもらい、計算としてBMIを画面上に表示するプログラムが例です。それを圧縮します。
他人が見るにはどうする?!
第三者がPythonでのプログラムを楽しむ事を考えます。ここでの想定は知人宛メールに添付として圧縮ファイルをつけるのです!!
Pythonでプログラムを作ると考えるのですが、送付先のパソコンにPythonの環境が無い時が想定されるのです。そこで圧縮したファイルを送付先で開けばよいのです!!
Pythonを使用してプログラムを作成し、それを第三者に送付する場合、相手のコンピュータにPythonの環境がないことを考慮して、プログラムを実行可能な形で提供する必要があります。そのために、以下の手順を考えることができます。
実行可能なファイルへの変換:
Pythonスクリプトを実行可能な形式に変換する方法があります。主なツールとしては「PyInstaller」や「cx_Freeze」があります。これらのツールを使用して、Pythonスクリプトを単一の実行可能なファイルに変換できます。例えば、次のようなコマンドでPyInstallerを使って変換できます。
pyinstaller your_script.py
これにより、dist
ディレクトリ内に実行可能なファイルが生成されます。
圧縮:
生成された実行可能ファイルや関連ファイルをZIPやtarなどのアーカイブ形式に圧縮します。これにより、1つの圧縮ファイルにまとめることができます。
メールに添付:
圧縮したファイルをメールに添付して送信します。通常、Pythonスクリプトや実行可能ファイルがメールの添付ファイルとして制限を受けることがあります。その場合は、クラウドストレージなどを利用してファイルを共有する方法も考えられます。
実行手順の提供:
メールの本文や別途提供するテキストファイルに、プログラムの実行手順や必要な環境についての情報を記載します。これには、Pythonが必要であればその旨や、必要な外部ライブラリがあればそれも含めます。
注意喚起:
受信者に向けて、セキュリティ上の理由から未知のプログラムを実行する前に十分な注意を促すことが重要です。不審なファイルやメールの添付ファイルは開かないように警告することが一般的です。
以上の手順を踏むことで、Python環境がない受信者でも手軽にプログラムを実行できるようになります。
注意すべき点
パイソンで作ったファイルを開く時の注意点としては、パスの指定です。相対パスではなくて絶対パスを指定して下さい。
Pythonでファイルを開く際に、パスの指定は非常に重要です。相対パスと絶対パスの違いについて理解しておくと役立ちます。
相対パス:
- プログラムが現在実行されているディレクトリを基準にしたパスです。
- 例えば、
"data/file.txt"
と指定すると、現在の作業ディレクトリ内のdata
ディレクトリにあるfile.txt
を指します。
絶対パス:
- ファイルやディレクトリのルートからの完全なパスです。
- 例えば、
"C:/Users/username/Documents/data/file.txt"
といった形です。
注意点:
- 相対パスを使用する場合、プログラムが実行されるコンテキストに依存するため、実行場所によっては正しくファイルが見つからないことがあります。
- 絶対パスを使用すると、ファイルの場所が厳密に指定され、プログラムの実行場所に依存しません。
例えば、以下は絶対パスを使用してファイルを開く例です:
import os
# 絶対パスを指定してファイルを開く例
file_path = “C:/Users/username/Documents/data/file.txt”
# ファイルを開く
with open(file_path, ‘r’) as file:
# ファイルの中身を表示するなどの処理を行う
content = file.read()
print(content)
このように、ファイルの場所が明示的に指定されているため、プログラムがどこから実行されてもファイルを正しく開くことができます。
〆最後に〆
以上、間違い・ご意見は
次のアドレスまでお願いします。
最近は全て返信出来てませんが
適時、返信して改定をします。
nowkouji226@gmail.com
また、この記事はChatGPT社のOpenAI
の情報を参考として作成しています。
【全体の纏め記事へ】
コメント