如何调试我的Python程序无法正常工作?

时间:2017-07-07 19:14:52

标签: python python-3.x

def solve(numLegs,numHeads):
for numChicks in range(0, numHeads + 1):
numPigs = numHeads - numChicks
totLegs = 4*numPigs + 2*numChicks
if totLegs == numLegs:
return(numPigs,numChicks)
return(None,None)

def barnYard():
heads = input('Enter a Number of heads')
legs  = input('Enter a Number of legs')
pigs,chickens = solve(legs,heads)
if pigs == None:
    print ('There is no solution')
else:
    print ('number of Pigs',pigs)
    print ('number of chickens',chickens)

print (barnYard())

我在这段代码中的3个地方收到错误;有人可以帮我弄清楚它为什么会出错吗?

1 个答案:

答案 0 :(得分:2)

主要错误是Whitespace在Python中是必不可少的。你必须保持正确的缩进。

您的函数定义需要缩进,与循环和if语句一样。

returns是在要返回的项目之前需要后跟空格的语句。 (执行return(x)会尝试调用已定义的return函数,而不是运行正确的return语句。

另一个错误是,当您从输入接受变量时,它以字符串形式出现。如果要将其用作数学作为整数,则需要使用int(input("your prompt"))

进行转换

另一个错误是您使用逗号将字符串连接到另一个变量,并且最重要的是它不是字符串。将它们设为字符串,然后使用+运算符在print语句中与它们联系。

def solve(numLegs,numHeads):
    for numChicks in range(0, numHeads + 1):
        numPigs = numHeads - numChicks
        totLegs = 4*numPigs + 2*numChicks
        if totLegs == numLegs:
            return (numPigs,numChicks)
        return (None,None)

def barnYard():
    heads = int(input('Enter a Number of heads'))
    legs  = int(input('Enter a Number of legs'))
    pigs,chickens = solve(legs,heads)
    if pigs == None:
        print ('There is no solution')
    else:
        print ('number of Pigs ' + str(pigs))
        print ('number of chickens ' + str(chickens))

print (barnYard())