第6回|Pythonのinput()入門:キーボード入力とint()での数値変換 | はじめてのPython

* 当サイトでは、コンテンツの一部に広告を掲載しています。

System Note $ cat /proc/ai-disclosure

本記事の構成および論理分析にはAI(人工知能)を使用しています。情報の正確性は、システム管理者(UNIXユーザー)による手動検証済みです。

第6回|Pythonのinput()入門:キーボード入力とint()での数値変換 | はじめてのPython

はじめてのPython | 第6回

目次

1. はじめに

この回では、キーボードから入力を受け取る方法を学びます。これまでのコードは、あらかじめ決まった値をそのまま使っていました。

input() を使うと、実行中にユーザーが入力した値をプログラムで使えるようになります。一方で、入力された値は文字列として扱われるため、その点を正しく理解する必要があります。

2. この回で学ぶこと

  • input() の基本
  • 入力値は文字列になること
  • int() で数値に変換する方法
  • 入力値を使った計算
  • 変換エラーの基本

3. 概念の説明

Pythonでは、input() を使うとキーボードから値を受け取れます。

たとえば次のコードでは、入力された値を name に入れています。

name = input("名前を入力してください: ")

input() のかっこの中に書いた文字列は、入力前の案内として表示されます。

重要なのは、input() で受け取った値は文字列になることです。たとえば、画面で 25 と入力しても、そのままでは数値の 25 ではなく文字列の "25" として扱われます。

数値として計算に使いたい場合は、int() で整数に変換します。

4. サンプルコード

次のコードを見てください。

name = input("名前を入力してください: ")
print("こんにちは、" + name)

age = int(input("年齢を入力してください: "))
print(age + 1)

このコードでは、最初に名前を文字列として受け取り、次に年齢を数値として使えるように変換しています。

5. 実行手順

まず、input_sample.py というファイルを作ります。

touch input_sample.py

input_sample.py をエディターで開き、次のコードを書いて保存します。

name = input("名前を入力してください: ")
print("こんにちは、" + name)

age = int(input("年齢を入力してください: "))
print(age + 1)

保存したら、ターミナルで次のコマンドを実行します。

python3 input_sample.py

たとえば、次のように入力します。

名前を入力してください: Taro
こんにちは、Taro
年齢を入力してください: 20
21

6. コードの読み方

  • name = input("名前を入力してください: ") は、入力された文字を name に代入しています。
  • 次の print("こんにちは、" + name) は、文字列どうしをつないで表示しています。
  • nameTaro が入っていれば、こんにちは、Taro と表示されます。
  • age = int(input("年齢を入力してください: ")) は、2つの処理をまとめて書いています。
  • 最初に input() で入力を受け取り、その結果を int() で整数に変換しています。
  • そのため、age は文字列ではなく整数として使えます。
  • 最後の print(age + 1) では、age に 1 を足した結果を表示しています。

7. 初学者がつまずきやすい点

  • input() の結果は常に文字列になる
  • 数値として使うときは int() が必要になる
  • input() の案内文も文字列として書く
  • + は文字列では連結、数値では足し算になる
  • 数字を入力しても、自動で数値にはならない

たとえば、input()10 と入力しても、そのままでは "10" です。そのため、計算したい場合は int("10") のように変換する必要があります。

8. よくあるエラー

1つ目は、文字列のまま数値を足そうとした場合です。

TypeError: can only concatenate str (not "int") to str

たとえば次のようなコードです。

age = input("年齢を入力してください: ")
print(age + 1)

age は文字列なので、そのまま 1 を足すことはできません。

2つ目は、数字ではないものを int() で変換しようとした場合です。

ValueError: invalid literal for int() with base 10

たとえば、年齢の入力で abc と入れると変換できません。

3つ目は、かっこの閉じ忘れです。

SyntaxError: '(' was never closed

input("名前を入力してください: " のように ) を忘れると実行できません。

9. 練習用コード

次のコードを practice_input.py として保存して実行してください。

city = input("住んでいる都市を入力してください: ")
print("入力された都市は " + city + " です")

number = int(input("好きな数字を入力してください: "))
print(number + 10)

実行したあとで、最初の入力は文字列として使われ、2つ目の入力は整数に変換して計算していることを確認してください。

余裕があれば、int() を外した場合に何が起きるかも試してください。

10. この回で理解しておくこと

  • input() を使うとキーボードから値を受け取れる
  • 入力値は文字列として扱われる
  • 数値として使うときは int() で変換する
  • 変換しないと計算でエラーになる場合がある
  • 入力内容によっては ValueError が出る

11. まとめ

今回は、input() を使って入力を受け取る方法を確認しました。

入力値が文字列になることを理解しておくと、次の計算や条件分岐でも混乱しにくくなります。

input()int() の組み合わせは、今後の学習でも何度も使います。

12. 次回予告

次回は、if 文を使って条件によって処理を分ける方法を学びます。入力された値に応じて結果を変える基本を確認します。

復習してみよう

復習したい方は、こちらもあわせてご覧ください。

用途ごとに選ぶ Pythonのおすすめ本

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

のいのアバター のい UNIX Cafe マスター

Macintosh Color Classicから始まった旅は、長いWindows時代を経て、Windows10のサポート終了をきっかけにUNIXの世界へ戻ってきました。UNIX Cafeでは、UNIX・Linux・そしてMacな世界を、むずかしい言葉を使わず、物語のように書いています。プログラミングは、アイデアをコンピューターに伝えるための言葉です。簡単な単語と文法を覚えれば、誰でもコマンドを使えます。ぜひ一度、やさしいプログラミングの世界をのぞいてみてください。

Created by UNIX Cafe

目次