-
Pythonで「import *」(ワイルドカードインポート)が悪い考えである理由
Pythonでは、from sample import * のようにモジュールからすべてのメソッドを一括でインポートする「ワイルドカードインポート」は避けるべきとされています。その主な理由は以下の2点です。 プログラム内で使用したメソッドが、どのモジュール(親モジュール)から来たのかを特定するのが難しくなる。 インポートされたメソッドと同じ名前の関数を自由に定義できなくなり、名前の衝突が発生しやすい。 具体例 まず、sample.py というファイルに add という関数を定義してみましょう。 ## sample.py ファイル def add(a, b): return a +
-
Pythonで独自のlen()関数を実装する方法
Pythonには、文字列やリストの長さを取得するための組み込み関数 len() が用意されています。しかし、この仕組みを深く理解するために、独自のカスタム len() 関数を自作してみるのはとても良い学習になります。まずは以下の手順に沿って、自分で実装に挑戦してみましょう。 実装の手順 ユーザーから入力された文字列・リスト・タプルなどのイテレータを取得します。 任意の名前で関数を定義し、その関数にイテレータを渡して呼び出します。 カウント用の変数を0で初期化します。 イテレータの末尾に達するまでループ処理を行います。 ループが1回回るごとにカウントを1ずつ増やします。 最後にカウント
-
Pythonは動的型付け言語?その特徴と具体例をわかりやすく解説
はい、その通りです。Pythonは動的型付け(ダイナミックタイピング)の言語です。では「動的」とはどういう意味なのでしょうか。 動的型付けとは何か Pythonでは、変数に値を代入する際に型を宣言する必要がありません。これが「動的」と呼ばれる理由です。 一方、C言語、C++、Javaなどの静的型付け言語では、変数に値を代入する前に、あらかじめ厳密に型を宣言しなければなりません。例えばJavaでは int x = 10; のように、変数の型を明示するのが必須です。 Pythonでは型宣言が不要 Pythonでは、変数の型を宣言しなくても一切問題ありません。プログラムの実行時(ランタイム)に、代入
-
Pythonのzip()関数の使い方を徹底解説!複数のイテラブルをまとめて処理する方法
zip() 関数は、複数のイテレータ(イテラブル)をまとめてグループ化するために使われる組み込み関数です。この記事では、zip() の基本的な使い方から、展開(アンジップ)のテクニック、実践的な活用例まで詳しく解説します。zip()関数のドキュメントを確認するまずは help() メソッドを使って、zip() 関数の公式ドキュメントを見てみましょう。以下のコードを実行してください。コード例help(zip)上記のプログラムを実行すると、次のような結果が表示されます。出力結果Help on class zip in module builtins: class zip(object) |
-
Pythonのvars()関数とは?__dict__属性の取得方法を実例付きで解説
vars() 関数は、Python標準ライブラリに組み込まれているビルトイン関数の一つです。指定したオブジェクトに関連付けられた __dict__ 属性(オブジェクトが保持する属性やメソッドの情報を格納した辞書)を返します。 基本構文 vars(object) 戻り値 <辞書型(Dictionary)> パラメータについて vars() 関数が受け取る引数は1つだけです。引数には、モジュール、クラス、あるいは __dict__ 属性を持つ任意のオブジェクトを指定できます。 この引数は省略可能です。引数なしで呼び出した場合は、現在のローカルシンボルテーブルを含む辞書が返されます。 発
-
Pythonでパングラムを判定する方法:set()の活用
本記事では、Python 3.x(およびそれ以前のバージョン)において、与えられた文字列が「パングラム」であるかどうかを判定する方法を解説します。パングラムとは、英語のアルファベット26文字すべてを含む文字列のことです。まずは、以下の例を見てみましょう。 入力:str = This is the python blog on Tutorial point 出力:No 入力:str = I want to contribute to a dxyzwuvghlkfmq open source project 出力:Yes なお、定義上、「完全パングラム」と呼ばれるものは、26個の英字それぞれをちょ
-
Pythonのリストをスタックとキューとして使う方法を徹底解説
本記事では、Python 3.x(およびそれ以前のバージョン)におけるスタック(Stack)とキュー(Queue)という基本的なデータ構造について解説します。それぞれのデータ構造の仕組みや操作方法を、実際のコード例とともにわかりやすく学んでいきましょう。 本記事で扱う主なトピックは以下の通りです。 挿入操作(Push / Enqueue) 削除操作(Pop / Dequeue) 表示・走査(トラバース)操作 前提知識:リストとリスト操作の基礎関連するデータ構造:リスト操作 スタック(Stack)とは スタックでは、オブジェクトが積み重なるように格納され、取り出す際には到着した順序とは逆の順
-
Pythonで反復処理を効果的に行う方法:イテレータ実装の5つのパターン
本記事では、Python 3.xにおけるイテレータの実装方法と、その効果的な活用法について解説します。Pythonには反復処理を実現するためのさまざまな手法が用意されており、それぞれに特徴があります。具体的なコード例とともに、代表的な5つのパターンを見ていきましょう。手法1:要素数が既知の場合のwhileループによる実装サンプルコードgenre = ("Python","C","C++","Java") print("Tutorials Pointで学べるトピックは以下の通りです:") i =
-
Pythonの特別変数__name__とは?__main__の仕組みを徹底解説
多くのプログラミング言語と異なり、Pythonは明示的なmain関数から実行を開始するようには設計されていません。その代わりに、__name__という特別な変数がmain関数に相当する役割を担っています。__name__はPythonに組み込みの変数なので、以下のように短いコードを書くだけでその値を確認できます。 print(type(__name__)) print(__name__) このコードを実行すると、次のような結果が得られます。 <class str> __main__ ご覧のとおり、__name__変数の値は文字列型であり、その値は__main__になっています。ここ
-
Pythonのソート徹底解説:sorted()、list.sort()、np.argsort()、np.lexsort()の違いと使い方
データ要素を特定の順序で並べ替える処理は、プログラミングにおいて非常によく使われる操作です。Pythonでは配列(リスト)の要素をソートするために、sorted()関数とlist.sort()メソッドという2つの方法が用意されています。さらに、より高度なソートが必要な場合はNumPyライブラリのargsort()やlexsort()が活躍します。本記事では、それぞれの使い方と動作の違いを具体例とともにわかりやすく解説します。sorted():元の配列を変更せずにソートsorted()関数は、元の配列を変更することなく、ソート済みの新しい配列を返します。a = [9,5,3,1,12,6] b
-
Pythonのabs()関数とは?絶対値の求め方を徹底解説
Pythonの組み込み関数abs()は、数値の「絶対値」を求めるための関数です。絶対値とは、数値に付いている符号(プラス・マイナス)を取り除き、その数値そのものの大きさ(マグニチュード)だけを取り出した値のことを指します。特に複素数の場合、絶対値(大きさ)の計算には平方根など複数の手順が必要となるため、abs()関数を使うと非常に便利です。abs()関数の構文abs(num)引数 num には、整数・浮動小数点数・複素数のいずれかを指定できます。それぞれの型ごとの戻り値は以下の通りです。整数:符号を除いた整数値を返します浮動小数点数:符号を除いた浮動小数点数を返します複素数:原点からの距離、す
-
Pythonでの絶対インポートと相対インポートの違いを徹底解説
はじめにPythonでコードを作成していると、別のPythonファイルやパッケージにあるコードへアクセスする必要が生じることがよくあります。そのような場合には、対象のファイルやパッケージを現在のコードにインポート(import)します。最も基本的な方法は、プログラムの先頭に以下のようなステートメントを記述することです。import package_name または module_nameまたはfrom package_name import module_name / object_nameこのステートメントが解釈されるとき、インタープリタは次の手順で処理を行います。まず、これまでにインポート
-
Pythonでクラスの属性とメソッドにアクセスする方法を徹底解説
Pythonはオブジェクト指向プログラミング言語であり、オブジェクトを中心とした設計思想を持っています。クラスはオブジェクトを生成するための設計図(ブループリント)であり、各クラスは複数の属性を持ちます。さらに、関数も属性としてクラスに持たせることが可能です。 クラスの属性へのアクセス クラスの属性を確認したり操作したりする際には、Pythonに組み込まれている以下のメソッドが便利です。 getattr() — クラスの属性値を取得するための組み込み関数。 hasattr() — クラスやオブジェクトに指定した属性が存在するかどうかを真偽値で確認する組み込み関数。 setattr() —
-
Pythonの辞書にキーと値のペアを追加する方法を徹底解説
Pythonの辞書(dict)は、キーと値のペアで構成されるコレクションです。すでに定義済みの辞書に対して、新しいキーと値のペアを追加する場面は開発の中で非常によくあります。この記事では、代表的な3つの追加方法を具体例とともにわかりやすく解説します。1. 新しいキーを添字として代入する最もシンプルな方法は、新しいキーを角括弧(添字)で指定し、そこに値を代入する書き方です。既存のキーを指定すれば値が上書きされ、存在しないキーを指定すれば新しい要素が追加されます。コード例CountryCodeDict = {India: 91, UK: 44, USA: 1} print(CountryCodeD
-
Pythonの*argsと**kwargsとは?可変長引数の使い方を実例付きで解説
Pythonで関数を定義する目的は、引数に異なる値を渡しながら同じコードを何度でも再利用できるようにすることです。しかし、設計上よくある課題として、「関数を呼び出すたびに、渡すべき引数の数が決まっていない場合はどうすればよいのか」という問題があります。こうした場面で活躍するのが、*args と **kwargs という特別な引数です。本記事では、それぞれの仕組みと使い方を順番に見ていきましょう。 *args:可変長の位置引数を受け取る *args を使うと、任意の個数の引数(位置引数)を関数に渡せるようになります。以下の例では、一連の数値を掛け合わせた結果を求めています。関数を呼び出すたびに
-
Pythonが「動的型付け言語」と呼ばれる理由とは?
Pythonは「動的型付け言語」に分類されるプログラミング言語です。では、「動的」とは一体何を意味するのでしょうか。 Pythonでは、変数に値を代入する際、その型を事前に宣言する必要がありません。また、メモリ管理も自動的に行われます。一方、C、C++、Javaなどの静的型付け言語では、変数を使用する前に必ず型を宣言しなければなりません。たとえば整数型の変数を使いたい場合、「この変数は整数です」とあらかじめ宣言してから値を代入する、という流れになります。 しかし、Pythonでは変数の型を宣言しなくても問題なく動作します。Pythonはプログラムの実行時(ランタイム)に、代入された値から自動的
-
PythonのpafyライブラリでYouTube動画・音声をダウンロードする方法
この記事では、Pythonのpafyモジュールを使って、YouTube動画の詳細情報を取得し、さまざまな形式でダウンロードする方法を解説します。公式ドキュメントはこちらのリンクから確認できます。 pafyモジュールのインストール まず、以下のコマンドを実行してpafyモジュールをインストールします。 pip install pafy コマンドが正常に完了すると、次のような出力が表示され、pafyのインストールが成功したことがわかります。 Collecting pafy Using cached https://files.pythonhosted.org/packages/b0/e8/351
-
Pythonのid()関数の使い方を徹底解説
この記事では、Python 3.x(およびそれ以前のバージョン)における id() 関数の使い方と仕組みについて詳しく解説します。id() 関数はPython標準ライブラリに組み込まれており、コード実行時に自動的に利用可能になっているため、追加のインポートは不要です。 id()関数の基本 構文 id(<オブジェクト名>) 戻り値 int型 の識別値(ID) id() 関数は、引数をちょうど1つだけ受け取ります。引数には、IDを取得したい対象のオブジェクト名を指定します。返されるIDは、複数の変数が同じデータを参照している場合を除き、各オブジェクトごとに一意の値となります。 このID
-
Pythonでモジュールをインポートする方法まとめ【基本構文から別名指定まで】
この記事では、Python 3.x(およびそれ以前のバージョン)でモジュールをインポートするさまざまな方法について解説します。import文は、コードを実行するために必要な依存関係やモジュールを読み込むために使用される、Pythonプログラミングの基礎となる重要な構文です。 最も基本的な方法:import文 構文 import <モジュール名> 例 import math print(math.log10(100)) 出力 2.0 この方法ではモジュール全体を読み込みます。関数や変数にアクセスする際は、「math.log10」のようにモジュール名をプレフィックスとして付ける必要があ
-
Python 2.xとPython 3.xの重要な違いを具体例つきで徹底解説
この記事では、Python 2.xとPython 3.xの間に存在する主要な変更点について、具体的なコード例とともにわかりやすく解説します。Python 2はすでにサポートが終了しているため、両者の違いを理解することは、古いコードベースの移行や保守を行う上でも非常に重要です。本記事で取り上げる主なトピックは以下の4つです。入力方法(Input)出力方法(Output)除算演算子(Division Operator)例外処理(Exception Handling)1. 入力方法の違いPython 2.xではユーザーからの入力を受け付ける際に raw_input() メソッドを使用していましたが、