投稿

Pythonのソースコードで関数の書き方が違う場合があるのはなぜかという話(モジュールの読み込み)

最近はPython(プログラミング言語)をちょこちょこ書いています。まだTurtleでお絵かきして遊んでいる程度で、たまにYoutubeに動画を上げたりもしています。
こんなのとか↓

さて、一応参考書は手元にあるのですが、それでも分からないときはWebサイトを検索してソースコードの書き方などを参考にすることもあります。サイトによっては同じ処理でもソースコードの書き方が違うことはあります。ただ書き方ではなく、書式自体がまったく違うというケースもあります。

例えば、「mathモジュール」を読み込んで「sin()関数」を使うというケースでは
a = math.sin(i)

という書き方の他に
a = sin(i)

という書き方も出てきます。
そしてmathモジュールの読み込み方に関しても、
import math

from math import *
(またはsin()関数だけならfrom math import sin)

という書き方が出てきます。そしてこのimportの書き方に対応した関数の書き方をしなければ、sin()関数を使ってもエラーとなってしまいます。ちゃんと使うには
「import math」と書いてmathモジュールを呼び出した場合は「a = math.sin(i)」「from math import *」と書いて呼び出した場合は「a = sin(i)」 と書く必要があります。

両方ともちゃんとsin()関数は読み込めているので処理自体は同じになるわけですが、後者の方は「math.」と書かなくてもいいので楽といえば楽です。しかしこれは弊害もあって、いくつもモジュールを読み込んだ場合、その中に同じ名前の関数があると何のモジュールの関数を使っているのか分からなくなってしまいます。
(実際にはモジュールを読み込む順番で何の関数が使われるかが決まるとかなんとか?)

自分は初歩の段階でこの点が良く分からずに少しつまづいてしまいました。こういうことを踏まえておけばもう少しスムーズに調べものが出来たかと思います。
(まぁ初歩のうちはアレコレ調べ過ぎずに、参考書などをやり切った方がいいと思いますが)

実際にモジュールを読み込んで使うときは、ケースバイケースで使いやすく後から読んでも分かりやすい方法を選べばいいかと思います。

<参考資料>
6. モジュー…

cronでスクリプトを定期実行させようとしたのだけど、なぜかうまく行かなかったときの原因

Open Babelの解説 : 化学式や分子モデリングのファイル形式変換ソフト&ライブラリ

3D分子モデリングのファイル形式 : xyzファイルフォーマットについて簡単なまとめ

カメムシ襲来!(秋の風物詩)

Emacsの各種フォント設定方法(Linux環境)

GNOMEのキーボード・ショートカットで違うキーの組み合わせでも動作してしまっていたので修正

GNOMEデスクトップ環境で挙動が怪しくなったときのリセット方法

太陽フレア現象(9月6日発生)の情報まとめ(9月12日昼時点まで)

lsコマンドで相対パスを付けてファイル名を出力する方法

初めてEmacsを使うときのマニュアルなどの話

Emacsのウィンドウタイトルをコマンドで変更する方法

太陽フレア現象再び(2017年9月11日)

引き続きibusを試してみたときの作業記録的なお話 (Ubuntu 16.04.3)

日本語インプットをfcitxからibusに切り替えようとしたときの作業記録(Ubuntu 16.04.3)

太陽フレア現象(2017年9月6日発生)関連のお話の用語をいくつか

Org-Mode(Emacs)のコードブロック機能でちょっとしたお遊び

Emacsで行の先頭にあるスペースを削除する方法

bashをタブ機能がある端末で使っているときのhistoryの扱いについて

bashのhistory機能では先頭にスペースがあるとそのコマンドは記録されない(設定による)