简单的打印语句在 python 中使用 if 语句的方法内部不起作用

新手上路,请多包涵

我最近开始学习 Python 代码,一个简单的打印语句自过去 4 天以来一直给我带来麻烦。

问题: 打印语句在 validatePostcode(postcode) if 语句的方法中不起作用。分配的值为 200(状态代码),无需 if 语句即可正常打印。此外,当我与该 API 的 True(结果值)进行比较时,它在没有 if 语句的情况下工作正常,为什么在我应用 if 并尝试比较后它不起作用?

错误:

   File "./py_script3.py", line 32
    print ("Congrats")
        ^
IndentationError: expected an indented block


     #!/usr/bin/env python3

    import os,re,sys

    import urllib.request as req
    import json

    def loadJsonResponse(url):
        #return json.loads(req.urlopen(url).read().decode('utf-8'))['result']
        #return json.loads(req.urlopen(url).read().decode('utf-8'))['status']
        print ("I am in loadJsonResponse before returning string")
        string = json.loads(req.urlopen(url).read().decode('utf-8'))
        return string
        print ("I am in loadJsonResponse after returning string")

    def lookuppostcode(postcode):
        url = 'https://api.postcodes.io/postcodes/{}'.format(postcode)
        return loadJsonResponse(url)

    def validatePostcode(postcode):
        url = 'https://api.postcodes.io/postcodes/{}/validate'.format(postcode)
        #return loadJsonResponse(url)
        string = json.loads(req.urlopen(url).read().decode('utf-8'))
        Value = str(string['status'])
        print (Value)
        if Value == 200 :
        print ("Congrats")

    def randomPostcode():
        url = 'https://api.postcodes.io/random/postcodes'
        return loadJsonResponse(url)

    def queryPostcode(postcode):
        url = 'https://api.postcodes.io/postcodes?q={}'.format(postcode)
        return loadJsonResponse(url)

    def getAutoCompletePostcode(postcode):
        url = 'https://api.postcodes.io/postcodes/{}/autocomplete'.format(postcode)
        return loadJsonResponse(url)

    #Input = input("Enter the postcode : ")
    #print(lookuppostcode('CB3 0FA'))
    validatePostcode('CB3 0FA')
    #print(queryPostcode('HU88BT'))
    #print(randomPostcode(Input))

原文由 garg_hbti 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 397
2 个回答

这段代码(产生错误):

 if Value == 200 :
print ("Congrats")

应该

if Value == 200 :
    print ("Congrats")

因为 python 期望在条件之后有一个缩进块,就像消息错误对你说的一样

原文由 Hemerson Tacon 发布,翻译遵循 CC BY-SA 4.0 许可协议

您应该像这样缩进打印语句:

 if Value == 200 :
   print ("Congrats")

您可以 在此处 阅读更多相关信息!

原文由 Jaye Hernandez 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题