質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
標準入力

標準入力(stdin)は、プログラムが標準的に用いるデータ入力元。リダイレクトしない限り、プログラムを起動した端末のキーボードが標準入力になります。UNIX系OSやC言語に実装されて普及した概念ですが、他のOSや言語も含めた総称としても使われます。

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

967閲覧

Google Colaboratory上で、sys.stdin.readlineを用いた標準入力を行いたい

Nekoinu

総合スコア0

標準入力

標準入力(stdin)は、プログラムが標準的に用いるデータ入力元。リダイレクトしない限り、プログラムを起動した端末のキーボードが標準入力になります。UNIX系OSやC言語に実装されて普及した概念ですが、他のOSや言語も含めた総称としても使われます。

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2022/09/25 21:09

前提

Google Colaboratoryに関する質問です。

大量のデータを受け取る際は、sys.stdin.readlineの方がinputよりも早く実行できると聞き、試してみようと思ったのですが、実行時、以下のエラーメッセージが表示されました。
(エラーメッセージは入力を待つことなく表示されます)

実現したいこと

  • Google Colaboratory上で、sys.stdin.readlineを用いて標準入力をする方法が知りたい

発生している問題・エラーメッセージ

エラーメッセージ -------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-7-ec318a4f710f> in <module> 1 import sys ----> 2 N = int(sys.stdin.readline()) ValueError: invalid literal for int() with base 10: ''

該当のソースコード

python

1import sys 2N = int(sys.stdin.readline())

試したこと

上記のソースコードはGoogle Colaboratory以外(コマンドプロンプトやvscodeなど)では正常に動作します。

補足情報(FW/ツールのバージョンなど)

Colaboratory上で、pythonのバージョンを確認したところ、Python 3.7.14でした。
回答よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bsdfan

2022/09/27 00:01 編集

Google Colaboratoryで標準入力をreadしたいケースはあまりないと思うのですが、具体的にやりたいことはどんなことでしょうか? 純粋に input() の代わりに sys.stdin.readline() を試したいだけなら、colab上ではできませんということになると思います。
Nekoinu

2022/09/27 19:31

回答ありがとうございます。 bsdfanさんの言われる通り、純粋に試したくなった結果、奇妙なエラーが出て混乱していただけなので、出来ないと知って納得しました。aizu online judgeの問題などは、別環境でテストした方がよさそうですね。 ところで、teratailで初めて質問をしたのでこのサイトの仕来りに明るくないのですが、この場合(質問への追記・修正で疑問が解消されてしまった場合)は、自己解決として解決済みの表示に変えた方がいいのでしょうか。
bsdfan

2022/09/27 22:42 編集

後で見た人がわかる形で自分で解答を書いて、自己解決にしていただいたらいいです。 コンテスト系は入力部分は使い回すことが多いので、それ以降のロジック部分だけを、データは直接与える形で、colabで試すのはどうでしょう。 その他、sys.stdin に StringIOをつなぐ方法もあります。 https://qiita.com/ajim/items/4d350710ba70056f5f6f
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問