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

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

ただいまの
回答率

90.61%

  • Python 3.x

    5886questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

python if文のシンタックスエラーの原因について教えて下さい

受付中

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 149

saru69

score 2

 前提・実現したいこと

pythonを独学で学習中です。

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

if_elif_else文を実行すると以下のエラーが発生してしまいます。

エラーメッセージ
SyntaxError: unexpected EOF while parsing
SyntaxError: invalid syntax

### 該当のソースコード
from random import randint
point=randint(0,100)
if point >= 80 :
  File "<ipython-input-14-99f4d0b23aad>", line 1
    if point >= 80 :
                    ^
SyntaxError: unexpected EOF while parsing

result = 'Aクラス'
elif point >= 60 :
  File "<ipython-input-16-296b6e606908>", line 1
    elif point >= 60 :
       ^
SyntaxError: invalid syntax

result = 'Bクラス'
elif point >= 30 :
  File "<ipython-input-18-b1f53bb830b5>", line 1
    elif point >= 30 :
       ^
SyntaxError: invalid syntax

result = 'Cクラス'
else:
  File "<ipython-input-20-64c43b55f0b0>", line 1
    else:
       ^
SyntaxError: invalid syntax

result = '不合格'
print(f"{point}点:{result}")
39点:不合格

ここに言語名を入力
python
ソースコード
```ここに言語を入力
コード
from random import randint
point=randint(0,100)

if point >= 80 :
result = 'Aクラス'
elif point >= 60 :
result = 'Bクラス'
elif point >= 30 :
result = 'Cクラス'
else:
result = '不合格'
print(f"{point}点:{result}")

 試したこと

コードの書き間違いは何度もチェックし、インタプリタでも試しましたが同様のエラーが
発生し正しく実行できません。
ここに問題に対して試したことを記載してください。

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

ここにより詳細な情報を記載してください。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • quiqui

    2018/06/19 08:48

    "インタプリタでも試しましたが"とありますが最初はどう実行してたんでしょう? あと、一応OSも書いてもらえると助けになるかも。

    キャンセル

  • saru69

    2018/06/19 09:03

    大変失礼しました。spyderで書いたのでインデントは自動で入っていた様ですが、再度編集し投稿します。今回OSはMacですがWIN10でも同様でした。

    キャンセル

  • quiqui

    2018/06/19 14:52

    具体的な操作はどうなんでしょう。コピー&ペーストで貼り付けているのか、手で打っているのか、それ以外なのか。if point >= 80: を手で打った後にShift-Enterを押していたりしますか? これで通算3回目の依頼になりますが、ちゃんとインデントが分かるように質問を修正しましょう。

    キャンセル

回答 2

+1

下記コードをインタプリタに貼り付けてエラー出ているという前提で話します。
違っていたら教えて下さい。

from random import randint
point=randint(0,100)

if point >= 80 :
result = 'Aクラス'
elif point >= 60 :
result = 'Bクラス'
elif point >= 30 :
result = 'Cクラス'
else:
result = '不合格'
print(f"{point}点:{result}")

赤ペン先生じゃないですがおかしい部分を赤丸で囲ってみました。
イメージ説明
すべて変数resultの前についてですがpythonはインデントをブロックとして認識するので
インデントをそれぞれに付けてあげないとブロックとして認識できません。

ただしくはこうなります。

from random import randint

point = randint(0, 100)

if point >= 80:
    result = 'Aクラス'
elif point >= 60:
    result = 'Bクラス'
elif point >= 30:
    result = 'Cクラス'
else:
    result = '不合格'
print(f"{point}点:{result}")


最後にprint文で使われているfstringsという機能、ご存知かもしれませんがこれってPython3.6からの機能なので質問文にPython3.6xで動作確認しましたと書いていただかないと回答者は困っちゃいますよ。

Python3.6 から追加された文法機能
python whatsnew 3.6

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

見当違い及び、実施済みでしたら申し訳ありません。
本質問に記載されているコードにはインデントが不十分なように見受けられます。
pythonはオフサイドルールでコーディングしていくことにより構文が理解されますので、インデントを正しくつけて実行して見てはいかがでしょうか。
オフサイドルールWikipedia

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    Pytohn(3.5.1)の初歩的な構文エラーについて

    現在、「入門 Python 3」でPythonの勉強を始めたばかりなのですが、 P16「1.7.2 Pythonファイルの使い方」に記載されている手順を実行したのですが、正常な動

  • 解決済

    ターミナルでisが利用できない

    前提・実現したいこと ここに質問したいことを詳細に書いてください (例)pythonでターミナルを使用し、isを記入 発生している問題・エラーメッセージ command

  • 解決済

    超基本的なことPython Commdがエラーになるのはなぜか?

    こんにちは!今復習を兼ねてマイナビでpyてょんお復習をしています。そこで教えていただきたい超基本的なことです。 Python Commdを使って簡単なプログラムを書いていると

  • 解決済

    検証データの分離時のエラー

    前提・実現したいこと ここに質問したいことを詳細に書いてください 「ゼロから作る Deep Learning」という本で勉強中です 本書、第6章の該当部分において次のようなエラーが

  • 解決済

    python [elif エラーになる文について]

    すいません。pyhton勉強中です。 #coding:utf-8 if (a % 12 == 0): #12の倍数のとき print("〇") elif (

  • 解決済

    python ¥ を使用したらエラーが出ました。

    「はじめてのPythonAIプログラミング」という書籍で取り組んでいる際に以下のエラーメッセージが発生しました。  発生している問題・エラーメッセージ invalid char

  • 解決済

    教科書通りにハングマンのコードを書いてもエラーになります

    「独学プログラマー」P.138に書いてある通りにハングマンのコードを書いているつもりなのですが、エラーが出てしまいます 以下のコードの30行目のコロンが問題らしいのですが…

  • 解決済

    python超初心者です、

     前提・実現したいこと はじめまして、現在pythonを独学で学んでいます。現在「いちばんやさしいpythonの教本」を勉強しているのですが、本と同じようにテキストに入力し、実行し

同じタグがついた質問を見る

  • Python 3.x

    5886questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。