5 задач по подбору персонала с помощью Python

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

1) Напишите функцию, которая будет печатать четные числа:

Решение 1 — цикл while:

def evenNumbers(number):
    n=0
    while n < number:
        n += 1
        if n % 2 == 0:
            print(n, end="t")

evenNumbers(10)
Войти в полноэкранный режим Выход из полноэкранного режима

Решение 2 — цикл for:

def evenNumbers2(number):
    numbers = range(0, number+1)
    for n in numbers:
        if n % 2 == 1:
            continue
        print(n, end="t")

evenNumbers2(10)

Войти в полноэкранный режим Выход из полноэкранного режима

2) Найдите простое число:

Решение:

def isPrimeNumber(number):
    if number > 1:
        for i in range(2,number):
            if number % i == 0:
                #print(f"{i} times {number//i} is {number}")
                #print(f"{number} is not a prime number")
                return False    
        return True
    else:
        return False    

print("7 is prime", isPrimeNumber(7))
print("9 is prime", isPrimeNumber(9))

Войти в полноэкранный режим Выйти из полноэкранного режима

Итак, мы знаем, как определить, является ли число простым, и можем использовать это для поиска простого числа в диапазоне:

def allPrimeNumbers(num):
    for i in range(num + 1):
        if isPrimeNumber(i):
            print(i, end = ", ")


print("prime numbers to 100")
allPrimeNumbers(100)

Войти в полноэкранный режим Выйти из полноэкранного режима

3) Как узнать, является ли число палиндромом:
Решение:

def palindrome_number (number):
    number_str = str(number) # it is necessary to change the number to string to compare each digit
    number2_str = number_str[::-1] # number2_str is renversed by [::–1] slice which starts from last sign

    if number_str == number2_str:
        print(f"{number} this is a palindrome")
    else:
        print(f"{number} isn't a palindrome")  

palindrome_number(123321)
Войти в полноэкранный режим Выйти из полноэкранного режима

4) Fizz Buzz — одно из самых любимых упражнений младших школьников и не только:

def fizz_buzz(number):
    for i in range(1, number+1):
        if i % 3 == 0 and i % 5 == 0:
            print("fizzBuzz",end=", ")
        elif i % 3 == 0:
            print ("fizz",end=", ")
        elif i % 5 == 0:
            print ("buzz",end=", ")
        else:
            print (i,end=", ")

fizz_buzz(20) 
Войти в полноэкранный режим Выйти из полноэкранного режима

Да, я знаю, что лучше и правильнее использовать «return», чем «print» 😉 .

5) Это упражнение было более сложным для моего понимания: Фибоначчи. Здесь я покажу вам 3 решения:

Решение 1 — рекурсивная функция:

def fib_r(n):
    assert n>=0
    if n<=1: 
        return n
    else:
        return fib_r(n-1)+fib_r(n-2)

print(fib_r(10))
Войти в полноэкранный режим Выход из полноэкранного режима

Решение 2 — итеративная функция

def fib_i(num):
    a, b = 0,1 

    for i in range(0, num):
        a, b = b, a + b
        print(a, end= ", ")

print(fib_i(10))

Войти в полноэкранный режим Выход из полноэкранного режима

Решение 3 — функция с генератором

def fib_g():
    yield 0
    a=0
    b=1
    while True:
        yield b
        a,b = b,a+b

g=fib_g()

for i in range (11): 
    print( next(g), end = ", ")

Войти в полноэкранный режим Выход из полноэкранного режима

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

Оцените статью
devanswers.ru
Добавить комментарий