/ / Zapis funkcji dodawania punktów po points = 0 [duplicate] - python, function

Zapisywanie funkcji dodawania punktów po points = 0 [duplicate] - python, function

Piszę funkcję, aby dowiedzieć się, ilepunkty, które zarabiasz. Ma dodawać punkty do punktów, ale po wydrukowaniu punktów poza funkcją, wskazuje points = 0. Oto funkcja ...

points = 0
def correct(points):
if question >= 0 and question <= 3:
points = points + 100
print "That was a 100 point question."
elif question >= 4 and question <= 7:
points = points + 200
print "That was a 200 point question."
elif question >= 8 and question <= 11:
points = points + 300
print "That was a 300 point question."
else:
points = points + 400
print "That was a 400 point question."
return points


Here is an example of the function in my code.

if ranswer == random2[question]: #if you get it right
correct(points)
print "Correct! You now have", points, "points!"

Na końcu powinien wydrukować ilość punktów, które mam, ale drukuje 0.

Odpowiedzi:

1 dla odpowiedzi № 1

Musisz przypisać points zwrócić wartość z correct(points).

points = correct(points)

Liczby całkowite są niezmiennymi obiektami w języku Python. Po przypisaniu nowej wartości do points wewnątrz correct(), to nie to samo co oryginał points miałeś. Teraz wskazuje na inny obiekt będący liczbą całkowitą. To jest powód, dla którego musisz dokonać aktualizacji points w wywołaniu kodu z zwracaną wartością z correct(points).