Что не так в коде? хочу сделать подсчет чисел для каждой четверти

Рейтинг: -3Ответов: 1Опубликовано: 16.08.2023
a=b=c=d=0
def f(x,y,a,b,c,d):
    if x>0 and y>0:
        a+=1
    if x>0 and y<0:
        b+=1
    if x<0 and y>0:
        c+=1
    if x<0 and y<0:
        d+=1

f(3,3,a,b,c,d)
f(-3,3,a,b,c,d)
f(3,-3,a,b,c,d)
      

print("1:", a)
print("2:", b)
print("3:", c)
print("4:", d)

Ответы

▲ 1

В python числовые данные являются неизменяемыми и поэтому передаются по значению, => изменение a,b,c,d в функции не меняет их в main.

Записывать данные можно в список, или создать свой класс:


def f(x,y, report):
    a = 3
    if x>0 and y>0:
        report[0] += 1
    if x>0 and y<0:
        report[1] += 1
    if x<0 and y>0:
        report[2] += 1
    if x<0 and y<0:
        report[3] += 1

report = [0, 0, 0, 0]

f(3,3, report)
f(-3,3, report)
f(3,-3, report)
      

print("Result", report)