这是我的代码:
def userpoints(userPoint,plus,minus):
userPoint = userPoint + plus
userPoint = userPoint - minus
return userPoint
userPoints = 20
sumdiceroll = 7
def positivepoints(sumdiceroll,userPoints):
if sumdiceroll == 7:
userPoints = userPoints + 1
return userPoints
for i in range(2):
positivepoints(sumdiceroll, 1)
print(userPoints)我想知道为什么函数中的if语句不能工作。如果我的正点函数中的If语句正常工作,变量userPoints将是22,而不是20。当我执行代码时,userPoints保持20。顺便说一句,我使用python3.8。我很感激。
发布于 2022-05-12 11:12:36
问题是你打电话给
positivepoints(sumdiceroll, 1)如果没有将它赋值给任何东西,那么变量userPoints就不会在函数定义中局部变量(也称为userPoints)的作用域之外被修改。
尝尝这个
userPoints = positivepoints(sumdiceroll, 1)虽然每次传递值1时,这只会更改一次userPoints,
相反,您可以尝试这样做:
userPoints = 20
for i in range(2):
userPoints = positivepoints(sumdiceroll, userPoints)
print(userPoints)发布于 2022-05-12 11:46:48
相反,指定可以直接打印的值。
print(positivepoints(sumdiceroll, 1))https://stackoverflow.com/questions/72214479
复制相似问题