Chcę dodać x do value, jednak gdy value jest równe max_value, z powrotem do zera i kontynuować dodanie reszty x . Na przykład,

x = 5
value = 6
max_value = 8

To powinno zwrócić value = 3

Jak dotąd mam

value += x
    if value >= max_value:
        value = value - max_value

Jednak to działa tylko wtedy, gdy value + x jest mniejsza niż 2 * max_value.

0
malthuseater 21 listopad 2020, 00:23

1 odpowiedź

Najlepsza odpowiedź

Czego chcesz modułowy arytmetyki.

Możesz użyć operatora modulo % w Pythonie, aby to osiągnąć. Na przykład.

x = 5
value = 6
max_value = 8

value = (value + x) % max_value

Operator Modulo (%) Zwraca pozostałą część podziału całkowitego lewej strony po prawej stronie. Zobacz Dokumenty Szczegółowe informacje.

4
L.Grozinger 20 listopad 2020, 21:30