不进入国际单项体育联合会会员国的条件

2024-03-29 06:52:47 发布

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

我尝试在每次运行函数时增加计数,似乎每次运行函数时都会重置计数。我认为if语句中的计数可能与作为条件传递的计数不同。谢谢

def check_solution(user_solution, solution, count):

if user_solution == solution:
        count =+1
        print(count)
        return count
else:
    print("Incorrect")

这是我用来调用函数的代码

if index == 1:
    solution = num_1 + num_2
    num_1 = str(num_1)
    num_2 = str(num_2)
    problem = (num_1 + "+" + num_2)
    user_solution = get_user_solution(problem)
    check_solution(user_solution, solution, count)
    return count

Tags: 函数returnifcheckcount语句条件num
2条回答

语句应该是count += 1,而不是count =+1

check_solution可能不应该是它自己的函数,但是让我们来解决以下问题:

  • 正如耶尼夫提到的:count =+1count = +1count = 1,这显然不是你的意图。

  • check_solution仅当答案正确时返回计数。您的else还应该返回计数(可能是未修改的)。

  • 您不会对返回的计数执行任何操作:

    check_solution(user_solution, solution, count)

    应该是:

    count = check_solution(user_solution, solution, count)

因此,要解决当前代码中的问题:

def check_solution(user_solution, solution, count):
    if user_solution == solution:
        count =+1
        print(count)
    else:
        print("Incorrect")
    return count

请注意,函数中的count变量和您称之为count变量是不同的。您可以更改函数中的名称并得到相同的结果:

def check_solution(user_solution, solution, func_count):
    if user_solution == solution:
        func_count =+1
        print(func_count)
    else:
        print("Incorrect")
    return func_count

调用它时,必须告诉python将结果放在何处:

if index == 1:
    solution = num_1 + num_2
    num_1 = str(num_1)
    num_2 = str(num_2)
    problem = (num_1 + "+" + num_2)
    user_solution = get_user_solution(problem)
    count = check_solution(user_solution, solution, count)
    return count

如果是我自己写的,我会完全放弃这个函数,使用一个合适的字符串格式化程序:

if index == 1:
    solution = num_1 + num_2
    problem = "%d+%d" % (num_1, num_2)  # or %f if you're using floats
    if solution == get_user_solution(problem):
        count += 1
        print(count)
    else:
        print("Incorrect")
    return count

相关问题 更多 >