質問編集履歴
1
input()とsys.stdin.readline()は通るが、bufferメソッドは通らない
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,11 +2,17 @@
|
|
2
2
|
|
3
3
|
Pycharmにてコードをテストする際に、デバッガーモードだと標準入力の改行を無視するといった動作があるようなので、簡単なチェックはPythonコンソールを使用しようと思っています。
|
4
4
|
|
5
|
-
しかし、Pythonコンソールではinput()でもsys.stdin.readline()でも入力が受け付けない状態になって固まってしまいます。その状態で入力をすると、コードが走っていてまだ処理されていないとエラーがでます。
|
5
|
+
しかし、Pythonコンソールでは~~input()でもsys.stdin.readline()でも~~sys.stdin.buffer.readline()の入力が受け付けない状態になって固まってしまいます。その状態で入力をすると、コードが走っていてまだ処理されていないとエラーがでます。
|
6
6
|
|
7
7
|
ターミナルからPythonのREPLを起動して同様のコードを入力するときちんと標準入力を受け付けてくれます。
|
8
8
|
|
9
9
|
なのでPythonコンソール特有の仕様か自分の環境の問題だと思うのですが、何かご存知の方いらっしゃいましたら、ご教授いただけると幸いです。
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
|
10
16
|
|
11
17
|
|
12
18
|
|
@@ -16,13 +22,11 @@
|
|
16
22
|
|
17
23
|
|
18
24
|
|
19
|
-
>>> readline = sys.stdin.buffer.readline
|
25
|
+
>>> readline = sys.stdin.buffer.readline
|
20
26
|
|
21
27
|
#ここまではPythonコンソールで動作確認済み
|
22
28
|
|
23
|
-
#以下input(), readline() どちらの標準入力が受付されません。
|
24
|
-
|
25
|
-
>>> n = in
|
29
|
+
>>> n = readline()
|
26
30
|
|
27
31
|
...
|
28
32
|
|
@@ -34,13 +38,15 @@
|
|
34
38
|
|
35
39
|
#強引にStop consoleでリセットしました。
|
36
40
|
|
41
|
+
```
|
42
|
+
|
43
|
+
###2020/10/15/18:20 修正
|
44
|
+
|
45
|
+
特に何も触っていませんが、なぜかinputとsys.stdin.readlineそのものはPythonコンソールで受け付けるようになりました。自分の環境のせいだったようです。
|
46
|
+
|
47
|
+
ただ、sys.stdin.buffer.readline()は依然として通らないので、どういう仕様なのか分かっていません。
|
37
48
|
|
38
49
|
|
39
|
-
>>> m = readline()
|
40
|
-
|
41
|
-
#input()と同様です。
|
42
|
-
|
43
|
-
```
|
44
50
|
|
45
51
|
|
46
52
|
|