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个地方收到错误;有人可以帮我弄清楚它为什么会出错吗?
答案 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())