🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python

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

Q&A

解決済

4回答

2073閲覧

pythonで単純文が出力されない VSCODE

ryuuabis

総合スコア24

Python

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

0グッド

0クリップ

投稿2020/12/28 22:56

前提・実現したいこと

pythonで単純文の結果が出力されません。
1 + 1
実行環境はvscodeです。

■■な機能を実装中に以下のエラーメッセージが発生しました。

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

エラーも実行結果も表示されません。

### 該当のソースコード 1 + 1 ```ここに言語名を入力 python3 ### 試したこと anacondaインストール済です。 print("Hello World")などは結果が出力されます。 vscordでは単純文ができないのでしょうか? ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答4

0

「式文評価したらその結果を(それがNoneでない時)表示する」という振る舞いは

  • python を実行ファイルや実行コードを指定せずに起動した時
  • jupyter
  • ptpython
  • bpython

などのようなプログラムの側に実装されている機能です。
逆に、そのような機能を持ったものを対話環境と呼ぶわけですが。

VSCodeに入力したコードをRun-Start DebuggingやTerminal-Run Active Fileなどで実行した場合、それは対話環境ではないモードで実行されています。
そちらの方が普通で、対話環境の方が本来出力されない情報を出力してくれる特殊な実行方法なのです。


普通にコードを実行した時に式文の結果が全部標準出力に書き出されたら、出力がぐちゃぐちゃになるのは明らかです。
例えば、listの末尾の要素を削除する目的でsome_list.pop()を実行した時に、"末尾の要素がいちいちprintされた"としたらその出力はいったいどうなると思います?

投稿2020/12/29 00:31

quickquip

総合スコア11231

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

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

ryuuabis

2020/12/29 00:37

確かに言われてみたらそうですよね。 その考えがありませんでした。ありがとうございました。
guest

0

pythonはターミナルでインタプリタモードで動かしたときと、ファイルを読み込んで実行するときで動作が違います。
たとえば、以下のコードです。

python

1a = 1 + 1 2print("start") 3a 4print("-------") 5print(a) 6print("end")

インタプリタモードでは以下になります。

python

1teratail> python filemode.py 2>>> a = 1 + 1 3>>> print("start") 4start 5>>> a 62 7>>> print("-------") 8------- 9>>> print(a) 102 11>>> print("end") 12end

ファイル実行モードでは以下になります。

python

1teratail> python filemode.py 2start 3------- 42 5end

どちらもやることは同じなのですが、インタプリタモードでは3行目の実行結果を印字するのに対して、ファイル実行モードでは印字しないのです。
VScodeでファイルに保存して実行しているので、後者の動きをしています。

投稿2020/12/28 23:51

ppaul

総合スコア24670

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

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

ryuuabis

2020/12/29 00:26

vscodeでインタプリタをbase condaに変更など試したのですが、そもそもvscodeではファイル実行モードでしか動作しないのでprint関数など使わないといけないという理解で大丈夫でしょうか?
guest

0

ベストアンサー

print("Hello World")
はプログラムとして正しく構成されているので期待した動作をします。
「"Hello world"という文字列を標準出力に出力せよ」と書いているので。
対して、単なる
1+1は足してどうするか書いていないので何も出力されません。
出力したいのであれば、同様に
print(1+1)
と書く必要があります。

pythonの実行方式は2通りあって、1つは先に回答された方のような、インタプリタ方式。
これは、何も指定しなくても逐一結果を返してくれます。
なので、printを命令しなくても出力が得られます。

対して、ファイルに一連の手順(プログラム)を記述しそれを実行する方式だと、命令した事しか行われません。
質問者さんが現在行おうとしているのは後者になりますので、やって欲しい事を全て指定する必要があるという事です。

投稿2020/12/28 23:43

udon-ken

総合スコア657

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

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

ryuuabis

2020/12/29 00:27

vscodeの設定でどうにかなるものではないというとですね。 ありがとうございます!
guest

0

Python 3.7.9 (tags/v3.7.9:13c94747c7, Aug 17 2020, 16:30:00) [MSC v.1900 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> 1+1 2 >>>

pythonのプロンプト上からの結果です。
あなたはそれをどうやって実行したんでしょうか

投稿2020/12/28 23:06

y_waiwai

総合スコア88038

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

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

ryuuabis

2020/12/28 23:18

返信ありがとうございます。 VScode拡張子.pyファイルにて、1 + 1 とコードを書き保存し、ターミナルでpythonファイルを実行をしました。特にエラーも何も出ず自分のユーザー名などくらいしか出ません。 何か拡張機能が必要なのでしょうか?
ryuuabis

2020/12/28 23:19

ターミナルはVScode内のものです。
ryuuabis

2020/12/28 23:35

mac自体のターミナルでpython実行した場合は1 + 1で2が出力されます。 またvscodeにて x = 1 y = 1 print(x + y) の場合も2が出力されて大丈夫です。 vscode内では単純文ができないのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問