如何调试为什么我的Python程序不工作?

2024-06-28 19:07:21 发布

您现在位置:Python中文网/ 问答频道 /正文

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处出错,有人能帮我找出它出错的原因吗?你知道吗


Tags: ofnoneifdefprintheadssolvelegs
1条回答
网友
1楼 · 发布于 2024-06-28 19:07:21

主要的错误是,在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())

相关问题 更多 >