2017-05-30 18 views
0

私は以下の機能を定義しようとしましたが、私は次のことを続けています:
error 000989 : Python syntax error: <value>コードブロックのインデントエラー?

明らかに私のコードには不適切な構文があります。私は、次のことを試してみた:

def yieldCalc(value): 
if (value=1): 
    return 6.2 
    elif (value=2): 
    return 7.9 
    else: 
    return 8.21 

また

def yieldCalc(value): 
if (value=1): 
    return 6.2 
    elif (value=2): 
    return 7.9 
else: 
    return 8.21 

そして

def yieldCalc(value): 
if (value=1): 
    return 6.2 
elif (value=2): 
    return 7.9 
else: 
    return 8.21 

Pythonコードブロックをインデントする適切な方法は何ですか?

答えて

4

pythonで次の2つの値を比較するダブル等号==を使用する必要があります。

def yieldCalc(value): 
    if value == 1: 
     return 6.2 
    elif value == 2: 
     return 7.9 
    else: 
     return 8.21 

をインデントとの比較の詳細については、Pythonのドキュメントから、次のリンクをご覧ください。

Style Guide - Indentation

Built-in types - Comparison

+2

この回答に適切なインデントについてのコメントを追加する必要があります。 –

+0

ありがとう、私は公式のドキュメントへのリンクを追加しました。 –

1

いくつかの根本的な問題がありますあなたのコードで。上記のコードを貼り付けた場合は、PEP-8標準に準拠していません。

  1. Use 4 spaces per indentation level。あなたの最初のインデントでは、単一のスペースを使用しています。
  2. 変数valueの値が1であることをテストする場合は、==を使用する必要があります。=assignment statementです。あなたのすべてが指摘したように - - 私の場合に論理テストを宣言するために使用される構文を、それは私が間違っていた何であったかが判明したとして、応答したすべての人へ
def yieldCalc(value): 
    if value == 1: 
     return 6.2 
    elif value == 2: 
     return 7.9 
    else: 
     return 8.21 
+1

followinh pep8ではなく、実際にはエラーにつながる問題ではありません。一貫性のないインデントは、エラーにつながります。 –

0

感謝。

=の代わりに==を使用し、Larryの示唆に従ってインデントを保持しました。

それは機能し、私は多くの時間を節約しました。

関連する問題