В файле находится последовательность целых чисел, не превышающих по модулю 1000. Требовалось найти количество элементов в последовательности, у которых в записи числа встречается хотя бы одна единица и хотя бы одна двойка. Программист торопился и не дописал программу Какие строчки должны быть на месте пропуска?
1) 2 строка: a = [int(i) for i in f]; 5 строка: 2 in i and i.count(1) > 0
2) 2 строка: a = [i for i in f]; 5 строка: ’2’ in i or i.count(’1’) >= 1
3) 2 строка: a = [int(i) for i in a]; 5 строка: str(i).count(’2’) > 0 and str(i).count(’1’) > 0
4) 2 строка: a = [i for i in f]; 5 строка: ’2’ in i and ’1’ in i
Давайте определим, как можно исправить данную программу. 1-ый вариант ответа не подходит, так как в 2-ой строчке мы записали, что в списке хранятся численное представление чисел и поэтому в 5-ой строке мы не можем применять без конвертации в str методы проверки in и count. 2-ой вариант ответа не подходит, так как нам нужно чтобы в числе одновременно было хотя бы одна двойка и хотя бы одна единица, а в 5-ой строке между проверками стоит or, а не and. 3-ий вариант ответа не подходит, так как во 2-ой строке в генераторе мы проходимся по a, ещё не инициализированной переменной, по итогу нам мы получим ошибку. 4-ый вариант ответа нам подходит, все проблемные места корректно решены. Ответ: 4.