A_p -= 1 and B_p += 1
недопустимо Python, and
- это заданное ключевое слово c, используемое для объединения логических выражений, например:
if a > 3 and a < 7:
pass
Вместо этого вам нужны два отдельных оператора. :
A_p -= 1
B_p += 1
или, если вы должны иметь его в одной строке (и я бы спросил почему вы считаете это необходимым), один из Следующее, в зависимости от того, что вы предпочитаете:
A_p -= 1 ; B_p += 1
(A_p, B_p) = (A_p - 1, B_p + 1)
Кроме того, строка:
A_p = A_p and B_p = B_p
, даже если вы разделите ее на два оператора, фактически ничего не делает. Вы также можете полностью удалить его вместе со строкой else:
, предшествующей ему, если это единственное, что есть в блоке else
.
Другими словами, начните с чего-то такого:
(k1, k2, Delta_t) = (0.2, 0.2, 2)
(A_p, B_p) = (4, 3)
list_nm = [0.800, 0.801, 0.752, 0.661, 0.169, 0.956, 0.949, 0.003, 0.201, 0.291, 0.615, 0.131, 0.241, 0.685, 0.116, 0.241, 0.849]
for i in range(7):
if list_nm[i] < (A_p / 7):
print("Particle A was choosen")
if list_nm[i] < k1 * Delta_t:
A_p -= 1
B_p += 1
elif list_nm[i] < (B_p / 7):
print("Particle B was choosen")
if list_nm[i] < k2 * Delta_t:
A_p += 1
B_p -= 1
else:
print("No choice was made")
print(B_p)