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

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

新規登録して質問してみよう
ただいま回答率
85.34%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Python

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

Q&A

解決済

2回答

466閲覧

VSCodeでPythonのif文が実行できない

donban

総合スコア1

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Python

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

0グッド

1クリップ

投稿2024/12/10 02:44

初心者です。
VSCodeを利用してPythonの実行環境をつくろうと思っているのですが、
if文を実行しようとするとelseやelifの前に余計なインデントが入り、
SyntaxError: invalid syntaxとなってしまいます。

WEB上で類似の質問を探したり、再インストールを試したりしたのですが、
どうにも解決することができません。
解決方法をご存知の方、恐れ入りますがご教示いただけないでしょうか?

■環境
・Windows11
・Python 3.13.1(64-bit)
・VSCode 1.95.3

■エディタ上の入力

age = 70 if age < 12 : status = "c" else : status = "a" status

■ターミナル上の表示

>>> age = 70 >>> if age < 12 : ... status = "c" ... else : ... status = "a" ... File "<python-input-1>", line 3 else : ^^^^ SyntaxError: invalid syntax

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

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

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

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

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

TakaiY

2024/12/10 05:41 編集

> ターミナル上の表示 > if文を実行しようとする ターミナルにどのようにコードを入れていますか? 通常 python のプログラムを実行するときに、エディタで書いたコードをpythonのプロンプトに入れて動かすということはしないのですが、どうしてそのようなことをしていますか?
donban

2024/12/10 07:56

ご回答ありがとうございます。 なにぶん初めて触っているもので、、取り急ぎ基本的な構文を入れてみたらエラーがずっと出てしまっているという状況なのですが、エディタで書いたコードを入れるということはしないのですね。。
guest

回答2

0

ベストアンサー

実行の仕方を間違っています。
ターミナルで、"python.exe"の絶対パス" "実行したいpyファイルの絶対パス"と入力して実行します。
例:"K:\Python\python.exe" "X:\20241210\test100.py"
(「カレントディレクトリー」「相対パス」「環境変数PATH」をきちんと理解してれば絶対パスでなくても良いですが)

あるいは、「拡張子関連付け」の概念をきちんと理解していて、その設定がちゃんとされていれば、「ターミナル」メニューの「アクティブなファイルの実行」でもいいです。

おそらくは、pyファイル名を指定せずに単にpython.exeコマンドだけを実行した対話型画面にファイル内容をまるごとインデントも含めコピペしてしまったのでしょう。それは間違っています。

また、お書きのプログラムは何も出力していないので、実行しても何も表示されません。
対話型環境でプログラムを1行ずつ入力している場合は、statusとだけ入力すればその値を表示してくれますが、ファイルの実行の場合は、最終行はprint(status)と、値を出力するようにします。
これも、「対話型環境で対話型に実行する」と「ファイルに書いたプログラムを実行する」の区別が付いていない事による間違いかと思います。

実行の仕方が全く違うので、自分のやりたいのはどちらの方法かを決めた上で、それに合ったやり方で実行します。

投稿2024/12/10 06:13

編集2024/12/10 07:09
otn

総合スコア85989

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

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

donban

2024/12/10 07:50 編集

ご回答ありがとうございます。 おっしゃる通り、プログラムの実行であればエラーが出ずに結果を出力することができました! VSCodeのエディタで入力して部分的に実行するのが対話型だと思っていたのですが、ここらへんにちょっと勘違いがありそうですかね。再度基本から調べなおしてみます。
TakaiY

2024/12/10 08:27

横からすみません。 「調べる」とあるのは多分Webで調べるということだと思いますが、お勧めしません。 Webの情報はこま切れですし古かったり間違えていたりするものが多く含まれています。そこから有用なものを選ぶのは初心者にはハードルが高すぎます。 まずは、入門/初心者向けの書籍を一冊やり通してみましょう。 選ぶにあたっては、できるだけ最近出版されたもので、自分の環境(OSやエディタ)と同じものを選びましょう。
otn

2024/12/10 12:10

> まずは、入門/初心者向けの書籍を一冊やり通してみましょう。 そうですね。 基本を知らない人(ウェブ上の情報が正しいかどうか判断できない人)が、検索して正しい情報に行き着くのは非常に困難でしょう。 Python言語自体のことであれば、むやみに検索するのでなく、公式サイトのチュートリアル、それが全部理解できたら、次は公式リファレンスで良いと思いますが、 https://docs.python.org/ja/3/tutorial/ 「そもそも、プログラムを実行するというのはどういうことか」レベルのことまではあまり書いてない。 なので、 > VSCodeのエディタで入力して部分的に実行するのが対話型だと思っていたのですが、ここらへんにちょっと勘違いがありそうですかね。 あたりは、チュートリアルでなく、入門書ですかね。 Pythonを対話型で使うのは、「作り上げたプログラムを実行する」場合ではなくて、試行錯誤しながらプログラムを作り上げる過程での参考としてですかね。 ・この関数はリファレンスを読む限りこの使い方で良いはずだが、理解があってるのか念のために確認してみよう ・この正規表現で意図通りマッチするだろうか?正規表現をすこしずつ変更しながらやってみよう など。 あるいは、プログラム開発とは無関係に、「電卓代わり」か。
guest

0

status = "c"

の後ろにタブや全角スペース、改行コードなどの何か入ってるような気がします。

投稿2024/12/10 02:49

編集2024/12/10 02:50
AbeTakashi

総合スコア4868

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

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

donban

2024/12/10 03:16 編集

お忙しいところご回答ありがとうございます。 if age < 12 : [Tab] status = "c" else : [Tab] status = "a" このように記載するとエラーが生じないため改行コードの問題かと思うのですが、 エディタ上:で改行したい場合は、どのような操作をすればエラーにならないのでしょうか、、 初心者質問で恐縮です。
donban

2024/12/10 07:52 編集

ご回答と参考URLありがとうございます。 色々調べてError Lensやcode-eolを入れ、インデントのことは基本を理解しているつもりですが・・・ 対話型環境で実行するということにちょっと勘違いがありそうなので再度調べてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.34%

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

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

質問する

関連した質問