Задачи для собесов 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🐍