Задачи для собесов Python-разработчик(5 день)
Задача №1
Даны два целых числа a
и b
, которые могут быть положительными или отрицательными, найдите сумму всех целых чисел между ними и включая их и верните ее. Если два числа равны, верните a
или b
.
Примеры (а, б) --> вывод (пояснение)
(1, 0) --> 1 (1 + 0 = 1) (1, 2) --> 3 (1 + 2 = 3) (0, 1) --> 1 (0 + 1 = 1) (1, 1) --> 1 (1 since both are same) (-1, 0) --> -1 (-1 + 0 = -1) (-1, 2) --> 2 (-1 + 0 + 1 + 2 = 2)
Решение
# Создаем функцию, которая принимает 2 аргумента def get_sum(a,b): # Создаем переменную, которая изначально равна 0 c = 0 # Создаем условия для понимания, какой аргумент будет находиться слева if a > b: # Т.к. b находится слева, поэтому счиатем ссуму элементов от b до а # Пока b не дошло до а ВКЛЮЧИТЕЛЬНО, то прибаляем к #переменной "с" переменную "b" с шагом 1 while b != a + 1: c += b b += 1 else: #Иначе повторяем тоже самое, только от перменной "а" до переменной "b" while a != b + 1: c += a a += 1 #В ответе возвращаем только перменную "с" return c
Задача №2
Сбалансированное число — это число, в котором сумма цифр слева от средней цифры и сумма цифр справа от средней цифры равны.
Если в числе нечетное количество цифр, то средняя цифра только одна. (Например, 92645
имеет одну среднюю цифру, 6
.) В противном случае есть две средние цифры. (Например, средние цифры числа 1301 3 и 0
)
Среднюю цифру (цифры) не следует учитывать при определении того, является ли число сбалансированным или нет, например, 413023
является сбалансированным, потому что левая сумма и правая сумма равны 5
.
Учитывая число, найдите, сбалансировано ли оно, и верните строку "Balanced"
или "Not Balanced"
соответственно. Передаваемое число всегда будет положительным.
Решение
#Создаем функцию, которая принмает один аргумент - целое число def balanced_num(number): #С помощью генератора списков создаем список, состоящий отдельно из каждой цифры числа number_list = [int(i) for i in str(number)] #Если длина числа равна 1 или 2, то число является сбалансированным if len(number_list) == 1 or len(number_list) == 2: return 'Balanced' #Если длина числа нечетная(количество чисел нечетное) elif len(number_list) % 2 == 1: #То мы создаем переменную, которая будет равна индексу цифры, #которая стои посередине inex_s = int((len(number_list) - 1) / 2) #Далее мы проверям условия, равна ли сумма цифр справа и сумма цифр слева if sum(number_list[0:inex_s]) == sum(number_list[inex_s+1:]): return 'Balanced' #Если нет, то возвращаем "Not Balanced" else: return 'Not Balanced' #Такую же проверку делаем, если количесвто цифр четное elif len(number_list) % 2 == 0: #В этом случае у нас 2 средние цифры, поэтому находим индексы каждой inex_s_1 = int(len(number_list) / 2) inex_s_2 = int((len(number_list) / 2) - 1) if sum(number_list[0:inex_s_1 - 1]) == sum(number_list[inex_s_2+2:]): return 'Balanced' else: return 'Not Balanced'
Задача №3
Тролли атакуют ваш раздел комментариев!
Обычный способ справиться с этой ситуацией — удалить все гласные из комментариев троллей, нейтрализуя угрозу.
Ваша задача — написать функцию, которая принимает строку и возвращает новую строку, в которой удалены все гласные.
Например, строка «This website is for losers LOL!» станет «Ths wbst s fr lsrs LL!».
Решение
#Создаем функцию, где принимаем аргумент - строка def disemvowel(string_): #Создаем переменную, которая содержит в себе пустую строку string_1 = '' #Циклом пробегаемся по всему тексу, который написали злые троли! #В этом случае переменная i принмает значение каждого символа текста for i in string_: #Если символ есть в строке 'euoiaEUIOA', то мы ничего не делаем #и бежим дальше по строчке if i in 'euoiaEUIOA': continue #Если данного символа нет, то мы добавляем его в исправленный текст else: string_1+=i return string_1
Примечание: решение задач может быть абсолютно разным, это мое видение в данный момент, их можно решать намного короче, но мой уровень пока что говорит мне делать это так
Подписывайся на канал, где я рассказываю про свой путь новичка в мире IT Python с 0 до Junior🐍