2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Pythonのinput関数活用の備忘録メモ

Last updated at Posted at 2020-08-24

筆者がPythonを勉強する為に読んだ書籍入門 Python3では、なぜか標準入力関数の解説が掲載されていませんでした。:scream: ただ、使ってみると大変便利な関数なので活用方法を備忘録として残しておこうと思います。

最も基本的な使い方

最も基本的な利用方法は以下の通りです。実行すると標準入力(通常はキーボード)からの入力待ち状態となります。変数xに代入したい内容を入力し、最後にReturnを入力すると入力内容がxに代入されます。

入力例
>>> x = input()
5
>>> print(x)
5

入力を促すメッセージを表示

入力を促すメッセージを表示させることも可能です。表示させたい内容をinput関数の引数として渡します。

入力例
>>> x = input("数値を入力: ")
数値を入力: 2
>>> print(x)
2

整数として取り出す

まずはinput関数の戻り値の型を見てみます。文字列型(str)と出力されます。

>>> x = input()
2
>>> print(type(x))
<class 'str'>

整数として取り出す場合はint関数(浮動小数点の場合float)を用いてキャストします。

入力例
>>> x = int(input())
2
>>> print(type(x))
<class 'int'>

複数の値を一度に入力

基本は文字列

複数の値を一度に標準入力から入力したい場合は多々あります。複数の値をスペース区切りで入力した場合以下の様に変数に代入されます。

入力例
>>> x = input()
2 3 4
>>> print(x)
2 3 4

文字列を分解して複数の値の取り出し

これは複数の値をスペースで連結した文字列として代入されています。故に以下の様に内包表記を用いれば複数の値が一度に取り出せます。(int関数でキャストし、整数型として取り出しています。)

入力例
>>> x, y, z = (int(x) for x in input().split())
2 3 4
>>> print(x, y, z)
2 3 4
>>> print(type(x), type(y), type(z))
<class 'int'> <class 'int'> <class 'int'>

リストに変換

以下の様にするとリストとして代入できます。

入力例
>>> x = input().split()
2 3 4
>>> print(x)
['2', '3', '4']

この場合、文字列のリストになってしまいます。整数値のリストとする為に、リスト内包表記を用います。

入力例
>>> x = [int(x) for x in input().split()]
2 3 4
>>> x
[2, 3, 4]

if文との組み合わせ

enumerate文とif文を追加すると取り出す値の個数を制御出来ます。

入力例
>>> x = [int(x) for i, x in enumerate(input().split()) if i < 3]
1 2 3
>>> print(x)
[1, 2, 3]
>>> x = [int(x) for i, x in enumerate(input().split()) if i < 3]
1 2 3 4
>>> print(x)
[1, 2, 3]

Reference

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?