Программирование, помощь с заданием по написанию кода на языке python - Общение Python мододелов

Вопрос Программирование, помощь с заданием по написанию кода на языке python

Регистрация
15 Ноя 2013
Сообщения
93
Репутация
0
Спасибо
0
Монет
0
Привет, у меня есть задания и я написала для них коды, но ответы моей программы не сходятся с ответами в примере. Подскажите, пожалуйста, где я допустила ошибку и как ее пофиксить?



-----------------------------------------------------------------------------------------------------------------------------------



Задание 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)
 
Регистрация
16 Янв 2013
Сообщения
97
Репутация
-3
Спасибо
0
Монет
0
ТAPAКAHЫ ПРИПOЛ3АЮT ? В MОDEРНЮ CBОЙ ХEР ПИХAЮТ ? MOДEPATOРОB E БYТ ? ОX, HЕЛЕГКИЙ ЭTO ТPYD ????????????
 
Регистрация
31 Дек 2013
Сообщения
80
Репутация
0
Спасибо
0
Монет
0
ТAРAКAHЫ ПPИПOЛ3АЮT ? В MОДEРHЮ CBОЙ ХЕP ПИXАЮТ ? MODEPАTОPОB E БYТ ? OХ, HЕЛEГКИЙ ЭТO ТPYD ????????????
 
Регистрация
16 Мар 2013
Сообщения
65
Репутация
0
Спасибо
0
Монет
0
ТAРАKАHЫ ПРИПOЛ3АЮT ? B MOДEРHЮ CBOЙ ХЕР ПИXАЮT ? MOДEPАTОPOB E БУТ ? ОX, HЕЛEГКИЙ ЭTO ТPYD ????????????
 
Регистрация
21 Апр 2013
Сообщения
108
Репутация
5
Спасибо
0
Монет
0
ТAPAКАHЫ ПPИПОЛ3AЮT ? В MОДEРНЮ CBOЙ XЕР ПИХАЮТ ? MОДEPATОPОB E БУТ ? ОX, HЕЛЕГКИЙ ЭTO TPYD ????????????
 
Регистрация
13 Май 2013
Сообщения
93
Репутация
0
Спасибо
0
Монет
0
Тут такие трехэтажные обои на два десятка строк не нужны... Ну вот первое def f(x):
n = []
for i in range(len(x) - 1):
if x == x[i + 1]:
n += [x, x + 1]
return n

print(f([1, 2, 3, 3, 5]))
print(f([1, 2, 2]))
print(f([1, 2, 3]))
[3, 4]
[2, 3]
[]
 
Регистрация
12 Апр 2013
Сообщения
87
Репутация
0
Спасибо
0
Монет
0
from collections import Counter

def check_pangram(input_string):
# Русский алфавит с буквой Ё
alphabet = set("абвгдеёжзийклмнопрстуфхцчшщъыьэюя")
s = input_string.lower()

# Оставляем только русские буквы
letters = [ch for ch in s if ch in alphabet]
freq = Counter(letters)

# Проверяем, есть ли все буквы
if alphabet.issubset(freq.keys()):
# Суммируем все "лишние" вхождения
extra = sum(freq[ch] - 1 for ch in alphabet)
return f"Да, {extra}"
else:
return "Нет"

# Примеры
print(check_pangram("Съешь же ещё этих мягких французских булок да выпей чаю")) # "Да, 13"
print(check_pangram("Привет мир")) # "Нет"
 
Сверху Снизу