はじめに
新年あけましておめでとうございます。
そして、初めての投稿です。
年が明けて何かで自分の殻を破る一年にしたいと考え、本記事を投稿しました。
もしよければ目を通していただけると幸いです。
よろしくお願いいたします。
プログラミング学習で困ったこと
現在、プログラミングの自学習サイトはAtcoderやPaizaが(個人的に)主流となっています。
私自身も二つのサイトを利用し、スキルを磨いています。
ただ、
最初の一歩が重かった!!!
すっごく重かった!
何かというと、入力値はどっから取得しているのかがわからなかった!!!
というわけで今回はどういった仕組みで入力値を受け取っているのかをPythonでまとめてみました。
もし同じ悩みを持っている方がいらっしゃえば、力になれると嬉しいです。
入力値の取得場所
結論からいうと、標準入力と同じ仕組みデータを取得しています。
標準入力
標準入力とは、プログラムがデータを受け取るための標準的な入り口のことで、一番身近なものでいうとキーボードからの入力にあたります。
キーボードで入力されたメッセージは、以下の順序でプログラムに落とし込まれます。
- OS(カーネル)のバッファ
- 言語・ライブラリのバッファ
- プログラムの変数
入力値の取得方法
入力値は、以下のコードによって一行ずつ取得できます。
また、コードの単語についても簡単にご紹介します。
input = sys.stdin.readline()
sys(モジュール)
Python実行環境(インタープリタ)そのものを操作・参照するための標準ライブラリ
OSや実行環境とPythonを橋渡しの役割を担う
stdin(標準入力)
プログラムがデータを受け取るための標準的な入口(ストリーム)
readline(メソッド)
ファイルオブジェクトから一行分のデータを読み出すための命令(文字列型で取得)
参照:https://docs.python.org/ja/3/library/io.html#io.TextIOBase.readline
上記の内容を一言でまとめると、sys.stdin.readline()とは、OSのストリームからデータを一行ずつ読み出すためのコードということです。
複数行取得したい場合は、for文による繰り返し処理で実現可能です。
おわりに
ここまで目を通していただきありがとうございました。
構成などでわかりにくい箇所があったら、コメントにて指摘して頂けると幸いです。
次回のネタはまだ決まっていませんが、続けて投稿していきます。