Python вопросы с собеседований
25K subscribers
526 photos
19 videos
18 files
423 links
Вопросы с собеседований по Python

@workakkk - админ

@machinelearning_interview - вопросы с собесдований по Ml

@pro_python_code - Python

@data_analysis_ml - анализ данных на Python

@itchannels_telegram - 🔥 главное в ит

РКН: clck.ru/3FmrFd
Download Telegram
⚡️ Задача с собеседования |: #Junior

Условие:

Ваша задача — написать функцию, которая находит сумму всех цифр в числе. На вход также могут пойти и числа меньше нуля — их стоит переводить в неотрицательное числа.

Пример:

1234 → 10
-9876 → 30
7013 → 11
100001 → 2


Знак "_" в числах может использоваться для упрощения чтения пользователем. 1_000_000 — это то же самое, что и 1000000

👉 Пишите ваше решение в комментариях👇

@python_job_interview
👍4🔥31
⚡️ Задача с собеседования |: #Junior

Условие

Числа Фибоначчи представляют последовательность, получаемую в результате сложения двух предыдущих элементов.
Начинается коллекция с чисел 1 и 1.
Она достаточно быстро растет, поэтому вычисление больших значений занимает немало времени.
Создайте функцию fib(n), генерирующую n чисел Фибоначчи с минимальными затратами ресурсов.
Для реализации этой функции потребуется обратиться к инструкции yield.
Она не сохраняет в оперативной памяти огромную последовательность, а дает возможность “доставать” промежуточные результаты по одному.

Необходимо превратить функцию в генератор при помощи инструкции yield, чтобы вычисления осуществлялись не сразу, а по мере надобности.

Решение

def fib(n):
fib0 = 1
yield fib0
fib1 = 1
yield fib1
for i in range(n - 2):
fib0, fib1 = fib1, fib0 + fib1
yield fib1


# Тест
for num in fib(112121):
pass
print(num)


👉 Пишите свое решение в комментариях👇

@python_job_interview
👍76🔥1
🖥 Задача для новичков. Собеседование.
#junior

"Напишите программу на Python для получения строки из заданной строки, в которой все вхождения первого символа заменены на '$', кроме самого первого символа."

Пример: print(change_char('restart'))
»»» resta$t



👉 Пишите ваше решение в комментариях👇

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥21
🖥 Зашифруйте текст «To be, or not to be, that is the question!» алгоритмом Цезаря с сдвигом вправо на 1717 символов.

Ответ

s = 'To be, or not to be, that is the question!'
new_s = ''
eng_lower_alphabet = 'abcdefghijklmnopqrstuvwxyz'
eng_upper_alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

for i in range(len(s)):
if s[i].isupper():
ind = eng_upper_alphabet.find(s[i])
while not ind + 17 < len(eng_upper_alphabet):
eng_upper_alphabet += eng_upper_alphabet
new_s += eng_upper_alphabet[ind + 17]
elif s[i].islower():
ind = eng_lower_alphabet.find(s[i])
while not ind + 17 < len(eng_lower_alphabet):
eng_lower_alphabet += eng_lower_alphabet
new_s += eng_lower_alphabet[ind + 17]
else:
new_s += s[i]
print(new_s)

Kf sv, fi efk kf sv, kyrk zj kyv hlvjkzfe!

#junior

Пишите свое решение в комментариях👇

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥21👎1
🖥 Возможно ли при наследовании методы объединять, а не заменять?

Дан родительский класс и дочерний, который наследуется от него

class Parent():
def test(self):
print('inside parent')

class Child(Parent):
def test(self):
print('inside child')


при вызове метода экземпляра дочернего класса с тем же названием вызывается функция из дочернего класса, перезаписываем родительскую

>>> b1 = Child()
>>> b1.test()
inside child
>>>


Вопрос: можно ли сделать так чтобы дочерний метод не перезаписывал родительский, а добавлялся к нему и они выполнялись бы вместе и поочередно (сначала родительский потом дочерний)? Чтобы получилось вот так:

>>> b1.test()
inside parent
inside child
>>>


Ответ

Для этого можно вызвать функцию в родительском классе при помощи super().

class Parent:
def test(self):
print('inside parent')


class Child(Parent):
def test(self):
super().test()
print('inside child')


b1 = Child()
b1.test()
Вывод:

inside parent
inside child


Подробнее про функцию super() можете почитать в документации.

#junior

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
👍152🔥1
🖥 Задача. Какая функция нужна для генерации случайного числа в Python?

Для генерации случайных чисел нужно импортировать модуль random, в котором есть несколько подходящих функций:

random() возвращает случайно число (class 'float') в диапазоне от 0.0 до 1.0 (верхняя граница не входит в диапазон).

from random import random

random() # 0.3380967837329142
random() # 0.07200652051529788


randint(start, stop) возвращает случайное число (class 'int') в диапазоне от start до stop (обе границы включены в диапазон).

from random import randint

randint(1, 7) # 4
randint(1, 7) # 2

randrange(start, stop, step) возвращает случайное число (class 'int') из последовательности от start до stop (верхняя граница не входит в диапазон) с шагом = step. Параметры start и step необязательные, по умолчанию start = 0, step = 1.

from random import randrange

randrange(4) # 1
randrange(4) # 3

random.randrange(4, 10) # 6
random.randrange(4, 10) # 9

random.randrange(4, 10, 2) # 4
random.randrange(4, 10, 2) # 8

#junior

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥31
🖥 Задача. Как упорядочить массив по возрастанию питон?

При работе со списками в Python существует два подхода. Первый – это изменить имеющийся список. Говорят, отсортировать по месту:

>>> nums = [5, 3, 4, 1, 2]
>>> nums.sort()
>>> nums
[1, 2, 3, 4, 5]
>>>


Второй способ – создать новый массив с упорядоченными элементами:

>>> nums = [5, 3, 4, 1, 2]
>>> sorted(nums)
[1, 2, 3, 4, 5]
>>> nums # в исходном списке порядок элементов сохранился
[5, 3, 4, 1, 2]
>>>


Пишите свое решение в комментариях👇

#junior

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥41
🖥 Задача для новичков.

Напишите функцию, которая переворачивает булево значение и возвращает строку “boolean expected”, если передан другой тип переменной.”

Пример:
reverse(True) ➞ False
reverse(False) ➞ True
reverse(0) ➞ "boolean expected"
reverse(None) ➞ "boolean expected"


Пишите свое решение в комментариях👇

#junior

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
👍142🔥1
🖥 Задача: Список победителей

Условие: Длинна трассы — 43872 м, а зрители хотят узнать имя победителя.

Нам известны средние скорости трёх фаворитов – Пети, Васи и Толи. Помогите подвести итоги гонки.

Формат ввода
В первой строке записана средняя скорость Пети.
Во второй — Васи.
В третьей — Толи.

• Формат вывода
Имена победителей в порядке занятых мест.

• Пример 1
Ввод
10
5
7


• Вывод
1. Петя
2. Толя
3. Вася

Код:

Пишите свое решение в комментариях👇

#junior

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83🔥1
Задача на сложение матриц

Уровень: новичок

Напишите функцию (без использования numpy.matrix.sum()), которая складывает две квадратные матрицы и возвращает их сумму. Все элементы матриц — целочисленные значения.

matrixAddition(
[ [1, 2, 3],
[3, 2, 1],
[1, 1, 1] ],
// +
[ [2, 2, 1],
[3, 2, 3],
[1, 1, 3] ] )

// returns:
[ [3, 4, 4],
[6, 4, 4],
[2, 2, 4] ]

#junior #numpy

Пишите свое решение в комментариях👇

@python_job_interview
👍122🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Что выведет этот Python код ? #junior #python

Задача для новичков.

s = set()
a = [1, 2, 3]
s.add(tuple(a))
print(s)


Списки изменяемы и не могут быть элементами множества, но кортежи — неизменяемы и хэшируемы, поэтому кортеж из списка успешно добавится во множество.
👍43🔥2🥰1