#python
Вопрос:
for word, sentence in tup:
while True:
x, y, z = random.sample(range(words_count), 3)
if list[x] != list[y] != list[z]:
aya_index = 1
print('breaking after success')
break
else:
print('continuing as there are similar words')
continue
if aya_index > words_count - 1:
print('breaking after finishing')
break
Как вы можете видеть, приведенный выше код должен зацикливаться tup
и увеличивать aya_index только в том случае, если эти три переменные не равны, вопрос в том, как сравнивать переменные или есть более эффективный способ ?
Комментарии:
1. код не должен был работать.
2. почему, не могли бы вы уточнить свой комментарий
Ответ №1:
Для сравнения трех переменных вы можете использовать:
if (x != y) and (y != z) and (x != z) :
....
Комментарии:
1. Благодаря поведению цепочки операторов Python вы могли бы написать это как
x != y != z != x
, но я оставлю это кому-то другому , чтобы судить, хорошая ли это идея. 🙂2. таким образом, круглые скобки действительно означают sth, я попробовал то, что вы предлагаете, но без круглых скобок и не сработало
3. Да, я считаю, что код в этом случае более читабелен.
4. Неожиданно ваш код сработал, я не знаю, что было не так, я думаю, что поведение цепочки операторов не так уж и хорошо, в любом случае