编写一个名为“ compute_xp”的函数,该函数采用两个参数,它们分别是整数和布尔值。如果布尔值为假(失败),该函数将返回44993;如果布尔值为真(赢得胜利),则函数将返回44993加上整数参数
def compute_xp(i, b):
if b == 44993:
return 44993
else:
return 44993 + i
这是我的代码,但是当我输入一个值使该语句为真时,我总是得到错误的答案。
答案 0 :(得分:2)
在原始代码示例中,if b == 44993:
将参数b
与44993
进行比较。
由于预计b
是布尔值,因此此比较将始终返回false
。
这是我的解决方法:
def compute_xp(i, b):
if b:
return 44993 + i
else:
return 44993
if b:
检查布尔值b
,因此如果b
为true
,则将执行return 44993 + i
。如果b
为false
,则将执行return 44993
。
答案 1 :(得分:1)
为什么要比较布尔变量和数字?试试:
import brain from 'node_modules/brain.js/index.js';
import brain from 'node_modules/brain.js/';
import brain from './brain.js/index.js';
或更简短地说:
def compute_xp(i, b):
if b:
return 44993 + i
else:
return 44993
答案 2 :(得分:0)
我认为您应该重新考虑。
这就是我要做的:
def compute_xp(int_value, bool_value):
if b == True:
#If the battle is won run this code block
#return 44993, int_value (this would return two seperate things," (44993, int_value) ")
return 44993 + i
else:
#If the battle is lost, run this code
return 44993
您的代码无法使用的原因是,因为您试图将布尔值解释为整数if b == 44993
,所以它当然总是假,因为True
和{{1 }}是False
。
所以我的代码要做的是显式检查布尔值,因此只有在== 44993
会b == True
的情况下
我以注释的形式在代码中增加了一行。 return 44993 + i
似乎不适合返回。返回return 44993 + i
将返回一个元组,索引0将是一个整数,索引1将是您的int_value。
答案 3 :(得分:0)
尝试一下。请记住,布尔值只能具有两个值true或false之一,因此永远不能将其设置为等于数字。
def compute_xp(x,y):
if y == True:
return (x + 44993)
else:
return 44993