コメント内のPythonの無効な構文

dioretsa

IDLE Python3.4.3の使用。これは、ユーザーに小さなクイズを出して、正解した数を計算するスクリプトです。スクリプトを実行する前に、コメントに無効な構文エラーがあります。これがコメントの周りのコード全体です。特定のコメントは次の行の下にありますscore = decimal.Decimal(score)

score = amountright/7*100 """this takes the amount of questions the user got right, divides it by 7 (the total number of questions), then multiplies it by 100 to get a percentage correct and stores it in the variable score"""
import decimal """this will import a function to round off the final percentage to a whole number instead of an unnecessarily long decimal"""
score = decimal.Decimal(score)
"""this redefines the score variable as some sort of roundable decimal. the round() function in the line below will still function without this line, but it would print an unneeded .0 before the %"""
print ("You got " + str(amountright) + " out of 7 right, or " + str(round(score,0)) + "%.")
"""the round() function works by rounding the first argument to n places in the second argument"""

これを実行すると、無効な構文エラーが発生し、scoreの単語でsとcが強調表示されます。'を使用しても、これに違いはありません。ただし、次のようなコードを実行すると、次のようになります。

"""
This redefines the score variable as some sort of roundable decimal. the round() function in the line
below will still function without this line, but it would print an unneeded .0 before the %
"""

それでも構文エラーが発生しますが、今回はsをscore赤で強調表示するだけです。unutbuのリクエストにより追加されたrepr:

print ("Here is a quiz!\n") #starting prompt

useranswer = input("Question 1: What is 4+|6x1|? ")
#this is where the user enters their answer to the question

#the following 2 variables on lines 7 and 9 only need to be defined once
rightanswerresult = "Correct! Next question:\n" #tells the user they are correct
invalidanswerresult = "This is not a number. This is counted as a wrong answer.\n"
"""if the user does not answer with a number, this string will print telling them so and the question will
be counted wrong"""

amountright = 0 #this number increases every time the user answers a question correctly

if useranswer.isdigit(): #if the user's answer is a number, the code below runs
    if useranswer == "10":
    #this checks if the user's answer and the correct answer are the same, then runs the code below if they are"""
        print (rightanswerresult) #this prints the variable rightanswerresult described on line 7
        amountright += 1 #this will add the value one to the variable amountright described on line 13
    else: #if the user's answer and the correct answer are not the same, the code below runs
        print ("Wrong, it was 10. Next question:\n") #tells the user they were wrong
else: #if the user's answer is NOT a number, this runs
    print (invalidanswerresult) #this prints the varible invalidanswerresult described in line 9
#this pattern is repeated 5 more times. an altered process is used for the True/False question (#7)
useranswer = input("Question 2: What is (15/3) x 12? ")
if useranswer.isdigit():
    if useranswer == "60":
        print (rightanswerresult)
        amountright += 1
    else:
        print ("Wrong, it was 60. Next question:\n")
else:
    print (invalidanswerresult)

useranswer = input("Question 3: What is 20+24/12? ")
if useranswer.isdigit():
    if useranswer == "22":
        print (rightanswerresult)
        amountright += 1
    else:
        print ("Wrong, it was 22. Next question:\n")
else:
    print (invalidanswerresult)

useranswer = input("Question 4: Solve for x: 2x-1=5 ")
if useranswer.isdigit():
    if useranswer == "3":
        print (rightanswerresult)
        amountright += 1
    else:
        print ("Wrong, it was 3. Next question:\n")
else:
    print (invalidanswerresult)

useranswer = input("Question 5: What is the square root of 256? ")
if useranswer.isdigit():
    if useranswer == "16":
        print (rightanswerresult)
        amountright += 1
    else:
        print ("Wrong, it was 16. Next question:\n")
else:
    print (invalidanswerresult)

useranswer = input("Question 6: What is 7x7+7/7-7? ")
if useranswer.isdigit():
    if useranswer == "1":
        print (rightanswerresult)
        amountright += 1
    else:
        print ("Wrong, it was 1. Next question:\n")
else:
    print (invalidanswerresult)
#the question below appears different because it is True/False and the last question
useranswer = input("Question 7: True or False: |3|=98/2 ").lower() #as before, the user is asked a question
if useranswer == "false": #checks if user's answer is false, and runs code below if it is
    print ("You're right! Your results are below:\n") #this tells the user they are correct then shows them their final score
    amountright += 1 #as before, this will add the value one to the variable amountright described on line 8
if useranswer == "true": #checks if user's answer is true, and runs code below if it is
    print ("Actually, its false. Your results are below:\n") #this tells the user they are wrong then shows them their final score
elif useranswer != "false" and useranswer != "true": #if the user's answer is not true or false, this code runs
    print ("It seem you didn't enter true or false. Maybe you made a spelling error? Anyways, your results are below:\n")
    """tells user their answer is invalid then shows final score"""
#all questions have been completed. below is the final score calculation
score = amountright/7*100 """this takes the amount of questions the user got right, divides it by 7
(the total number of questions), then multiplies it by 100 to get a percentage correct and stores
it in the variable score"""
import decimal """this will import a function to round off the final percentage to a whole number
instead of an unnecessarily long decimal"""
score = decimal.Decimal(score)
"""this redefines the score variable as some sort of roundable decimal. the round() function in the line
below will still function without this line, but it would print an unneeded .0 before the %"""
print ("You got " + str(amountright) + " out of 7 right, or " + str(round(score,0)) + "%.")
"""the round() function works by rounding the first argument to n places in the second argument"""

コメントに誤りはありますか?

忘れてください

#コメントの開始を示すために使用されます三重引用符は、複数行の文字列の開始と終了を示すために使用されます文字列はコメントではありませんが、複数行の文字列を複数行のコメントとして使用できる場合があります

ただし、文字列の配置は、Pythonの構文規則に従う必要があります

score = amountright/7*100 """this takes the amount..."""

文字列が文字列ではない式の後に続くため、SyntaxErrorが発生します。amountright/7*100 """this takes the amount..."""とほぼ同等です

>>> 1 "foo"
SyntaxError: invalid syntax

Pythonは、数字の後に文字列が続くことを評価する方法を知りません。評価できたとしても、値はに割り当てられscoreます。複数行の文字列はコメントとして解釈されません。複数行の文字列がコメントとして機能するには、それ自体が1行にある必要があります。

score = amountright/7*100 
"""this takes the amount of questions the user got right, divides it by 7
(the total number of questions), then multiplies it by 100 to get a percentage correct and stores it in the variable score"""

import decimal 
"""this will import a function to round off the final percentage to a whole number
instead of an unnecessarily long decimal"""

または、より一般的に使用されるコメント構文を使用します。

score = amountright/7*100 
# this takes the amount of questions the user got right, divides it by 7 (the
# total number of questions), then multiplies it by 100 to get a percentage
# correct and stores it in the variable score

#すべての行の前にを置くの面倒に思えるかもしれませんが、Pythonでプログラミングするための優れたテキストエディタには、テキストの領域を選択し、ボタンまたはキーの組み合わせを押して#記号を挿入する方法が必要です。エディターにこの機能がない場合は、ある機能を見つけてください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Pythonのprintステートメント「構文エラー:無効な構文」

分類Dev

Pythonのprintステートメント「構文エラー:無効な構文」

分類Dev

If ステートメントのコロンが無効な構文エラー

分類Dev

SyntaxError:PythonインポートJWTの無効な構文

分類Dev

Pythonの無効な構文:PrintステートメントとElifステートメント

分類Dev

複数のifステートメントの後の無効な構文

分類Dev

Python'else 'ステートメント-無効な構文

分類Dev

文字列のPythonの無効な構文?

分類Dev

APIドキュメントの無効なオブジェクト構文

分類Dev

Python:Elseステートメントの構文が無効です

分類Dev

Pythonの三項無効な構文

分類Dev

Pythonの無効な出力:SyntaxError:Pythonの無効な構文

分類Dev

PythonConfigParserの無効な構文

分類Dev

Pythonの奇妙な構文エラー:無効な構文

分類Dev

無効な構文python(ベクトルの定義)

分類Dev

Pythonイントロ、ifステートメント。無効な構文

分類Dev

Setuptoolsのインストール中に「SyntaxError:無効な構文」

分類Dev

トークン "<"の構文エラー、無効なAssignementOperato

分類Dev

Python-有効なステートメントの構文エラー

分類Dev

ifステートメントが無効な構文であるのはなぜですか?

分類Dev

PythonのTic-tac-toeコンピューター、無効な構文の問題

分類Dev

トークン "super" の構文エラー、無効な Name 、super.ToString() コンパイラ エラー

分類Dev

無効なPDOMySQLステートメント-構文エラー

分類Dev

IfステートメントSyntaxError:無効な構文?

分類Dev

無効な構文ifステートメント

分類Dev

Python3.6でcaffeをインポートするときのrrule.pyの無効な構文エラー

分類Dev

無効なPythonコロンエラー構文

分類Dev

Pythonコードのコメントとdocstringの基本構文

分類Dev

リスト内包表記における Python 3 の無効な構文

Related 関連記事

  1. 1

    Pythonのprintステートメント「構文エラー:無効な構文」

  2. 2

    Pythonのprintステートメント「構文エラー:無効な構文」

  3. 3

    If ステートメントのコロンが無効な構文エラー

  4. 4

    SyntaxError:PythonインポートJWTの無効な構文

  5. 5

    Pythonの無効な構文:PrintステートメントとElifステートメント

  6. 6

    複数のifステートメントの後の無効な構文

  7. 7

    Python'else 'ステートメント-無効な構文

  8. 8

    文字列のPythonの無効な構文?

  9. 9

    APIドキュメントの無効なオブジェクト構文

  10. 10

    Python:Elseステートメントの構文が無効です

  11. 11

    Pythonの三項無効な構文

  12. 12

    Pythonの無効な出力:SyntaxError:Pythonの無効な構文

  13. 13

    PythonConfigParserの無効な構文

  14. 14

    Pythonの奇妙な構文エラー:無効な構文

  15. 15

    無効な構文python(ベクトルの定義)

  16. 16

    Pythonイントロ、ifステートメント。無効な構文

  17. 17

    Setuptoolsのインストール中に「SyntaxError:無効な構文」

  18. 18

    トークン "<"の構文エラー、無効なAssignementOperato

  19. 19

    Python-有効なステートメントの構文エラー

  20. 20

    ifステートメントが無効な構文であるのはなぜですか?

  21. 21

    PythonのTic-tac-toeコンピューター、無効な構文の問題

  22. 22

    トークン "super" の構文エラー、無効な Name 、super.ToString() コンパイラ エラー

  23. 23

    無効なPDOMySQLステートメント-構文エラー

  24. 24

    IfステートメントSyntaxError:無効な構文?

  25. 25

    無効な構文ifステートメント

  26. 26

    Python3.6でcaffeをインポートするときのrrule.pyの無効な構文エラー

  27. 27

    無効なPythonコロンエラー構文

  28. 28

    Pythonコードのコメントとdocstringの基本構文

  29. 29

    リスト内包表記における Python 3 の無効な構文

ホットタグ

アーカイブ