[解決済み] sys.stdin.readline() はプロンプトなしで読み、「間に何もない」を返します。
2022-02-15 18:04:09
質問
以下を実行する関数があるのですが、(中略)。
userinput = stdin.readline()
betAmount = int(userinput)
標準入力から文字列として整数を受け取り、それを整数に変換することになっています。
しかし、この関数を呼び出すと、1つの改行文字が返されます(私が何かを入力するのを待つことさえしません)。
プログラムの最初のほうで、私は次のような形で入力を得ました。
stdin.read(1)
で1文字をキャプチャします。
これは何か関係があるのでしょうか?私は何らかの方法で、stdinの次の行に改行文字を書き込んでいるのでしょうか?
どうすれば直るのでしょうか?
解決方法は?
stdin.read(1)
から1文字読み取る。
stdin
. その時点で読み込むべき文字が複数あった場合 (たとえば、読み込んだ 1 文字の後に改行があった場合)、その文字または文字はまだバッファの中に残っていて、次の
read()
または
readline()
.
例として
rd.py
:
from sys import stdin
x = stdin.read(1)
userinput = stdin.readline()
betAmount = int(userinput)
print ("x=",x)
print ("userinput=",userinput)
print ("betAmount=",betAmount)
... このスクリプトを次のように実行すると (私が入力したのは
234
):
C:\>python rd.py
234
x= 2
userinput= 34
betAmount= 34
...だから
2
が最初にピックアップされ
34
と末尾の改行文字を拾うために
readline()
.
この問題を解決するには
readline()
ではなく
read()
を、ほとんどの状況で使用することができます。
関連
-
ピローによる動的キャプチャ認識のためのPythonサンプルコード
-
PythonはWordの読み書きの変更操作を実装している
-
Python 可視化 big_screen ライブラリ サンプル 詳細
-
Python入門 openを使ったファイルの読み書きの方法
-
FacebookオープンソースワンストップサービスpythonのタイミングツールKats詳細
-
[解決済み】ilocが「IndexError: single positional indexer is out-of-bounds」を出す。
-
[解決済み】pygame.error: ビデオシステムが初期化されていない
-
[解決済み】"No JSON object could be decoded "よりも良いエラーメッセージを表示する。
-
[解決済み] 0から9までのランダムな整数を生成する
-
[解決済み] リストにおけるdel、remove、popの違いについて
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ピロウズ画像色処理の具体的な活用方法
-
Pythonコンテナのための組み込み汎用関数操作
-
python string splicing.join()とsplitting.split()の説明
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
[解決済み】TypeError: unhashable type: 'numpy.ndarray'.
-
[解決済み】お使いのCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
-
[解決済み】ImportError: PILという名前のモジュールがない
-
[解決済み】 AttributeError: モジュール 'matplotlib' には属性 'plot' がない。
-
[解決済み】Python: SyntaxError: キーワードは式になり得ない
-
[解決済み】 'numpy.float64' オブジェクトは反復可能ではない