Python изначально поддерживает два типа деления. Разделение по этажам выполняется с //
и всегда приводит к int
. Истинное деление выполняется с /
и всегда приводит к float
.
. Вы можете проверить следующее:
>>> size = 6
>>> type(size / 6)
float
>>> type(size // 6)
int
>>> size / 6 == size // 6
True
Таким образом, самый простой способ - написать:
weight[size // 6 * 2:size // 6 * 4 + 1, :] = 5
Кроме того, вы можете сделать приведение явным, хотя это менее эффективно:
weight[int(size / 6) * 2:int(size / 6) * 4 + 1, :] = 5
Кстати, если вы хотите разделить потолок, просто добавьте (6 - 1) = 5
и выполните деление по полу:
weight[(size + 5) // 6 * 2:(size + 5) // 6 * 4 + 1, :] = 5
Если вы хотите округлить, добавьте 6 / 2 = 3.0
и сделайте деление по полу:
weight[(size + 3) // 6 * 2:(size + 3) // 6 * 4 + 1, :] = 5
И, конечно, вы можете округлить явно:
weight[round(size / 6 * 2):round(size / 6 * 4) + 1, :] = 5
Все эти параметры будут работать для значений size
, которые не являются целыми числами, кратными 6.