前提・実現したいこと
python3系で、複数行(何行かはわからない)を標準入力から受け取って、それを1行ずつ処理をするプログラムを作りたいです。
そのために、まず、1行を受け取って、それをそのまま出力するプログラムを作りました。
その際に、標準入力に、複数行をコピーしたものを貼り付けると、必ず、最後の行の前に自分で改行を押す必要が現れます。
その理由がわからなくて困っています。
理由をご存知の方、教えていただけないでしょうか?
発生している問題・エラーメッセージ
文章だとわかりにくいのでコードを載せます。
#!/usr/bin/env python import sys while True: l = input() #print("a ",l) if l == "": break else: print(l)
で、入力は以下です。(複数行をコピーしたものをターミナルに貼り付け)
Tellurocysteine Theramine Beta-2-Thienylalanine Thiotaurine Thyronine
実行結果は以下のようになります。
Tellurocysteine Theramine Beta-2-Thienylalanine Thiotaurine ThyronineTellurocysteine Theramine Beta-2-Thienylalanine Thiotaurine
↑ここで(コピペした入力の1行前)一度入力待ちの状態になる。Enterを押すと⬇︎
Tellurocysteine Theramine Beta-2-Thienylalanine Thiotaurine ThyronineTellurocysteine Theramine Beta-2-Thienylalanine Thiotaurine Thyronine
となり、改行の後に、次のThyronine(入力の最終行)が出力される。
目的としては、自分でEnterを押すことなく(そして、謎の改行が入ることもなく)、全ての行を同じように出力して欲しいのですが、何故そうなるのかわかりません。
試したこと
VScodeのターミナルを使っていたので、MacのTerminalも使って、同様のコード、同様の入力で試したのですが、結果は変わりませんでした。
補足情報(FW/ツールのバージョンなど)
環境
VScode Mac Terminal

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/25 21:51 編集
2019/05/25 21:55 編集
2019/05/25 21:58
2019/05/25 22:02
2019/05/25 22:04
2019/05/25 22:13 編集
2019/05/25 22:11 編集
2019/05/25 22:23 編集
2019/05/25 22:27 編集