【Python】標準入力でキーボードからデータを受け取り(sys.stdin.readlines、input関数)

Python言語のsys.stdin.readlines、input関数などを用いて標準入力を実装する方法をソースコード付きで解説します。

【標準入力】1行の入力

標準入力とは、データを受け取ることです。
Pythonでは「sys.stdin」でキーボードからの標準入力を使うことが出来ます。
(キーボードで入力された文字を受け取ることができます)

入力したデータ(1行)を受け取って表示します。

動画解説

本ページの内容は動画でも解説しています。

# -*- coding: utf-8 -*-
import sys

print("input >")
data = sys.stdin.readline()

print("result > ")
print(data)

"""
input >
Excalibur
result >
Excalibur
"""

【sys.stdin.readlines】複数行の入力 → リスト

入力したデータ(複数行)を受け取って表示します。
受け取ったデータは”リスト”に格納されます。

なお、入力を終了するに「ctrl + z」を入力してEnterを押します。

# -*- coding: utf-8 -*-
import sys

print("input >")
data = sys.stdin.readlines()

print("result > ")
print(data)

"""
input >
Ex
Calibur
^Z
result >
['Ex\n', 'Calibur\n']
"""

各要素には最後に改行コードも挿入されます。

【Python】複数行の標準入力(sys.stdin.readlines)
この記事では、Python言語で複数行の標準入力をsys.stdin.readlinesで受け取る方法をソースコード付きで解説します。

【sys.stdin.read】複数行の入力 → 1つの文字列

入力したデータ(複数行)を受け取って表示します。
受け取ったデータは”1つの文字列”に格納されます。
なお、入力を終了するには「ctrl + z」を入力します。

# -*- coding: utf-8 -*-
import sys

print("input >")
data = sys.stdin.read()

print("result > ")
print(data)

"""
input >
Ex
Calibur
^Z
result >
Ex
Calibur
"""

【input】複数行の入力

Python3ではinput関数で1行の標準入力を受け取りことができます。
input関数を繰り返し呼び出すことで、その分の行数の標準入力を受け取れます。

ただし、複数行受け取る場合は、行数を指定してやる必要があります。
今回は、1行目で行数を与え、2行目以降にデータを入力してみました。

# 行数を取得
print("input number of lines >")
num_lines = int(input())

# 1行ずつ取り出し
for i in range(num_lines):
    line = input()
    print("line " + str(i+1) + ":" + line)

"""
input number of lines >
2
Ex
line 1:Ex
calibur
line 2:calibur
"""
【Python】1行、複数行の標準入力(input、sys.stdin.readlines)
Python言語のinput、sys.stdin.readlinesで複数行の標準入力を受け取る方法をソースコード付きで解説します。
【Python超入門】使い方とサンプル集
Pythonの使い方について、基礎文法から応用例まで入門者向けに解説します。

コメント

  1. 匿名 より:

    readlinesの終了は「ctrl+D」で出来ました。
    ctrl+zではundoになります。