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

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

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

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

Python

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

Q&A

解決済

1回答

17467閲覧

VS Codeで標準入力を受け取る方法(Windows10・Python)

horusutain

総合スコア6

標準入力

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

Python

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

0グッド

0クリップ

投稿2020/04/05 15:39

前提・実現したいこと

プログラミング初心者です。

VS Codeでのデバッグ時に、標準入力を使用したいのですが、
方法がわからず困っております。
(競技プログラミングのデバッグ時に使用したい。)

もしわかる方がいれば、教えていただけると幸いです。

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

標準入力が使用できない。

launch.jsonの中身

json

1 // IntelliSense を使用して利用可能な属性を学べます。 2 // 既存の属性の説明をホバーして表示します。 3 // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387 4 "version": "0.2.0", 5 "configurations": [ 6 7 8 { 9 "name": "Python: Current File", 10 "type": "python", 11 "request": "launch", 12 "program": "${file}", 13 "console": "integratedTerminal", 14 "stopOnEntry": true 15 } 16 ] 17}

試したこと

調べると、以下の方法が簡単そうだったのですが、
肝心の「Python Terminal(external)」が表示されません。

<方法>

  1. 左ペインのデバッグアイコンを押す。
  2. 一番上のプルダウンから「Python Terminal(external)」を選択する。

「Add configuration」から追加できるようなのですが、
「Add configuration」を押しても「Python Terminal(external)」が
リストにありません。

設定ファイル「launch.json」の中身は上記の通りです。

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

環境は以下の通りです。
OS: Windows10 Home 1909
VS Code:バージョン: 1.43.2 (user setup)

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

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

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

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

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

guest

回答1

0

ベストアンサー

直接的な回答では有りませんが、

競技プログラミング用途ということで、実際に入力したいのではなく、
入力を想定したデバッグ目的だけなら sys.stdin を使う方法もあります。

_INPUT = """\ 4 1 2 3 4 """ def solver(num): return num def main(*, int=int, input=input): n = int(input()) for _ in range(n): m = int(input()) print(solver(m)) if __name__ == "__main__": import io, sys sys.stdin = io.StringIO(_INPUT) main()

追記 VSCodeの設定について

Python debug configurations in Visual Studio Code より

Add configuration リストからは" python" を選択。
これは設定のテンプレートが挿入されるだけのようです。
以下のように編集

json

1{ 2 "name": "Python: Current File (Integrated Terminal)", 3 "type": "python", 4 "request": "launch", 5 "program": "${file}", 6 "console": "integratedTerminal" 7}, 8{ 9 "name": "Python: Current File (External Terminal)", 10 "type": "python", 11 "request": "launch", 12 "program": "${file}", 13 "console": "externalTerminal" 14}

イメージ説明

投稿2020/04/05 16:26

編集2020/04/05 22:59
teamikl

総合スコア8681

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

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

horusutain

2020/04/05 22:36

teamiklさん 早急なご回答ありがとうございました。 また、追記の方もありがとうございます。 sys.stdinを使用すればどのような環境でもinput()が使用できるので、 sysライブラリとioライブラリの詳細を調べつつ、こちらの方法を使用させていただきます。 初歩的な質問にも丁寧に回答いただき、ありがとうございました。 助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問