Python IDLE 3.3.2“预期缩进块”错误

时间:2013-08-07 21:18:46

标签: python python-3.x block python-idle indentation

我的第一个Python代码。

所以,我刚开始编码大约45分钟前,在尝试自己解决这个问题后,我决定寻求帮助。请随意留下一些关于天气的建设性批评我的代码是草率的,不稳定的等等。我比使用Python时更好的Lua。我在IDLE Python GUI中遇到的问题是,当我点击F5在Python Shell中运行它时,它给出了一个错误,说“预期缩进块”,但是没有告诉我在哪里放置缩进块(多个)。我想从一些简单的东西开始,所以我编写了一个工作的“年龄计算器”,这是代码:

# Importing necessary modules #

import time
import math

# Start Application #

print ("The age calculator!")
time.sleep(1)
print ("May I collect some information about you?")
yn = (input("Yes or No: "))

# if-elif Based Decisions #

if yn != Yes or No:
    ynInvalid()

elif yn == No:
    exit()

elif yn == Yes:
    ynYes()

elif yn != Yes or No:
    ynInvalid()

#Defining Functions#

def PrintInfo():
    print ("Hello", name, "Nice to meet you!")

def AgeCheck():
    if age <= 0:
    print("Invalid Age!")
    elif age > 0:
    days = age * 365
    minutes = age * 525948
    seconds = age *  31556926
    print("Doing some math please wait...")
    time.sleep(4)
    print(name,"you been alive for", days,"days", minutes, "minutes and", seconds, "seconds, Wow you're really old!")

def ynYes():

    time.sleep(2)
    print (" Please enter your name below.")
    time.sleep(1)
    name = input("Name: ")
    time.sleep(1)
    PrintInfo()
    age = int(input("Age: "))
    AgeCheck()

def ynYesRetry():

    age = int(input("Age: "))
    AgeCheck()

def ynInvalid():
    print("Invalid Argument! Please try Again!")
    ynYesRetry()

3 个答案:

答案 0 :(得分:0)

IDLE永远不会在没有显示错误发生位置的情况下给您一个错误。如果您发布完整的追溯,人们可以弄清楚它的含义,向您解释,并希望下次自己解释如何自己做。

此外,复制和粘贴实际错误,而不是解释它,使人们更容易调试您的问题。

在这种情况下,从快速浏览中可以看出至少有一个缩进错误:

def AgeCheck():
    if age <= 0:
    print("Invalid Age!")

if语句的主体必须比条件部分缩进。

更一般地说,以:结尾的任何内容后面都会跟一个缩进的块。

您可能还有其他缩进错误;这个甚至可能不是IDLE告诉你的那个。但希望这是足够的信息来自己找到并修复它们。

答案 1 :(得分:0)

if age <= 0:
print("Invalid Age!")
elif age > 0:
days = age * 365

你没有正确缩进。

if age <= 0:
    print("Invalid Age!")
elif age > 0:
    days = age * 365

答案 2 :(得分:0)

AgeCheck应该是:

x.caption = Range("X").value And x.caption = "Kg"

你需要在所有if和elif语句之后缩进。这就是Python知道语句结果中包含的内容的方式。