res_sort[3] - res_sort[2]
s4 = res_sort[4] - res_sort[3]
if len(res) == 7:
if s == 1 and s1 == 1 and s2 == 1 and s3 == 1 and s4 == 1:
print('ok') есть у кого какие мысли, чтоб короче написать второй if?
Рискованный вариант - проверить, что их перемножение равно единице. Надёжно, если они int, иначе риск что 0.5 и 2 уравновесят друг друга.
expected = [res_sort[0]+i for i in range(4)] if len(res)==7: if res[:4] == expected: print("ok")
Для проверки списка целиком ваш код мог бы выглядеть так: RES_SIZE = 7 res = [2, 5, 4, 1, 3, 0, 6] def check_res_values(res_data): if not len(res) == RES_SIZE: return res_sort = sorted(res_data) for i in range(1, len(res_sort)): if not res_sort[i] == res_sort[i-1] + 1: return print('ok') check_res_values(res)
чет какая то странная задача, а че s1…s4 всегда и не больше ?
нет всегда не больше на 1
А можно задачу исходную?
Обсуждают сегодня