代码块出现缩进错误?

时间:2017-05-30 22:13:12

标签: python if-statement calculator arcgis arcmap

我试图定义以下功能,但我一直得到:
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代码块的正确方法是什么?

3 个答案:

答案 0 :(得分:4)

在python中你应该使用双等号==来比较两个值:

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

答案 1 :(得分:1)

您的代码存在一些基本问题。如果您粘贴了上面使用的代码,则表示您没有遵循PEP-8标准。

  1. Use 4 spaces per indentation level。在您的第一个缩进中,您使用的是单个空格。
  2. 如果您正在测试变量127.0.0.1的值是1,那么您应该使用from elasticsearch import Elasticsearch, RequestsHttpConnection from requests_aws4auth import AWS4Auth host = 'YOURHOST.us-east-1.es.amazonaws.com' awsauth = AWS4Auth(YOUR_ACCESS_KEY, YOUR_SECRET_KEY, REGION, 'es') es = Elasticsearch( hosts=[{'host': host, 'port': 443}], http_auth=awsauth, use_ssl=True, verify_certs=True, connection_class=RequestsHttpConnection ) print(es.info()) - 单个valueassignment statement
  3. ==

答案 2 :(得分:0)

感谢所有回复的人,因为事实证明我错误的是 - 正如你们所指出的那样 - 用于在我的if中声明逻辑测试的语法。

我使用了==而不是=并按照Larry的建议保留了缩进。

它有效,我节省了很多时间。