В данный момент я ищу работу по совместительству (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 задач, с которыми я столкнулся во время различных тестов по набору персонала, и это только примеры решений. Если у вас есть другие предложения, не стесняйтесь, оставляйте комментарии.