Привет, у меня есть задания и я написала для них коды, но ответы моей программы не сходятся с ответами в примере. Подскажите, пожалуйста, где я допустила ошибку и как ее пофиксить?
-----------------------------------------------------------------------------------------------------------------------------------
Задание 1. Дан список целых чисел. Этот список должен содержать последовательные числа от 1 до n. Но из-за ошибки одно число в списке повторяется и заменяет собой следующее в последовательности число. Напишите функцию, которая принимает список с ошибкой и выдает список, который будет содержать повторяющее число и то число, которое отсутствует в списке из-за ошибки. При решении использовать множество.
Например:
список с ошибкой: [1, 2, 3, 3, 5]. Вывод функции: [3, 4]
список с ошибкой: [1, 2, 2]. Вывод функции: [2, 3]
список с ошибкой: [1, 2, 3]. Вывод функции: []
Код 1.
def find_error(lst):
n = len(lst)
expected_set = set(range(1, n + 1))
given_set = set(lst)
repeated_number = None
for num in lst:
if num in given_set:
given_set.remove(num)
else:
repeated_number = num
break
missing_number = expected_set.difference(given_set).pop()
return [repeated_number, missing_number]
user_input = input("Введите список целых чисел через пробел: "
input_list = list(map(int, user_input.split()))
result = find_error(input_list)
print(f"{result[0]}, {result[1]}"
------------------------------------------------------------------------------------------------------------------------------------
Задание 2. Напишите функцию, которая проверяет, что строка состоит из всех букв алфавита. Если это так, то посчитайте сколько там было лишних букв, которые использовались больше одного раза.
Например:
Строка: Съешь же ещё этих мягких французских булок да выпей чаю. Вывод функции: Да, 13
Строка: Привет мир. Вывод функции: Нет
Код 2.
def check_pangram(input_string):
alphabet = set("абвгдеёжзийклмнопрстуфхцчшщъыьэюя"
input_string = input_string.lower()
input_set = set(input_string)
if alphabet.issubset(input_set):
extra_letters = sum(1 for char in input_set if input_string.count(char) > 1)
return f"Да, {extra_letters}"
else:
return "Нет"
user_input = input("Введите предложение: "
result = check_pangram(user_input)
print(result)
-----------------------------------------------------------------------------------------------------------------------------------
Задание 1. Дан список целых чисел. Этот список должен содержать последовательные числа от 1 до n. Но из-за ошибки одно число в списке повторяется и заменяет собой следующее в последовательности число. Напишите функцию, которая принимает список с ошибкой и выдает список, который будет содержать повторяющее число и то число, которое отсутствует в списке из-за ошибки. При решении использовать множество.
Например:
список с ошибкой: [1, 2, 3, 3, 5]. Вывод функции: [3, 4]
список с ошибкой: [1, 2, 2]. Вывод функции: [2, 3]
список с ошибкой: [1, 2, 3]. Вывод функции: []
Код 1.
def find_error(lst):
n = len(lst)
expected_set = set(range(1, n + 1))
given_set = set(lst)
repeated_number = None
for num in lst:
if num in given_set:
given_set.remove(num)
else:
repeated_number = num
break
missing_number = expected_set.difference(given_set).pop()
return [repeated_number, missing_number]
user_input = input("Введите список целых чисел через пробел: "
input_list = list(map(int, user_input.split()))
result = find_error(input_list)
print(f"{result[0]}, {result[1]}"
------------------------------------------------------------------------------------------------------------------------------------
Задание 2. Напишите функцию, которая проверяет, что строка состоит из всех букв алфавита. Если это так, то посчитайте сколько там было лишних букв, которые использовались больше одного раза.
Например:
Строка: Съешь же ещё этих мягких французских булок да выпей чаю. Вывод функции: Да, 13
Строка: Привет мир. Вывод функции: Нет
Код 2.
def check_pangram(input_string):
alphabet = set("абвгдеёжзийклмнопрстуфхцчшщъыьэюя"
input_string = input_string.lower()
input_set = set(input_string)
if alphabet.issubset(input_set):
extra_letters = sum(1 for char in input_set if input_string.count(char) > 1)
return f"Да, {extra_letters}"
else:
return "Нет"
user_input = input("Введите предложение: "
result = check_pangram(user_input)
print(result)