#вопрос115
Напишите функцию, которая будет принимать символы ( ) : в любых сочетаниях и возвращать итоговый счет по количеству веселых и грустных смайликов, которые составляются из переданной последовательности символов.
Примеры:
1.
• веселые смайлики :) и (: оцениваются в 1 балл,
• грустные смайлики :( и ): оцениваются в -1 балл.
Напишите функцию, которая будет принимать символы ( ) : в любых сочетаниях и возвращать итоговый счет по количеству веселых и грустных смайликов, которые составляются из переданной последовательности символов.
Примеры:
1.
happiness_number(":):(") ➞ -1
2.happiness_number("(:)") ➞ 2
3.happiness_number("::::") ➞ 0
Примечания:• веселые смайлики :) и (: оцениваются в 1 балл,
• грустные смайлики :( и ): оцениваются в -1 балл.
Python вопросы на собеседовании с ответами pinned Deleted message
#вопрос116
Напишите функцию, которая будет принимать неверно составленную инструкцию импорта и возвращать правильную. Передаваться в функцию будут исключительно неправильно составленные инструкции.
Примеры:
• При импорте объектов из модуля в Python обычно используется следующий синтаксис: from module_name import object
Напишите функцию, которая будет принимать неверно составленную инструкцию импорта и возвращать правильную. Передаваться в функцию будут исключительно неправильно составленные инструкции.
Примеры:
1.fix_import("import object from module_name") ➞ "from module_name import object"
2.fix_import("import randint from random") ➞ "from random import randint"
3.fix_import("import pi from math") ➞ "from math import pi"
Примечание:• При импорте объектов из модуля в Python обычно используется следующий синтаксис: from module_name import object
#вопрос117
Напишите функцию, которая будет принимать список списков и возвращать новый список списков, содержащий все элементы старого за исключением внешних.
Пример:
• 2D-сетка всегда имеет форму прямоугольника или квадрата.
• Возвращать нужно именно список списков, за исключением ситуации, когда элементов просто нет. В таком случае нужно вернуть пустой список.
Напишите функцию, которая будет принимать список списков и возвращать новый список списков, содержащий все элементы старого за исключением внешних.
Пример:
peel_layer_off([
["a", "b", "c", "d"],
["e", "f", "g", "h"],
["i", "j", "k", "l"],
["m", "n", "o", "p"]
]) ➞ [
["f", "g"],
["j", "k"]
]
Примечания:• 2D-сетка всегда имеет форму прямоугольника или квадрата.
• Возвращать нужно именно список списков, за исключением ситуации, когда элементов просто нет. В таком случае нужно вернуть пустой список.
#вопрос118
Есть план этажа здания. На этом этаже 4 комнаты (1, 2, 3, 4), все выходят в общий коридор. Комнаты не сообщаются между собой: чтобы перейти из одной комнаты в любую другую, нужно пройти через коридор.
Создайте функцию, которая будет проверять, возможен ли переданный ей путь по комнатам. Коридор будет обозначаться буквой «H» (Hall).
Примеры:
1.
• Путь может начинаться или кончаться в коридоре.
• В качестве инпута будут передаваться только цифры 1-4 и/или буква «H».
• Комнаты не будут повторяться.
Есть план этажа здания. На этом этаже 4 комнаты (1, 2, 3, 4), все выходят в общий коридор. Комнаты не сообщаются между собой: чтобы перейти из одной комнаты в любую другую, нужно пройти через коридор.
Создайте функцию, которая будет проверять, возможен ли переданный ей путь по комнатам. Коридор будет обозначаться буквой «H» (Hall).
Примеры:
1.
possible_path([1, "H", 2, "H", 3, "H", 4]) ➞ True
2.possible_path(["H", 3, "H"]) ➞ True
3.possible_path([1, 2, "H", 3]) ➞ False
Примечания:• Путь может начинаться или кончаться в коридоре.
• В качестве инпута будут передаваться только цифры 1-4 и/или буква «H».
• Комнаты не будут повторяться.
#вопрос119
Дана строка, состоящая главным образом из пробелов. Среди пробелов есть всего один не-пробельный символ. Напишите функцию, принимающую такую строку и проверяющую, находится ли этот не-пробельный символ точно по центру строки. (Т.е. количество пробелов справа и слева от него должно быть одинаковым).
Примеры:
Дана строка, состоящая главным образом из пробелов. Среди пробелов есть всего один не-пробельный символ. Напишите функцию, принимающую такую строку и проверяющую, находится ли этот не-пробельный символ точно по центру строки. (Т.е. количество пробелов справа и слева от него должно быть одинаковым).
Примеры:
1.is_central(" # ") ➞ True
2.is_central(" 2 ") ➞ False
3.is_central("@") ➞ True#вопрос120
Напишите функцию, подсчитывающую количество одинаковых цифр в числе.
Примеры:
1.
• функция принимает число (исходим из того, что числа будут целыми и положительными)
• каждая цифра заменяется на число вхождений этой цифры в число
• итоговое число, возвращаемое функцией, должно быть целым числом, а не строкой.
Напишите функцию, подсчитывающую количество одинаковых цифр в числе.
Примеры:
1.
digit_count(221333) ➞ 2213332.
digit_count(136116) ➞ 3123323.
digit_count(2) ➞ 1Условия:
• функция принимает число (исходим из того, что числа будут целыми и положительными)
• каждая цифра заменяется на число вхождений этой цифры в число
• итоговое число, возвращаемое функцией, должно быть целым числом, а не строкой.
#вопрос121
Представьте, что вы на экзамене. Время вышло, преподаватель говорит дописать предложение до точки и сдать работу.
Допустим, написание одной буквы занимает 0,5 с (пробелы не учитываем).
Напишите функцию, которая будет принимать полное и недописанное предложение, а возвращать время, необходимое на дописывание (в секундах).
Разбор примера
1.
Представьте, что вы на экзамене. Время вышло, преподаватель говорит дописать предложение до точки и сдать работу.
Допустим, написание одной буквы занимает 0,5 с (пробелы не учитываем).
Напишите функцию, которая будет принимать полное и недописанное предложение, а возвращать время, необходимое на дописывание (в секундах).
Разбор примера
time_to_finish(Примеры
"And so brings my conclusion to its conclusion.",
"And so brings my conclusion to"
) ➞ 7
# "its" - это 3 символа
# "conclusion." - 11 символов, включая точку.
# 11 + 3 = 14
# 14 x 0.5 = 7
# Помните, что пробелы не учитываются.
1.
time_to_finish(2.
"And so brings my conclusion to its conclusion.",
"And so brings my conclusion to its conclus"
) ➞ 2
time_to_finish(3.
"As a result, my point is still valid.",
"As a result, my"
) ➞ 9
time_to_finish(
"Thank you for reading my essay.",
"T"
) ➞ 12.5
#вопрос122
Напишите функцию, которая будет принимать строку и возвращать отсортированный список трехбуквенных групп. Список формируется следующим образом: берем первые три буквы строки, затем сдвигаемся на одну букву и берем следующие три буквы и т. д. Если в переданной строке меньше трех букв, нужно вернуть пустой список.
Разбор примера
Напишите функцию, которая будет принимать строку и возвращать отсортированный список трехбуквенных групп. Список формируется следующим образом: берем первые три буквы строки, затем сдвигаемся на одну букву и берем следующие три буквы и т. д. Если в переданной строке меньше трех букв, нужно вернуть пустой список.
Разбор примера
three_letter_collection("python") ➞ ["hon", "pyt", "tho", "yth"]
# 1-я группа: "hon"
# 2-я группа: "pyt"
# 3-я группа: "tho"
# 4-я группа: "yth"
# Не забудьте отсортировать список!
Примерыthree_letter_collection("slap") ➞ ["lap", "sla"]
three_letter_collection("click") ➞ ["cli", "ick", "lic"]
three_letter_collection("cat") ➞ ["cat"]
three_letter_collection("hi") ➞ []#вопрос123
У вас и вашего соперника есть по 5 самодельных карт. Каждая карта помечена какой-нибудь цифрой от 0 до 9 (случайным образом, повторы возможны). Выигрывает тот, кто сумел составить наибольшее двузначное число из имеющихся у него цифр.
Напишите функцию, которая будет принимать два списка из 5 цифр каждый (первый — ваш, второй — вашего соперника) и возвращать True, если в этом раунде побеждаете вы. В случае ничьей или победы соперника возвращается False.
Разбор примера
У вас и вашего соперника есть по 5 самодельных карт. Каждая карта помечена какой-нибудь цифрой от 0 до 9 (случайным образом, повторы возможны). Выигрывает тот, кто сумел составить наибольшее двузначное число из имеющихся у него цифр.
Напишите функцию, которая будет принимать два списка из 5 цифр каждый (первый — ваш, второй — вашего соперника) и возвращать True, если в этом раунде побеждаете вы. В случае ничьей или победы соперника возвращается False.
Разбор примера
win_round([2, 5, 2, 6, 9], [3, 7, 3, 1, 2]) ➞ TrueПримеры
# Из ваших цифр можно составить число 96
# Ваш соперник может составить число 73
# В этом раунде побеждаете вы, потому что 96 > 73
win_round([2, 5, 2, 6, 9], [3, 7, 3, 1, 2]) ➞ True
win_round([1, 2, 3, 4, 5], [9, 8, 7, 6, 5]) ➞ False
win_round([4, 3, 4, 4, 5], [3, 2, 5, 4, 1]) ➞ False
@pythonknigi - книги по Python 2017+ года. Скачивать можно в 2 клика.