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 № 1Musisz 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)
.