Maison > développement back-end > Tutoriel Python > Or trois, argent quatre, 50 questions essentielles d'entretien Python (collection recommandée)

Or trois, argent quatre, 50 questions essentielles d'entretien Python (collection recommandée)

Libérer: 2023-08-15 14:41:13
avant
1227 Les gens l'ont consulté


Au cours de l'année 2020, Python a remporté le prix annuel du langage de programmation TIOBE et est devenu le langage de programmation le plus populaire au cours de l'année écoulée. Il est largement utilisé dans des domaines tels que la science des données et l'apprentissage automatique.


C'est la saison de recrutement "Golden Three Silver Four" qui a compilé pour vous 50 questions d'entretien Python, ainsi que les réponses correspondantes, pour vous aider à mieux comprendre et. apprendre Python.



▍1. Qu'est-ce que Python ? Pourquoi est-il si populaire ?

Python est un langage de programmation interprété, de haut niveau et à usage général.


Le concept de conception de Python est d'améliorer la lisibilité du code en utilisant les espaces et les lignes vides nécessaires.


Il est populaire en raison de sa syntaxe simple et facile à utiliser.


▍2. Pourquoi l'exécution de Python est-elle lente et comment pouvons-nous l'améliorer ?


La raison pour laquelle le code Python s'exécute lentement est qu'il s'agit d'un langage interprété. Son code est interprété au moment de l'exécution plutôt que compilé dans la langue native.


Pour améliorer la vitesse du code Python, nous pouvons utiliser CPython, Numba, ou nous pouvons également apporter quelques modifications au code.


1. Réduisez l'utilisation de la mémoire.

2. Utilisez les fonctions et les bibliothèques intégrées.

3. Déplacez le calcul en dehors de la boucle.

4. Gardez votre base de code petite.

5. Évitez les cycles inutiles



▍3. Quelles sont les caractéristiques de Python ?


1.

5. Prise en charge d'OOPS

6. Un grand nombre de bibliothèques standards et de modules tiers

7.

8. Structure de données conviviale



▍4.


1. Développement Web

2. Développement d'interface graphique de bureau

3.

5. Développement d'applications

6. Applications basées sur la console

7. Tests de logiciels

8. Automatisation Web

9.

▍5.

Les limites de Python ?

1.

2. Développement mobile

3. Consommation de mémoire (très élevée par rapport aux autres langages)

4. Incompatibilité de deux versions (2,3)

5. les erreurs n'apparaissent qu'au moment de l'exécution)

6. Simplicité



▍6.


Tout d'abord, l'interpréteur lit le code Python et vérifie s'il y a des erreurs de syntaxe ou de formatage.


Si une erreur est détectée, l'exécution est suspendue. Si aucune erreur n'est trouvée, l'interpréteur convertit le code Python en sa forme équivalente, ou code octet.


Le bytecode est ensuite envoyé à la machine virtuelle Python (PVM), où le code Python sera exécuté et si des erreurs sont trouvées, l'exécution sera suspendue, sinon les résultats seront affichés dans la fenêtre de sortie.


Or trois, argent quatre, 50 questions essentielles d'entretien Python (collection recommandée)



▍7.


La mémoire Python est gérée par l'espace libre privé de Python.


Tous les objets et structures de données Python sont situés dans un tas privé. L'allocation du tas privé relève de la responsabilité du gestionnaire de mémoire Python.


Python dispose également d'un garbage collector intégré qui peut récupérer la mémoire inutilisée et libérer de la mémoire afin qu'elle puisse être utilisée pour l'espace libre.



▍ 8. Expliquez les structures de données intégrées de Python ?

Il existe quatre principaux types de structures de données en Python.


Liste : Une liste est une collection d'éléments de données hétérogènes allant des entiers aux chaînes ou même à une autre liste. Les listes sont modifiables. Les listes font le travail de la plupart des structures de données de collection dans d'autres langues. Les listes sont définies entre crochets [ ].

Par exemple : a = [1,2,3,4]


Ensemble : Un ensemble est une collection non ordonnée d'éléments uniques. Des opérations d'ensemble telles que union|, intersection& et différence peuvent être appliquées aux ensembles. Les ensembles sont immuables. () est utilisé pour représenter un ensemble.

Par exemple : a = {1,2,3,4}


Tuples : les tuples Python fonctionnent exactement comme les listes Python, sauf qu'ils sont immuables. () est utilisé pour définir des tuples.

Par exemple : a = (1,2,3,4)


Dictionnaire : Un dictionnaire est une collection de paires clé-valeur. C'est similaire aux cartes de hachage dans d'autres langues. Dans un dictionnaire, les clés sont des objets uniques et immuables.

Par exemple : a = {'numéro' : [1,2,3,4]}



▍9, Explication //, % , * *opérateur ?


//(Floor Division) - Il s'agit d'un opérateur de division qui renvoie la partie entière de la division.

Exemple : 5 // 2 = 2


% (modulo) - Renvoie le reste de la division.

Exemple : 5 % 2 = 1


** (Puissance) - Il effectue des calculs exponentiels sur l'opérateur. a ** b représente a élevé à la puissance bième.

Par exemple : 5**2 = 25, 5**3 = 125



▍10. Quelle est la différence entre les guillemets simples et les guillemets doubles dans Python ?


Il n'y a aucune différence entre l'utilisation de guillemets simples (' ') ou de guillemets doubles (" ") en Python, les deux peuvent être utilisés pour représenter une chaîne.


En plus de simplifier le développement des programmeurs et d'éviter les erreurs, ces deux expressions générales ont également l'avantage de réduire l'utilisation de caractères d'échappement et de rendre le programme plus concis, plus clair.



▍11. La différence entre ajouter, insérer et étendre en Python ?


append : Ajouter de nouveaux éléments à la fin de la liste.

insérer : Ajoutez un élément à une position spécifique dans la liste.

étendre : étendre une liste en ajoutant une nouvelle liste.


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,4,5,6]

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

numbers.append([4,5])
>[1,2,7,4,5,6,7,8,9,[4,5]]
Copier après la connexion



▍12. Que sont pause, continuer et passer ?


break : Cela entraînera la sortie du programme de la boucle lorsque la condition est remplie.

continue : reviendra au début de la boucle, ce qui amènera le programme à ignorer toutes les instructions restantes dans l'itération de boucle en cours.

pass : oblige le programme à transmettre toutes les instructions restantes sans exécution.



▍13、区分Python中的remove,del和pop?


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
Copier après la connexion



▍14、什么是switch语句。如何在Python中创建switch语句?


switch语句是实现多分支选择功能,根据列表值测试变量。

switch语句中的每个值都被称为一个case。

在Python中,没有内置switch函数,但是我们可以创建一个自定义的switch语句。

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
Copier après la connexion


▍15、举例说明Python中的range函数?


range:range函数返回从起点到终点的一系列序列。

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
Copier après la connexion



▍16、==和is的区别是?


==比较两个对象或值的相等性

is运算符用于检查两个对象是否属于同一内存对象。


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

lst1 == lst2
>True

lst1 is lst2
>False
Copier après la connexion


▍17、如何更改列表的数据类型?


要将列表的数据类型进行更改,可以使用tuple()或者set()。


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

# 更改为集合
set(lst)    ## {1,2,3,4}
# 更改为元组
tuple(lst)  ## (1,2,3,4,2)
Copier après la connexion



▍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
Copier après la connexion



▍20, Python a-t-il une fonction principale ?


Oui, c'est le cas. Dès que nous exécutons le script Python, il s'exécutera automatiquement.



▍21. Qu'est-ce qu'une fonction lambda ?


Une fonction Lambda est une fonction sur une seule ligne sans nom qui peut avoir n paramètres mais ne peut avoir qu'une seule expression. Également appelées fonctions anonymes.


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

> 11
Copier après la connexion



▍22、iterables和iterators之间的区别?


iterable:可迭代是一个对象,可以对其进行迭代。在可迭代的情况下,整个数据一次存储在内存中。


iterators:迭代器是用来在对象上迭代的对象。它只在被调用时被初始化或存储在内存中。迭代器使用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
Copier après la connexion



▍23、Python中的Map Function是什么?


map函数在对可迭代对象的每一项应用特定函数后,会返回map对象。



▍24、解释Python中的Filter


过滤器函数,根据某些条件从可迭代对象中筛选值。


# 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]
Copier après la connexion



▍25、解释Python中reduce函数的用法?


reduce()函数接受一个函数和一个序列,并在计算后返回数值。


from functools import reduce

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

> 10
Copier après la connexion



▍26. Que sont le décapage et le décapage ?


pickling est le processus de conversion d'objets Python (ou même de code Python) en chaînes.

Le dépickling est le processus inverse de conversion d'une chaîne en objet d'origine.



▍27, Expliquez *arguments et **kwargs ?


*args sont utilisés lorsque nous ne sommes pas sûrs du nombre d'arguments à passer à la fonction.


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


add(4,5)
add(7,4,6)
add(10,34,23)
--------------------- 
9 
17 
57
Copier après la connexion


**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="a@gmail.com",Country="Wakanda", Age=25)
--------------------------------------------------------------
Data type of argument: <class &#39;dict&#39;>
name is alex
Age is 22
Phone is 1234567890

Data type of argument: <class &#39;dict&#39;>
name is louis
Email is a@gmail.com
Country is Wakanda
Age is 25
Copier après la connexion



▍28、解释re模块的split()、sub()、subn()方法


split():只要模式匹配,此方法就会拆分字符串。

sub():此方法用于将字符串中的某些模式替换为其他字符串或序列。

subn():和sub()很相似,不同之处在于它返回一个元组,将总替换计数和新字符串作为输出。


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


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

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

re.subn("[^A-Za-z]"," ",string)
-----------------------------------------
(&#39;There are two ball in the basket&#39;, 10)
Copier après la connexion



▍29、Python中的生成器是什么


生成器(generator)的定义与普通函数类似,生成器使用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
Copier après la connexion



▍30、如何使用索引来反转Python中的字符串?


string = &#39;hello&#39;

string[::-1]
>&#39;olleh&#39;
Copier après la connexion



▍31、类和对象有什么区别?


类(Class)被视为对象的蓝图。类中的第一行字符串称为doc字符串,包含该类的简短描述。


在Python中,使用class关键字可以创建了一个类。一个类包含变量和成员组合,称为类成员。


对象(Object)是真实存在的实体。在Python中为类创建一个对象,我们可以使用obj = CLASS_NAME()

例如:obj = num()


使用类的对象,我们可以访问类的所有成员,并对其进行操作。


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


# object
obj = Person()
print(obj.greet)
----------------------------------------
Hello
Copier après la connexion



▍32、你对Python类中的self有什么了解?


self représente une instance d'une classe.


En utilisant le mot-clé self, on peut accéder aux propriétés et méthodes d'une classe en Python.


Notez que self doit être utilisé dans les fonctions de classe car il n'y a pas de syntaxe explicite pour déclarer des variables dans la classe.



▍33. A quoi sert _init_ en Python ?


"__init__" est une méthode réservée dans les classes Python.


On l'appelle constructeur, il est automatiquement appelé à chaque fois que le code est exécuté, il sert principalement à initialiser toutes les variables de la classe.



▍34. Expliquer l'héritage en Python ?


L'héritage permet à une classe d'obtenir tous les membres et propriétés d'une autre classe. HéritageL'héritage permet la réutilisabilité du code, ce qui facilite la création et la maintenance d'applications.


La classe héritée est appelée une super classe et la classe héritée est appelée une classe/sous-classe dérivée.



▍35. Qu'est-ce que OOPS en Python ?


Programmation orientée objet, Abstraction, Encapsulation, Héritage, Polymorphisme ▍ 36. Qu'est-ce que l'abstraction ?



L'abstraction est le processus consistant à montrer l'essence ou les caractéristiques nécessaires d'un objet au monde extérieur et à cacher toutes les autres informations non pertinentes.



▍37.


L'encapsulation signifie regrouper les données et les fonctions membres dans une unité.


Il met également en œuvre le concept de masquage des données.



▍38. Qu'est-ce que le polymorphisme ?


Polymorphisme signifie « plusieurs formes ».


Une sous-classe peut définir son propre comportement unique tout en partageant la même fonctionnalité ou le même comportement que sa classe parent/base.



▍39. Qu'est-ce que le patching de singe en Python ?


Le correctif Monkey fait référence à la modification dynamique de classes ou de modules au moment de l'exécution.


from SomeOtherProduct.SomeModule import SomeClass

def speak(self):
    return "Hello!"

SomeClass.speak = speak
Copier après la connexion



▍40、Python支持多重继承吗?


Python可以支持多重继承。多重继承意味着,一个类可以从多个父类派生。



▍41、Python中使用的zip函数是什么?


zip函数获取可迭代对象,将它们聚合到一个元组中,然后返回结果。


zip()函数的语法是zip(*iterables)


numbers = [1, 2, 3]
string = [&#39;one&#39;, &#39;two&#39;, &#39;three&#39;] 
result = zip(numbers,string)

print(set(result))
-------------------------------------
{(3, &#39;three&#39;), (2, &#39;two&#39;), (1, &#39;one&#39;)}
Copier après la connexion



▍42、解释Python中map()函数?


map()函数将给定函数应用于可迭代对象(列表、元组等),然后返回结果(map对象)。


我们还可以在map()函数中,同时传递多个可迭代对象。


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

print(list(result))
Copier après la connexion



▍43、Python中的装饰器是什么?


装饰器(Decorator)是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
Copier après la connexion



▍44、编写程序,查找文本文件中最长的单词


def longest_word(filename):
    with open(filename, &#39;r&#39;) 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(&#39;test.txt&#39;))
----------------------------------------------------
[&#39;comprehensions&#39;]
Copier après la connexion



▍45、编写程序,检查序列是否为回文


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

ispalindrome
>True
Copier après la connexion



▍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]
Copier après la connexion



▍47、编写程序,计算文件中单词的出现频率


from collections import Counter

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

print(word_count("test.txt"))
Copier après la connexion



▍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]
Copier après la connexion


▍49、编写程序,检查数字是否为Armstrong


Or trois, argent quatre, 50 questions essentielles d'entretien Python (collection recommandée)


将每个数字依次分离,并累加其立方(位数)。


最后,如果发现总和等于原始数,则称为阿姆斯特朗数(Armstrong)。


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")
Copier après la connexion



▍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])
Copier après la connexion


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:Python当打之年
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal