Skip to content

Instantly share code, notes, and snippets.

@Mark-Uri
Created October 19, 2025 10:32
Show Gist options
  • Save Mark-Uri/4bd181c0ed88f32a9fdbbba4e0d0ffc3 to your computer and use it in GitHub Desktop.
Save Mark-Uri/4bd181c0ed88f32a9fdbbba4e0d0ffc3 to your computer and use it in GitHub Desktop.
1. Створіть функцію, яка підраховує кількість цифр у числі
def count_digits(n):
s = str(n)
count = 0
for ch in s:
if ch.isdigit():
count += 1
return count
print(count_digits(12345))
print(count_digits(-12.30))
2. Користувач вводить рядок, необхідно отримати кількість повторень кожного слова в рядку. Ігноруємо коми, крапки.
Вивід:
слово: кількість
і т.д.
def word_count(text):
text = text.lower()
text = text.replace(",", " ").replace(".", " ")
words = text.split()
result = {}
for w in words:
if w in result:
result[w] += 1
else:
result[w] = 1
return result
counts = word_count("Привет, привет. Как дела?")
for word, cnt in counts.items():
print(f"{word}: {cnt}")
3. Створити список із цілих чисел. Його необхідно відфільтрувати, щоб у результаті залишилися парні числа. Вивести квадрати цих чисел, використовуючи map.
def even_squares(numbers):
evens = []
for x in numbers:
if x % 2 == 0:
evens.append(x)
squares = list(map(lambda x: x * x, evens))
return squares
print(even_squares([1, 2, 3, 4, 12, 7]))
4. Створіть словник, у якому кожна пара — це студент і список його оцінок
* Вивести по кожному студенту середній бал
* Вивести студента з максимальною оцінкою
def students_summary(students):
for name, grades in students.items():
if len(grades) == 0:
avg = 0
else:
total = 0
for g in grades:
total += g
avg = total / len(grades)
print(f"{name}: средний балл = {avg}")
top_student = None
top_mark = None
for name, grades in students.items():
for g in grades:
if top_mark is None or g > top_mark:
top_mark = g
top_student = name
print(f"Максимальная оценка {top_mark} у студента {top_student}")
students = {
"Ivan": [90, 80],
"Olena": [100, 95, 90],
"Taras": [60, 75, 88]
}
students_summary(students)
5. Напишіть функцію, яка приймає рядок і повертає словник, де ключ — це символ рядка, а значення — кількість його повторень.
def char_freq(text):
result = {}
for ch in text:
if ch in result:
result[ch] += 1
else:
result[ch] = 1
return result
print(char_freq("hello"))
6. Створіть кортеж із кількох рядків і чисел. Напишіть функцію, яка повертає новий кортеж, що містить лише числа.
def only_numbers(t):
result_list = []
for x in t:
if isinstance(x, (int, float)):
result_list.append(x)
return tuple(result_list)
print(only_numbers(("hi", 42, "x", 3.14, 7)))
7. Напишіть функцію, яка приймає список рядків і повертає список, у якому рядки відсортовані за довжиною.
def sort_by_length(strings):
sorted_list = sorted(strings, key=len)
return sorted_list
words = ["apple", "kiwi", "banana", "pear"]
print(sort_by_length(words))
8. Створіть словник із даними про співробітників компанії (ім’я, посада, зарплата). Напишіть функцію, яка сортує співробітників за зарплатою.
def sort_employees(employees):
sorted_list = sorted(employees, key=lambda x: x["salary"])
return sorted_list
emps = [
{"name": "Ivan", "job": "Dev", "salary": 1200},
{"name": "Olena", "job": "PM", "salary": 2000},
{"name": "Taras", "job": "QA", "salary": 1500}
]
result = sort_employees(emps)
for emp in result:
print(emp["name"], emp["salary"])
9. Використовуючи лямбда-вираз, створіть функцію, яка повертає найбільше з двох чисел.
max_num = lambda a, b: a if a > b else b
print(max_num(10, 5))
print(max_num(7, 9))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment