python
January 13, 2023

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

Примечание: для этой ката Y не считается гласной.

Решение

#Создаем функцию, где принимаем аргумент - строка
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🐍