Pythonist.ru - образование по питону
26.3K subscribers
85 photos
1 video
943 links
Pythonist.ru - помощь в подготовке к собеседованию на позицию Python Developer.
Реклама: @anothertechrock

Контент канала:
1. Разбор вопросов с собеседований
2. Книги
3. Задачи на логику
4. Проект Эйлера
5. Видео
6. Тесты по Python 3

@aldrson
Download Telegram
Задача с кодом. Сумма чисел от 1 до n

Напишите функцию, которая находила бы сумму элементов от 1 до N (включительно). Функция должна быть рекурсивной.

Примеры:
sum_numbers(5) ➞ 15 
// 1 + 2 + 3 + 4 + 5 = 15
sum_numbers(1) ➞ 1
sum_numbers(12) ➞ 78


Решение на нашем сайте.

#задача #coding
Задача для новичков

Напишите функцию averageValue(), которая принимает на вход список целых неотрицательных чисел.

Эта функция должна вернуть среднее значение четных чисел из данного списка, которые ещё при этом делятся на 3. Это значение должно быть округлено вниз до ближайшего целого значения. Если в списке нет значений, которые бы удовлетворяли этим условиям, функция должна вернуть 0.

Примеры работы данной функции:

averageValue([1,3,6,10,12,15]) --> 9
averageValue([1,2,4,7,10]) --> 0

Свои варианты пишите в комментариях! Решение - сегодня вечером.

#задача #coding
Ответ к предыдущей задаче для новичков

def averageValue(nums):
x = [i for i in nums if i % 2 == 0 and i % 3 == 0]
return 0 if len(x) == 0 else sum(x) // len(x)

#задача #coding
Задача с кодом. Выводим расширение файла

Напишите программу, которая принимает имя файла и выводит его расширение. Если расширение у файла определить невозможно, выбросите исключение.

Решение на нашем сайте.

#задача #coding
Задача с кодом. Недостающие буквы

Напишите функцию, которая будет принимать строку из уникальных букв и возвращать отсортированную строку из букв, которых не было в переданной строке.

Примечания:

- Подразумевается использование английского алфавита. Всего в двух строках должно быть 26 букв.
- Все буквы будут в нижнем регистре.

Примеры

get_missing_letters("abcdefgpqrstuvwxyz") 
➞ "hijklmno"

get_missing_letters("zyxwvutsrq")
➞ "abcdefghijklmnop"

get_missing_letters("abc")
➞ "defghijklmnopqrstuvwxyz"

get_missing_letters("abcdefghijklmnopqrstuvwxyz")
➞ ""

Решение на нашем сайте.

#задача #coding
Задача для новичков

Напишите функцию mostFrequentEven(), на вход которой подается список целых чисел. Эта функция должна вывести наиболее часто встречающееся целое число. Если таких несколько, то нужно вывести минимальное, а если их нет вообще, то вывести -1.

Примеры работы данной функции:

mostFrequentEven([0,1,2,2,4,4,1]) --> 2
mostFrequentEven([29,47,21,41,13,37,25,7]) --> -1

Свои варианты пишите в комментариях! Решение - сегодня вечером.

#задача #coding
Ответ к предыдущей задаче для новичков

def mostFrequentEven(nums):
evens = [num for num in nums if num % 2 == 0]
if not evens:
return -1
return min(evens, key=lambda x: (-evens.count(x), x))

#задача #coding
Задача с кодом. Все вхождения элемента в список

Условие:
Создайте функцию, которая вернет индексы всех вхождений элемента в списке.

Примеры:
get_indices(["a", "a", "b", "a", "b", "a"], "a") 
➞ [0, 1, 3, 5]
get_indices([1, 5, 5, 2, 7], 7)
➞ [4]
get_indices([1, 5, 5, 2, 7], 5)
➞ [1, 2]
get_indices([1, 5, 5, 2, 7], 8)
➞ []


Примечания:
- Если элемента нет в списке, то возвращаем [].
- Индекс списка начинается с 0.
- Без вложенных списков и сложных конструкций внутри списка.

Решение на нашем сайте.

#задача #coding
Задача для новичков

Напишите функцию smallestMultiple(), которая получает на вход целое положительное число n. Данная функция должна вернуть наименьшее положительное целое число, кратное как 2, так и n.

Примеры работы данной функции:

smallestMultiple(5) --> 10
smallestMultiple(6) --> 6

Свои варианты пишите в комментариях! Решение - сегодня вечером.

#задача #coding
Ответ к предыдущей задаче для новичков

def smallestMultiple(n):
return n if n % 2 == 0 else 2 * n

#задача #coding
Задача с кодом. Число, которое больше A и делится на B

Напишите функцию, которая будет принимать два числа: a и b. Она должна возвращать следующее число, которое будет больше a и b и без остатка делиться на b.

Примечание: a всегда будет больше, чем b.

Примеры:

divisible_by_b(17, 8) ➞ 24
divisible_by_b(98, 3) ➞ 99
divisible_by_b(14, 11) ➞ 22

Решение на нашем сайте.

#задача #coding
Задача для новичков

Напишите функцию findGreatestLetter(), которая получает на вход строку, состаящую из английских букв. Эта функция должна вывести букву, которая встречается в строке как в верхнем, так и в нижнем регистре. (Вывести ее нужно в верхнем).

Если таких букв несколько, то надо вывести ту, которая больше в лексикографическом смысле (b > a например). Если такой буквы нет, то следует вывести пустую строку.

Примеры работы данной функции:

findGreatestLetter("arRAzFif") --> 'R'
findGreatestLetter("AbCdEfGhIjK") --> ''

Свои варианты пишите в комментариях! Решение - сегодня вечером.

#задача #coding
Ответ к предыдущей задаче для новичков

def findGreatestLetter(s):
return max([letter.upper() for letter in set(s) if letter.islower() and letter.upper() in s], default="")

#задача #coding
Задача с кодом. Множитель списков

Напишите функцию, которая будет принимать список (чисел или строк) и возвращать новый список со вложенными списками для каждого элемента исходного списка.

Каждый вложенный список будет заполняться соответствующим элементом исходного списка. Количество элементов во вложенном списке должно быть таким же, как в исходном.

Примеры:

multiply([4, 5]) 
➞ [[4, 4], [5, 5]]

multiply(["*", "%", "$"])
➞ [["*", "*", "*"], ["%", "%", "%"], ["$", "$", "$"]]

multiply(["A", "B", "C", "D", "E"])
➞ [["A", "A", "A", "A", "A"], ["B", "B", "B", "B", "B"], ["C", "C", "C", "C", "C"], ["D", "D", "D", "D", "D"], ["E", "E", "E", "E", "E"]]

Решение на нашем сайте.

#задача #coding
Задача с кодом. Пишем функцию для «тупого добавления»

Условие: Создайте функцию, которая принимает два параметра. Если оба параметра — строки, то сложите их математически, если оба — integer, тогда сконкатенируйте их. Если параметры разного типа — верните None.

Примеры:
stupid_addition(1, 2) ➞ "12" 
stupid_addition("1", "2") ➞ 3
stupid_addition("1", 2) ➞ None

Решение на нашем сайте.

#задача #coding
Задача с кодом. Скользящие числа

Напишите функцию, принимающую число и проверяющую, является ли оно «скользящим». Скользящее число — такое число, соседние цифры которого отличаются между собой на единицу.

Примеры:

is_slidey(123454321) ➞ True
is_slidey(54345) ➞ True
is_slidey(987654321) ➞ True
is_slidey(1123) ➞ False
is_slidey(1357) ➞ False
is_slidey(1) ➞ True

Обратите внимание на примеры 4 и 5. Если в числе идут подряд одинаковые цифры или какая-то цифра в ряду пропущена, такое число мы не считаем скользящим.

Если число записывается одной цифрой, оно считается скользящим.

Решение на нашем сайте.

#задача #coding
Задача для новичков

Уродливое число — это положительное целое число, простыми множителями которого могут быть только числа 2, 3 и 5.

Напишите функцию isUgly(n: int), которая принимает на вход целое число n и возвращает True, если число уродливое, и False в противном случае. Также напишите тесты для этой функции, чтобы убедиться, что она работает нормально.

Свои варианты пишите в комментариях! Решение - сегодня вечером.

#задача #coding
Ответ к предыдущей задаче для новичков

# Функция для проверки числа на "уродливость"
def isUgly(n):
if n <= 0:
return False
while n % 2 == 0:
n /= 2
while n % 3 == 0:
n /= 3
while n % 5 == 0:
n /= 5
return n == 1

# Тесты для функции isUrgly()
def test_is_ugly():
assert is_ugly(6) == True
assert is_ugly(1) == True
assert is_ugly(14) == False
assert is_ugly(0) == False
assert is_ugly(-6) == False


#задача #coding