• Skip to main content
  • Skip to secondary menu
  • Skip to primary sidebar
  • Skip to footer

AI活用エンジニアへの道

生成AI時代のエンジニアの生き方を考えるメディア(作成途中)

  • コラム
  • 生成AI
  • プログラミング
    • Python入門
    • Flask入門
    • Django入門
  • プロフィール
Home / プログラミング / Python / Pythonの文字列型と数値型の相互変換のやり方について詳細を解説

Pythonの文字列型と数値型の相互変換のやり方について詳細を解説

1 Pythonにおける型変換の基本概念
2 文字列から数値への変換
3 数値から文字列への変換
4 型変換時のエラーハンドリング
5 関連記事

この記事では、数値型と文字列型の相互変換について詳しく解説する。型変換はPythonの基本中の基本だが、エラーが発生しやすい箇所でもあるため、しっかりとマスターしておこう。

Pythonにおける型変換の基本概念

Pythonでプログラムを書いていると、数値を文字列に変換したり、その逆を行ったりする場面が頻繁に現れる。
例えば、ユーザーからの入力は常に文字列として受け取られるため、計算に使用する場合は数値型への変換が必須だ。

なぜ型変換が必要なのか

Pythonは「強い型付け」を採用している言語のため、異なる型同士の演算は基本的にできない。
そのため、型変換が重要になってくる。

# エラーになる例
age_str = "25"
next_year = age_str + 1  # TypeError: can only concatenate str (not "int") to str

# 正しい方法
age_str = "25"
age_num = int(age_str)  # 文字列を整数に変換
next_year = age_num + 1  # 26
print(f"来年は{next_year}歳になります")

文字列から数値への変換

数値に変換する際は、整数への変換はint()関数、浮動小数点数への変換はfloat()関数を使用する。それぞれの特徴と使い方を詳しく見ていこう。

int()関数による整数変換

int()関数は文字列などを整数型に変換する際に使用する。

# 基本的な変換
number_str = "42"
number_int = int(number_str)
print(f"文字列: {number_str}, 整数: {number_int}")
print(f"型: {type(number_str)} → {type(number_int)}")

# 負の数も変換可能
negative_str = "-123"
negative_int = int(negative_str)
print(f"負の数: {negative_int}")

# 計算での使用例
price_str = input("商品の価格を入力してください: ")
price = int(price_str)
tax_included = int(price * 1.1)
print(f"税込価格: {tax_included}円")

float()関数による浮動小数点数変換

小数点を含む数値を扱う場合は、float()関数を使用する。

# 小数点を含む文字列の変換
decimal_str = "3.14"
decimal_float = float(decimal_str)
print(f"円周率: {decimal_float}")

# 整数形式の文字列もfloatに変換可能
integer_str = "100"
float_from_int = float(integer_str)
print(f"整数文字列をfloatに: {float_from_int}")  # 100.0

# 科学的記数法も対応
scientific_str = "1.23e-4"
scientific_float = float(scientific_str)
print(f"科学的記数法: {scientific_float}")  # 0.000123
int()関数で小数点を含む文字列を変換しようとするとValueErrorが発生する。まずfloat()で変換してからint()を適用するか、最初から適切な関数を選択することが重要だ。
Python講座

【Udemy】Python入門講座(0からPythonの基礎を体系的に学んで、生成AIでバイブコーディング)

受講生3000人ほどの人気講座。Pythonの基礎から生成AI活用までを20時間ほどで一気に学びます。業務で活かせるPythonの基礎知識はしっかりと身につきます。

数値から文字列への変換

逆に、数値を文字列に変換する場合はstr()関数を使用する。この変換で、エラーが発生することはほとんどない。

str()関数による文字列変換

# 整数の文字列変換
age = 25
age_str = str(age)
print(f"数値: {age}, 文字列: '{age_str}'")
print(f"型: {type(age)} → {type(age_str)}")

# 浮動小数点数の変換
pi = 3.14159
pi_str = str(pi)
print(f"π: {pi_str}")

# 文字列連結での活用
score = 85
message = "あなたの点数は" + str(score) + "点です"
print(message)

f文字列による暗黙的な変換

実は、f文字列を使用すると自動的に型変換が行われるため、str()関数を明示的に使う必要がない場合も多い。

# f文字列での自動変換
name = "山田"
age = 30
height = 175.5

# 自動的に数値が文字列に変換される
profile = f"名前: {name}, 年齢: {age}, 身長: {height}cm"
print(profile)

# 数値フォーマットも同時に指定可能
price = 1234.567
formatted_price = f"価格: ¥{price:,.2f}"
print(formatted_price)  # 価格: ¥1,234.57

型変換時のエラーハンドリング

型変換でよくある問題は、変換できない文字列を数値に変換しようとしてValueErrorが発生することだ。
実際のプログラムでは、このようなエラーに対処する必要がある。

ValueError対策の基本

# エラーが発生する例
try:
    invalid_str = "abc123"
    number = int(invalid_str)  # ValueError発生
except ValueError:
    print("数値に変換できない文字列です")

# より実用的なエラーハンドリング
def safe_int_conversion(value):
    """安全に整数変換を行う関数"""
    try:
        return int(value)
    except ValueError:
        print(f"'{value}'は整数に変換できません")
        return None

# 使用例
user_input = "25"
result = safe_int_conversion(user_input)
if result is not None:
    print(f"変換成功: {result}")

ユーザー入力の検証

ユーザーからの入力を数値として使用する場合の実践的なパターンだ。

def get_valid_number(prompt):
    """有効な数値が入力されるまで繰り返す関数"""
    while True:
        user_input = input(prompt)
        try:
            number = int(user_input)
            return number
        except ValueError:
            print("有効な整数を入力してください。")

# 実際の使用例
age = get_valid_number("年齢を入力してください: ")
print(f"あなたは{age}歳ですね")

# より高度な検証(範囲チェック付き)
def get_age():
    while True:
        try:
            age_str = input("年齢を入力してください(0-150): ")
            age = int(age_str)
            if 0 <= age <= 150:
                return age
            else:
                print("0から150の間で入力してください。")
        except ValueError:
            print("数値を入力してください。")
Python講座

【Udemy】Python入門講座(0からPythonの基礎を体系的に学んで、生成AIでバイブコーディング)

受講生3000人ほどの人気講座。Pythonの基礎から生成AI活用までを20時間ほどで一気に学びます。業務で活かせるPythonの基礎知識はしっかりと身につきます。

数値型と文字列型の相互変換は、Pythonプログラミングの基礎スキルの一つだ。int()、float()、str()の各関数を適切に使い分け、エラーハンドリングを忘れずに実装することで、堅牢なプログラムを作成できる。特にユーザー入力を扱う際は、常に型変換エラーの可能性を考慮し、適切な検証処理を組み込むことが重要だ。

関連記事

Pythonの型ヒント:コレクション型とOptional型の使い方
Pythonの型ヒント:コレクション型とOptional型の…
Python型ヒントについて、変数と関数の引数と戻り値に付与する基本的な書き方について
Python型ヒントについて、変数と関数の引数と戻り値に付与…
【まとめ】よく使うLinuxのショートカット11選
【まとめ】よく使うLinuxのショートカット11選
覚えておくべきLinuxコマンド50選
覚えておくべきLinuxコマンド50選
FlaskでFormを用いてPOSTリクエストを行い、送信された値を取得する
FlaskでFormを用いてPOSTリクエストを行い、送信さ…
Flaskでabortを用いてHTTPException例外を強制的に発生させる
Flaskでabortを用いてHTTPException例外…

Primary Sidebar

人気記事

  • 1
    PyCharm,IntelliJのおすすめプラグイン一覧
  • no image 2
    Python未経験だが、フリーランスの案件に採用さ…
  • 3
    ITエンジニアとしてスキルを高めるためのUdemy講…
  • 4
    アメリカのシリコンバレーでプログラミングを無…

特集記事

  • 1
    Cursorの使用のポイントとコツ(コード補完、イ…
  • 2
    ITエンジニアとしてスキルを高めるためのUdemy講…

目次

1 Pythonにおける型変換の基本概念
2 文字列から数値への変換
3 数値から文字列への変換
4 型変換時のエラーハンドリング
5 関連記事
StartCode ロゴ
AI時代のエンジニアを最速で育てる
法人向けIT研修で即戦力を育成しています。詳しくはお問い合わせください。
▶ 詳細はこちら
Python講座
【Udemy】Python入門講座(0からPythonの基礎を体系的に学んで、生成AIでバイブコーディング)
受講生3000人ほどの人気講座。<strong>Pythonの基礎から生成AI活用</strong>...
詳細 ▶

Footer

利用規約