Python
 Computer >> コンピューター >  >> プログラミング >> Python

PythonでIPアドレスから先行ゼロ(先頭の0)を削除する方法

IPアドレスには、オクテットごとに余分な先行ゼロ(先頭の「0」)が含まれていることがあります。例えば「200.040.009.400」のような表記は、正規の形式では「200.40.9.400」と表されます。

この問題を解決する基本的な考え方はシンプルです。まずIPアドレスの文字列を「.」(ドット)で分割し、各部分を整数型(int)に変換します。整数への変換時点で先頭のゼロは自動的に取り除かれるため、その後、再び文字列に戻して「.」で連結すれば、整形済みのIPアドレスが完成します。

実行例

入力 : 200.040.009.400
出力 : 200.40.9.400

アルゴリズム

Step 1: IPアドレスを入力として受け取る。
Step 2: IPアドレスを「.」で分割する。
Step 3: int()関数を使って各文字列を整数に変換する(先頭のゼロはここで除去される)。
Step 4: ゼロが除去された整数値を取得する。
Step 5: str()関数で再び文字列に変換し、join()関数で「.」区切りで連結して返す。

サンプルコード

# Pythonプログラム:IPアドレスから先行ゼロを削除して表示する

# 先行ゼロを削除する関数
def remove_leading_zeros(ip):
    # 「.」で分割 → int変換でゼロを除去 → 文字列に戻して再結合
    return ".".join(str(int(part)) for part in ip.split("."))

# ドライバーコード
ip = input("Enter the IP address ::>")
print("New Ip Address ::>", remove_leading_zeros(ip))

コードの解説

このプログラムのポイントは、リスト内包表記(ジェネレータ式)を1行で処理している点です。

  • ip.split("."):入力されたIPアドレスを「.」を区切り文字として4つの部分(オクテット)に分割します。
  • int(part):各部分を整数に変換します。「040」→「40」、「009」→「9」のように、先頭のゼロは数値化の際に自然に消えます。
  • str(...):整数を再び文字列に戻します。
  • ".".join(...):処理済みの各部分を「.」で連結し、新しいIPアドレス文字列を生成します。

実行結果

Enter the IP address ::>200.006.020.900
New Ip Address ::> 200.6.20.900

このように、split・int・joinを組み合わせるだけで、正規表現や複雑な文字列操作を使わずに、先行ゼロを簡単に除去できます。IPv4アドレスの正規化など、実際のネットワークプログラミングでも役立つテクニックです。

  1. 【Python】Tkinterでラベルのテキストを削除する方法をわかりやすく解説

    Tkinterは、PythonでGUIベースのアプリケーションを作成・開発するための標準ライブラリです。この記事では、何らかのテキストが表示されているラベルから、そのテキストを削除する方法を解説します。 ラベルからテキストを削除するには、ラベルの表示を切り替えるトリガーとして機能するボタンを作成します。具体的には、config()メソッドを使ってラベルのtext属性を空の文字列に書き換えます。 サンプルコード # Tkinterライブラリをインポート from tkinter import * # tkinterフレームのインスタンスを作成 win = Tk() # ウィンドウのサイズを

  2. 【初心者向け】Pythonで文章から重複する単語をすべて削除する方法

    プログラミングでは、与えられた文章から重複する単語を取り除いて整理したい場面がよくあります。本記事では、Pythonの標準ライブラリ「collections.Counter」を活用して、文章内の重複単語を効率的に削除する方法を解説します。処理の概要たとえば、次のような文章が与えられたとします。入力:I am a peaceful soul and blissful soul. 出力:I am a peaceful soul and blissful.このように、「soul」という単語が2回出現している場合、2回目以降の出現を削除し、各単語が1回だけ含まれる文章を作成します。アルゴリズムの手順重