Полный сборник из 50 основных вопросов для собеседования по Python в 2022 году (с ответами) [рекомендуемый сборник]

Я подобрал для вас 50 вопросов для интервью по Python и соответствующие ответы, чтобы помочь вам лучше понять и изучить Python.

1. Что такое Python? Почему это так популярно?

Python — это интерпретируемый язык программирования высокого уровня общего назначения.

Философия дизайна Python заключается в повышении удобочитаемости кода за счет использования необходимых пробелов и пустых строк.

Его популярность обусловлена ​​его простым и удобным синтаксисом.

2. Почему Python работает медленно и как его улучшить?

Причина, по которой код Python выполняется медленно, заключается в том, что это интерпретируемый язык. Его код интерпретируется во время выполнения, а не компилируется в родной язык.

Чтобы увеличить скорость кода Python, мы можем использовать CPython, Numba или внести некоторые изменения в код.

1. 减少内存占用。

2. 使用内置函数和库。

3. 将计算移到循环外。

4. 保持小的代码库。

5. 避免不必要的循环

3. Каковы характеристики Python?

1. 易于编码

2. 免费和开源语言

3. 高级语言

4. 易于调试

5. OOPS支持

6. 大量的标准库和第三方模块

7. 可扩展性(我们可以用C或C++编写Python代码)

8. 用户友好的数据结构

4. Каковы приложения Python?

1. Web开发

2. 桌面GUI开发

3. 人工智能和机器学习

4. 软件开发

5. 业务应用程序开发

6. 基于控制台的应用程序

7. 软件测试

8. Web自动化

9. 基于音频或视频的应用程序

10. 图像处理应用程序

5. Каковы ограничения Python?

1. 速度

2. 移动开发

3. 内存消耗(与其他语言相比非常高)

4. 两个版本的不兼容(2,3)

5. 运行错误(需要更多测试,并且错误仅在运行时显示)

6. 简单性

Заголовок 6. Как выполняется код Python?

Сначала интерпретатор читает код Python и проверяет синтаксис или ошибки форматирования.

Выполнение останавливается, если обнаружена ошибка. Если ошибок не обнаружено, интерпретатор преобразует код Python в эквивалентную форму или байт-код.

Затем байт-код отправляется на виртуальную машину Python (PVM), где будет выполняться код Python, и выполнение будет остановлено, если будут обнаружены какие-либо ошибки, в противном случае результаты будут отображаться в окне вывода.
Результаты показывают

7. Как управлять памятью в Python?

Память Python управляется частным свободным пространством Python.

Все объекты и структуры данных Python находятся в частной куче. За выделение частной кучи отвечает менеджер памяти Python.

Python также имеет встроенный сборщик мусора, который возвращает неиспользуемую память и освобождает память, чтобы ее можно было использовать для свободного места.

8. Объясните встроенные структуры данных Python?

В основном в Python существует четыре типа структур данных.

Список. Список представляет собой набор разнородных элементов данных, начиная от целых чисел и заканчивая строками или даже другим списком. Списки изменяемы. Списки делают то же, что и большинство структур данных коллекций в других языках. Списки определяются в квадратных скобках [ ].

Например: а = [1,2,3,4]

Наборы: набор представляет собой неупорядоченный набор уникальных элементов. К множествам можно применять такие операции над множествами, как объединение |, пересечение & и разность. {} используется для представления коллекции.

Например: а = {1,2,3,4}

Кортежи: кортежи Python работают точно так же, как списки Python, за исключением того, что они неизменяемы. () используется для определения кортежей.

Например: а = (1,2,3,4)

Словарь. Словарь представляет собой набор пар ключ-значение. Это похоже на хеш-карту в других языках. В словаре ключи — это уникальные и неизменяемые объекты.

Например: a = {'число': [1,2,3,4]}

9. Объясните операторы //, %, * *?

//(Floor Division) — это оператор деления, который возвращает целую часть деления.

Пример: 5 // 2 = 2

%(модуль) — возвращает остаток от деления.

Пример: 5 % 2 = 1

**(возведение в степень) - выполняет экспоненциальное вычисление оператора. a ** b означает a, возведенное в b-ю степень.

Например: 5**2=25, 5**3=125

10. В чем разница между одинарными и двойными кавычками в Python?

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

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

11. В чем разница между добавлением, вставкой и расширением в Python?

append: Добавляет новый элемент в конец списка.

вставка: добавляет элемент в определенную позицию в списке.

расширить: расширяет список, добавляя новый список.

numbers = [1,2,3,4,5]
numbers.append(6)
print(numbers)
>[1,2,3,4,5,6]

## insert(position,value)
numbers.insert(2,7)  
print(numbers)
>[1,2,7,3,4,5,6]

numbers.extend([7,8,9])
print(numbers)
>[1,2,7,3,4,5,6,7,8,9]

numbers.append([4,5])
>[1,2,7,3,4,5,6,7,8,9,[4,5]]

12. Что такое break, continue и pass?

break: Это заставит программу выйти из цикла, когда условие будет выполнено.

continue: вернется к началу цикла, что заставит программу пропустить все оставшиеся операторы в текущей итерации цикла.

pass: заставляет программу пройти все оставшиеся операторы, не выполняя их.

13. Различайте между удалением, удалением и извлечением в Python?

remove: удалит первое совпадающее значение в списке, принимает значение в качестве аргумента.

del: удаляет элемент по индексу, не возвращает никакого значения.

pop: удалит верхний элемент в списке и вернет верхний элемент списка.

numbers = [1,2,3,4,5]
numbers.remove(5)
> [1,2,3,4]

del numbers[0]
>[2,3,4]

numbers.pop()
>4

14. Что такое оператор switch. Как создать оператор переключения в Python?

Оператор switch предназначен для реализации функции выбора нескольких ветвей и проверки переменных в соответствии со значением списка.

Каждое значение в операторе switch называется случаем.

В Python нет встроенной функции переключения, но мы можем создать собственный оператор переключения.

switcher = {
    
    
   1: "January",
   2: "February",
   3: "March",
   4: "April",
   5: "May",
   6: "June",
   7: "July",
   8: "August",
   9: "September",
   10: "October",
   11: "November",
   12: "December"
}
month = int(input())
print(switcher.get(month))

> 3
march

15. Приведите пример функции диапазона в Python?

диапазон: функция диапазона возвращает серию последовательностей от начальной точки до конечной точки.

range(start, end, step), третий параметр используется для определения количества шагов в диапазоне.

# number
for i in range(5):
    print(i)
> 0,1,2,3,4

# (start, end)
for i in range(1, 5):
    print(i)
> 1,2,3,4

# (start, end, step)
for i in range(0, 5, 2):
    print(i)
>0,2,4

16. В чем разница между == и is?

== сравнивает два объекта или значения на равенство.

is используется для проверки того, принадлежат ли два объекта одному и тому же объекту памяти.

lst1 = [1,2,3]
lst2 = [1,2,3]

lst1 == lst2
>True

lst1 is lst2
>False

17. Как изменить тип данных списка?

Чтобы изменить тип данных списка, используйте tuple() или set().

lst = [1,2,3,4,2]

# 更改为集合
set(lst)    ## {1,2,3,4}
# 更改为元组
tuple(lst)  ## (1,2,3,4,2)

18. Какие существуют методы комментирования кода в Python?

В Python мы можем комментировать двумя способами.

  1. Тройные кавычки ''' для многострочных комментариев.

  2. Знак решетки #, используемый для однострочных комментариев.

19. В чем разница между операторами != и is not?

!= Возвращает true, если значения двух переменных или объектов не равны.

is not используется для проверки того, принадлежат ли два объекта одному и тому же объекту памяти.

lst1 = [1,2,3,4]
lst2 = [1,2,3,4]

lst1 != lst2
>False

lst1 is not lst2
>True

20. Есть ли в Python главная функция?

Да, это имеет. Он будет выполняться автоматически всякий раз, когда мы запускаем скрипт Python.

21. Что такое лямбда-функция?

Лямбда-функции — это однострочные функции без имени, которые могут иметь n параметров, но только одно выражение. Также известна как анонимная функция.

a = lambda x, y:x + y 
print(a(5, 6))

> 11

22. В чем разница между итерируемыми объектами и итераторами?

iterable: iterable — это объект, который можно повторять. В итерируемом случае все данные сразу сохраняются в памяти.

итераторы: Итераторы — это объекты, используемые для перебора объектов. Он только инициализируется или сохраняется в памяти при вызове. Итератор использует next для извлечения элементов из объекта.

# List is an iterable
lst = [1,2,3,4,5]
for i in lst:
    print(i)

# iterator
lst1 = iter(lst)
next(lst1)
>1
next(lst1)
>2
for i in lst1:
    print(i)
>3,4,5 

23. Что такое функция карты в Python?

Функция карты возвращает объект карты после применения определенной функции к каждому элементу итерируемого объекта.

24. Объясните фильтр в Python?

Функция фильтра, которая отфильтровывает значения из итерации на основе некоторых критериев.

# iterable
lst = [1,2,3,4,5,6,7,8,9,10]

def even(num):
    if num%2==0:
        return num

# filter all even numbers
list(filter(even,lst))
---------------------------------------------
[2, 4, 6, 8, 10] 

25. Объясните использование функции сокращения в Python?

Функция reduce() принимает функцию и последовательность и возвращает значение после вычисления.

from functools import reduce

a = lambda x,y:x+y
print(reduce(a,[1,2,3,4]))

> 10 

26. Что такое травление и рассол?

Pickling — это процесс преобразования объектов Python (или даже кода Python) в строки.

Распаковка — это процесс, обратный преобразованию строки в исходный объект.

27. Объясните *args и **kwargs?

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

def add(* num):
    sum = 0 
    for val in num:
        sum = val + sum 
    printsum


add(4,5
add(7,4,6
add(10,34,23--------------------- 
9 
17 
67

**kwargs используется, когда мы хотим передать словарь в качестве аргумента функции.

def intro(**data):
    print("\nData type of argument:",type(data))
    for key, value in data.items():
        print("{} is {}".format(key,value))


intro(name="alex",Age=22, Phone=1234567890)
intro(name="louis",Email="[email protected]",Country="Wakanda", Age=25)
--------------------------------------------------------------
Data type of argument: <class 'dict'>
name is alex
Age is 22
Phone is 1234567890

Data type of argument: <class 'dict'>
name is louis
Email is a@gmail.com
Country is Wakanda
Age is 25

28. Объясните методы split(), sub(), subn() модуля re?

split(): этот метод будет разделять строку при совпадении шаблона.

sub(): этот метод используется для замены определенных шаблонов в строке другими строками или последовательностями.

subn(): аналогичен sub(), за исключением того, что он возвращает кортеж с общим количеством замен и новую строку в качестве вывода.

import re
string = "There are two ball in the basket 101"


re.split("\W+",string)
---------------------------------------
['There', 'are', 'two', 'ball', 'in', 'the', 'basket', '101']

re.sub("[^A-Za-z]"," ",string)
----------------------------------------
'There are two ball in the basket'

re.subn("[^A-Za-z]"," ",string)
-----------------------------------------
('There are two ball in the basket', 10)

29. Что такое генератор в Python?

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

Если функция содержит ключевое слово yield, то функция автоматически становится генератором.

# A program to demonstrate the use of generator object with next() A generator function 
def Fun(): 
   yield 1
   yield 2
   yield 3

# x is a generator object 
x = Fun()
print(next(x))
-----------------------------
1
print(next(x))
-----------------------------
2

30. Как перевернуть строку в Python с помощью индексации?

string = 'hello'

string[::-1]
>'olleh'

31. В чем разница между классом и объектом?

Классы считаются чертежами объектов. Первая строка строки в классе называется строкой документа и содержит краткое описание класса.

В Python класс создается с помощью ключевого слова class. Класс содержит комбинации переменных и членов, называемых членами класса.

Объект (Объект) является реальной сущностью. Чтобы создать объект для класса в Python, мы можем использовать obj = CLASS_NAME()

Например: объект = число()

Используя объект класса, мы можем получить доступ ко всем членам класса и работать с ними.

class Person:
    """ This is a Person Class"""
    # varable
    age = 10
    def greets(self):
        print('Hello')


# object
obj = Person()
print(obj.greet)
----------------------------------------
Hello

32. Что вы знаете о себе на уроках Python?

self представляет экземпляр класса.

Используя ключевое слово self, мы можем получить доступ к свойствам и методам класса в Python.

Обратите внимание, что внутри функции класса необходимо использовать self, потому что нет явного синтаксиса для объявления переменных в классе.

33. Какая польза от _init_ в Python?

« init » — это зарезервированный метод в классах Python.

Он называется конструктором и вызывается автоматически всякий раз, когда выполняется код, и в основном используется для инициализации всех переменных класса.

34. Объясните наследование в Python?

Наследование позволяет одному классу приобретать все члены и свойства другого класса. Наследование обеспечивает возможность повторного использования кода, упрощая создание и обслуживание приложений.

Унаследованный класс называется суперклассом, а унаследованный класс называется производным классом/подклассом.

35. Что такое ООП в Python?

Объектно-ориентированное программирование, Абстракция, Инкапсуляция, Наследование, Полиморфизм

36. Что такое абстракция?

Абстракция — это процесс показа сущности или необходимых характеристик объекта внешнему миру и сокрытия всей другой не относящейся к делу информации.

37. Что такое инкапсуляция?

Инкапсуляция (Encapsulation) означает упаковку данных и функций-членов вместе в единое целое.

Он также реализует концепцию сокрытия данных.

38. Что такое полиморфизм?

Полиморфизм означает «множество форм».

Подкласс может определять свое собственное уникальное поведение и по-прежнему использовать ту же функциональность или поведение своего родительского/базового класса.

39. Что такое исправление обезьян в Python?

Исправление Monkey относится к динамическому изменению классов или модулей во время выполнения.

from SomeOtherProduct.SomeModule import SomeClass

def speak(self):
    return "Hello!"

SomeClass.speak = speak

40. Поддерживает ли Python множественное наследование?

Python может поддерживать множественное наследование. Множественное наследование означает, что класс может быть производным от более чем одного родительского класса.

41. Какая функция zip используется в Python?

Функция zip принимает итерируемые объекты, объединяет их в кортеж и возвращает результат.

Синтаксис функции zip(): zip(*iterables)

numbers = [1, 2, 3]
string = ['one', 'two', 'three'] 
result = zip(numbers,string)

print(set(result))
-------------------------------------
{
    
    (3, 'three'), (2, 'two'), (1, 'one')}

42. Объясните функцию map() в Python?

Функция map() применяет данную функцию к повторяемому объекту (списку, кортежу и т. д.) и возвращает результат (объект карты).

Мы также можем передавать несколько итерируемых объектов одновременно в функцию map().

numbers = (1, 2, 3, 4)
result = map(lambda x: x + x, numbers)

print(list(result))

43. Что такое декоратор в Python?

Декораторы — интересная функция Python.

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

def addition(func):
    def inner(a,b):
        print("numbers are",a,"and",b)
        return func(a,b)
    return inner

@addition
def add(a,b):
   print(a+b)

add(5,6)
---------------------------------
numbers are 5 and 6
sum: 11

44. Напишите программу для поиска самого длинного слова в текстовом файле.

def longest_word(filename):
    with open(filename, 'r') as infile:
              words = infile.read().split()
    max_len = len(max(words, key=len))
    return [word for word in words if len(word) == max_len]

print(longest_word('test.txt'))
----------------------------------------------------
['comprehensions']

45. Напишите программу, проверяющую, является ли последовательность палиндромом.

a = input("Enter The sequence")
ispalindrome = a == a[::-1]

ispalindrome
>True

46. ​​Напишите программу для печати первых десяти элементов последовательности Фибоначчи.

fibo = [0,1]
[fibo.append(fibo[-2]+fibo[-1]) for i in range(8)]

fibo
> [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

47. Напишите программу для вычисления частоты слов в файле.

from collections import Counter

def word_count(fname):
        with open(fname) as f:
                return Counter(f.read().split())

print(word_count("test.txt"))

48. Напишите программу для вывода всех простых чисел в заданной последовательности.

lower = int(input("Enter the lower range:"))
upper = int(input("Enter the upper range:"))
list(filter(lambda x:all(x % y != 0 for y in range(2, x)), range(lower, upper)))

-------------------------------------------------
Enter the lower range:10
Enter the upper range:50
[11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]

49. Напишите программу для проверки, является ли число Армстронгом.

Напишите программу, которая проверяет, является ли число Армстронгом

Разделите каждое число по очереди и сложите его куб (количество цифр).

Наконец, если сумма оказывается равной исходному числу, оно называется числом Армстронга.

num = int(input("Enter the number:\n"))
order = len(str(num))

sum = 0
temp = num

while temp > 0:
   digit = temp % 10
   sum += digit ** order
   temp //= 10

if num == sum:
   print(num,"is an Armstrong number")
else:
   print(num,"is not an Armstrong number")

50. Используйте одну строку кода Python, чтобы извлечь все четные и нечетные числа из заданного списка.

a = [1,2,3,4,5,6,7,8,9,10]
odd, even = [el for el in a if el % 2==1], [el for el in a if el % 2==0]

print(odd,even)
> ([1, 3, 5, 7, 9], [2, 4, 6, 8, 10])

Кстати, я хотел бы порекомендовать вам несколько видеоуроков по Python, надеюсь, они вам помогут:

Учебная коллекция Python с нулевой базой

Если у вас есть какие-либо вопросы по статье или другие вопросы о python, вы можете оставить сообщение в области комментариев или написать мне в личные сообщения.

Если вы считаете, что статья, которой я поделился, хороша, вы можете подписаться на меня или поставить лайк статье (/≧▽≦)/

Supongo que te gusta

Origin blog.csdn.net/Modeler_xiaoyu/article/details/128151666
Recomendado
Clasificación