Résumer trente compétences pratiques de Python
Cet article vous apporte des connaissances pertinentes sur python. Il résume principalement certaines techniques d'utilisation courantes dans le processus de programmation, notamment la vérification d'objets, l'utilisation de chaînes multilignes, le renvoi de plusieurs valeurs à partir de fonctions, etc. , j'espère que cela sera utile à tout le monde.
Apprentissage recommandé : Tutoriel Python
Astuce 1 Échangez deux nombres en place
Python offre un moyen intuitif d'attribuer et d'échanger sur une seule ligne. Veuillez vous référer à l'exemple ci-dessous.
x, y = 10, 20print(x, y) x, y = y, xprint(x, y) #1 (10, 20)#2 (20, 10)
L'affectation sur la droite génère un nouveau tuple. Et celui de gauche décompresse immédiatement ce tuple (non cité) dans le nom <a>
和 <b>
.
Une fois l'allocation terminée, le nouveau tuple sera déréférencé et marqué pour le garbage collection. L'échange de variables a également lieu à la fin.
Astuce 2 Chaînage des opérateurs de comparaison.
L'agrégation d'opérateurs de comparaison est une autre astuce qui peut parfois s'avérer utile.
n = 10 result = 1 < n < 20 print(result) # True result = 1 > n <= 9 print(result) # False
Astuce 3 Utilisez l'opérateur ternaire pour l'affectation conditionnelle.
L'opérateur ternaire est un raccourci pour les instructions if-else, également appelées opérateurs conditionnels.
[on_true] if [expression] else [on_false]
Voici quelques exemples que vous pouvez utiliser pour rendre votre code compact et concis.
L'énoncé suivant a la même signification que "si y vaut 9, alors attribuez 10 à x, sinon attribuez 20 à x". Nous pouvons étendre l’enchaînement des opérateurs si besoin.
x = 10 if (y == 9) else 20
De même, nous pouvons faire la même chose avec des objets de classe.
x = (classA if y == 1 else classB)(param1, param2)
Dans l'exemple ci-dessus, classA et classB sont deux classes, dont l'une sera appelée le constructeur de classe.
Ce qui suit est un exemple de non. Ajoutez une condition qui évalue le plus petit nombre.
def small(a, b, c): return a if a <= b and a <= c else (b if b <= a and b <= c else c) print(small(1, 0, 1))print(small(1, 2, 2))print(small(2, 2, 3))print(small(5, 4, 3))#Output#0 #1 #2 #3
Nous pouvons même utiliser l'opérateur ternaire dans les compréhensions de listes.
[m**2 if m > 10 else m**4 for m in range(50)]#=> [0, 1, 16, 81, 256, 625, 1296, 2401, 4096, 6561, 10000, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400, 441, 484, 529, 576, 625, 676, 729, 784, 841, 900, 961, 1024, 1089, 1156, 1225, 1296, 1369, 1444, 1521, 1600, 1681, 1764, 1849, 1936, 2025, 2116, 2209, 2304, 2401]
Astuce 4 Utiliser des chaînes multilignes
La méthode de base consiste à utiliser des barres obliques inverses, qui sont dérivées du langage C.
multiStr = "select * from multi_row \ where row_id < 5"print(multiStr)# select * from multi_row where row_id < 5
Une autre astuce consiste à utiliser des guillemets triples.
multiStr = """select * from multi_row where row_id < 5"""print(multiStr)#select * from multi_row #where row_id < 5
Un problème courant avec les méthodes ci-dessus est le manque d'indentation appropriée. Si nous essayons de mettre en retrait, cela insère des espaces dans la chaîne.
La solution finale consiste donc à diviser la chaîne en plusieurs lignes et à mettre la chaîne entière entre parenthèses.
multiStr= ("select * from multi_row ""where row_id < 5 ""order by age") print(multiStr)#select * from multi_row where row_id < 5 order by age
Astuce 5 Stocker les éléments d'une liste dans une nouvelle variable
On peut utiliser une liste pour initialiser un non. variable. Lors du décompression d'une liste, le nombre de variables ne doit pas dépasser le nombre. éléments dans la liste.
testList = [1,2,3]x, y, z = testListprint(x, y, z)#-> 1 2 3
Astuce 6 Imprimez le chemin du fichier des modules importés
Si vous souhaitez connaître l'emplacement absolu des modules importés dans votre code, utilisez l'astuce suivante.
import threading import socketprint(threading)print(socket)#1- <module 'threading' from '/usr/lib/python2.7/threading.py'>#2- <module 'socket' from '/usr/lib/python2.7/socket.py'>
Astuce 7 Utilisez l'opérateur interactif « _ »
C'est une fonctionnalité utile que beaucoup d'entre nous ne connaissent pas.
Dans la console Python, chaque fois que nous testons une expression ou appelons une fonction, le résultat est envoyé au nom temporaire _ (trait de soulignement).
>>> 2 + 13>>> _3>>> print _3
"_" fait référence à la sortie de la dernière expression exécutée.
Astuce 8 Compréhension de dictionnaire/ensemble
Tout comme nous utilisons la compréhension de liste, nous pouvons également utiliser la compréhension de dictionnaire/ensemble. Ils sont faciles à utiliser et tout aussi efficaces. Voici un exemple.
testDict = {i: i * i for i in xrange(10)} testSet = {i * 2 for i in xrange(10)}print(testSet)print(testDict) #set([0, 2, 4, 6, 8, 10, 12, 14, 16, 18]) #{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}
Remarque - La seule différence entre les deux déclarations est <:>. De plus, pour exécuter le code ci-dessus dans Python3, remplacez-le par .
Astuce 9 Scripts de débogage
Nous pouvons définir des points d'arrêt dans les scripts Python à l'aide du module. Veuillez suivre l'exemple ci-dessous.
import pdb pdb.set_trace()
Nous pouvons spécifier
Astuce 10 Configurer le partage de fichiers
Python permet d'exécuter un serveur HTTP, que vous pouvez utiliser pour partager des fichiers à partir de la racine du serveur. Vous trouverez ci-dessous la commande pour démarrer le serveur.
Python 2
python -m SimpleHTTPServer
Python 3
python3 -m http.server
La commande ci-dessus démarrera le serveur sur le port par défaut 8000. Vous pouvez également utiliser un port personnalisé en le passant comme dernier paramètre à la commande ci-dessus.
Astuce 11 Inspecter des objets en Python
Nous pouvons inspecter des objets en Python en appelant la méthode dir(). Ceci est un exemple simple.
test = [1, 3, 5, 7]print( dir(test) )
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
Astuce 12 Simplifiez l'instruction if
Pour valider plusieurs valeurs, nous pouvons le faire de la manière suivante.
if m in [1,3,5,7]:
Au lieu de :
if m==1 or m==3 or m==5 or m==7:
Alternativement, nous pouvons utiliser '{1,3,5,7}' au lieu de '[1,3,5,7]' comme opérateur 'in' puisque 'set' peut être passé O(1) pour accéder à chaque élément.
Astuce 13 Détecter la version de Python au moment de l'exécution
Parfois, nous pouvons ne pas vouloir exécuter notre programme si le moteur Python actuellement en cours d'exécution est inférieur à la version prise en charge. Pour ce faire, vous pouvez utiliser l'extrait de code suivant. Il imprime également la version Python actuellement utilisée dans un format lisible par l'homme.
import sys#Detect the Python version currently in use.if not hasattr(sys, "hexversion") or sys.hexversion != 50660080: print("Sorry, you aren't running on Python 3.5\n") print("Please upgrade to 3.5.\n") sys.exit(1) #Print Python version in a readable format.print("Current Python version: ", sys.version)
Alternativement, vous pouvez remplacer sys.hexversion!= 50660080 par sys.version_info >= (3, 5) dans le code ci-dessus. C’est le conseil d’un lecteur averti.
Sortie lors de l'exécution sur Python 2.7.
Python 2.7.10 (default, Jul 14 2015, 19:46:27)[GCC 4.8.2] on linux Sorry, you aren't running on Python 3.5Please upgrade to 3.5.
在 Python 3.5 上运行时的输出。
Python 3.5.1 (default, Dec 2015, 13:05:11)[GCC 4.8.2] on linux Current Python version: 3.5.2 (default, Aug 22 2016, 21:11:05) [GCC 5.3.0]
技巧14 组合多个字符串
如果您想连接列表中所有可用的标记,请参见以下示例。
>>> test = ['I', 'Like', 'Python', 'automation']
现在,让我们从上面给出的列表中的元素创建一个字符串。
>>> print ''.join(test)
技巧15 反转 string/list 的四种方法
反转列表本身
testList = [1, 3, 5]testList.reverse()print(testList)#-> [5, 3, 1]
在循环中迭代时反转
for element in reversed([1,3,5]): print(element)#1-> 5#2-> 3#3-> 1
反转一个字符串
"Test Python"[::-1]
这使输出为“nohtyP tseT”
使用切片反转列表
[1, 3, 5][::-1]
上面的命令将输出 [5, 3, 1]。
技巧16 玩枚举
使用枚举器,在循环中很容易找到索引。
testlist = [10, 20, 30]for i, value in enumerate(testlist): print(i, ': ', value)#1-> 0 : 10#2-> 1 : 20#3-> 2 : 30
技巧17 在 Python 中使用枚举。
我们可以使用以下方法来创建枚举定义。
class Shapes: Circle, Square, Triangle, Quadrangle = range(4)print(Shapes.Circle)print(Shapes.Square)print(Shapes.Triangle)print(Shapes.Quadrangle)#1-> 0#2-> 1#3-> 2#4-> 3
技巧18 从函数返回多个值。
支持此功能的编程语言并不多。但是,Python 中的函数确实会返回多个值。
请参考以下示例以查看它的工作情况。
# function returning multiple values.def x(): return 1, 2, 3, 4# Calling the above function.a, b, c, d = x()print(a, b, c, d)
#-> 1 2 3 4
技巧19 使用 splat 运算符解包函数参数。
splat 运算符提供了一种解压参数列表的艺术方式。为清楚起见,请参阅以下示例。
def test(x, y, z): print(x, y, z)testDict = {'x': 1, 'y': 2, 'z': 3} testList = [10, 20, 30]test(*testDict)test(**testDict)test(*testList)#1-> x y z#2-> 1 2 3#3-> 10 20 30
技巧20 使用字典来存储 switch。
我们可以制作一个字典存储表达式。
stdcalc = { 'sum': lambda x, y: x + y, 'subtract': lambda x, y: x - y}print(stdcalc['sum'](9,3))print(stdcalc['subtract'](9,3))#1-> 12#2-> 6
技巧21 计算一行中任意数字的阶乘。
Python 2.x.
result = (lambda k: reduce(int.__mul__, range(1,k+1),1))(3)print(result)#-> 6
Python 3.x.
import functools result = (lambda k: functools.reduce(int.__mul__, range(1,k+1),1))(3)print(result)
#-> 6
技巧22 查找列表中出现频率最高的值。
test = [1,2,3,4,2,2,3,1,4,4,4]print(max(set(test), key=test.count))#-> 4
技巧23 重置递归限制。
Python 将递归限制限制为 1000。我们可以重置它的值。
import sys x=1001print(sys.getrecursionlimit())sys.setrecursionlimit(x)print(sys.getrecursionlimit())#1-> 1000#2-> 1001
请仅在需要时应用上述技巧。
技巧24 检查对象的内存使用情况。
在 Python 2.7 中,32 位整数消耗 24 字节,而在 Python 3.5 中使用 28 字节。为了验证内存使用情况,我们可以调用 方法。
Python 2.7.
import sys x=1print(sys.getsizeof(x))#-> 24
Python 3.5.
import sys x=1print(sys.getsizeof(x))#-> 28
技巧25 使用 __slots__ 减少内存开销。
你有没有观察到你的 Python 应用程序消耗了大量资源,尤其是内存?这是使用<__slots__>
类变量在一定程度上减少内存开销的一种技巧。
import sysclass FileSystem(object): def __init__(self, files, folders, devices): self.files = files self.folders = folders self.devices = devicesprint(sys.getsizeof( FileSystem ))class FileSystem1(object): __slots__ = ['files', 'folders', 'devices'] def __init__(self, files, folders, devices): self.files = files self.folders = folders self.devices = devicesprint(sys.getsizeof( FileSystem1 ))#In Python 3.5#1-> 1016#2-> 888
显然,您可以从结果中看到内存使用量有所节省。但是当一个类的内存开销不必要地大时,你应该使用 __slots__
。仅在分析应用程序后执行此操作。否则,您将使代码难以更改并且没有真正的好处。
技巧26 Lambda 模仿打印功能。
import sys lprint=lambda *args:sys.stdout.write(" ".join(map(str,args)))lprint("python", "tips",1000,1001)#-> python tips 1000 1001
技巧27 从两个相关序列创建字典。
t1 = (1, 2, 3)t2 = (10, 20, 30)print(dict (zip(t1,t2)))#-> {1: 10, 2: 20, 3: 30}
技巧28 在线搜索字符串中的多个前缀。
print("http://www.baidu.com".startswith(("http://", "https://")))print("https://juejin.cn".endswith((".com", ".cn")))#1-> True#2-> True
技巧29 形成一个统一的列表,不使用任何循环。
import itertools test = [[-1, -2], [30, 40], [25, 35]]print(list(itertools.chain.from_iterable(test)))#-> [-1, -2, 30, 40, 25, 35]
如果您有一个包含嵌套列表或元组作为元素的输入列表,请使用以下技巧。但是,这里的限制是它使用了 for 循环。
def unifylist(l_input, l_target): for it in l_input: if isinstance(it, list): unifylist(it, l_target) elif isinstance(it, tuple): unifylist(list(it), l_target) else: l_target.append(it) return l_target test = [[-1, -2], [1,2,3, [4,(5,[6,7])]], (30, 40), [25, 35]]print(unifylist(test,[]))#Output => [-1, -2, 1, 2, 3, 4, 5, 6, 7, 30, 40, 25, 35]
统一包含列表和元组的列表的另一种更简单的方法是使用 Python 的 < more_itertools > 包。它不需要循环。只需执行 < pip install more_itertools >,如果还没有的话。
import more_itertools test = [[-1, -2], [1, 2, 3, [4, (5, [6, 7])]], (30, 40), [25, 35]]print(list(more_itertools.collapse(test)))#Output=> [-1, -2, 1, 2, 3, 4, 5, 6, 7, 30, 40, 25, 35]
技巧30 在 Python 中实现真正的 switch-case 语句。
这是使用字典来模仿 switch-case 构造的代码。
def xswitch(x): return xswitch._system_dict.get(x, None) xswitch._system_dict = {'files': 10, 'folders': 5, 'devices': 2}print(xswitch('default'))print(xswitch('devices'))#1-> None#2-> 2
推荐学习:python学习教程
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP et Python ont leurs propres avantages et inconvénients, et le choix dépend des besoins du projet et des préférences personnelles. 1.Php convient au développement rapide et à la maintenance des applications Web à grande échelle. 2. Python domine le domaine de la science des données et de l'apprentissage automatique.

Python et JavaScript ont leurs propres avantages et inconvénients en termes de communauté, de bibliothèques et de ressources. 1) La communauté Python est amicale et adaptée aux débutants, mais les ressources de développement frontal ne sont pas aussi riches que JavaScript. 2) Python est puissant dans les bibliothèques de science des données et d'apprentissage automatique, tandis que JavaScript est meilleur dans les bibliothèques et les cadres de développement frontaux. 3) Les deux ont des ressources d'apprentissage riches, mais Python convient pour commencer par des documents officiels, tandis que JavaScript est meilleur avec MDNWEBDOCS. Le choix doit être basé sur les besoins du projet et les intérêts personnels.

Activer l'accélération du GPU Pytorch sur le système CentOS nécessite l'installation de versions CUDA, CUDNN et GPU de Pytorch. Les étapes suivantes vous guideront tout au long du processus: CUDA et CUDNN Installation détermineront la compatibilité de la version CUDA: utilisez la commande NVIDIA-SMI pour afficher la version CUDA prise en charge par votre carte graphique NVIDIA. Par exemple, votre carte graphique MX450 peut prendre en charge CUDA11.1 ou plus. Téléchargez et installez Cudatoolkit: visitez le site officiel de Nvidiacudatoolkit et téléchargez et installez la version correspondante selon la version CUDA la plus élevée prise en charge par votre carte graphique. Installez la bibliothèque CUDNN:

Docker utilise les fonctionnalités du noyau Linux pour fournir un environnement de fonctionnement d'application efficace et isolé. Son principe de travail est le suivant: 1. Le miroir est utilisé comme modèle en lecture seule, qui contient tout ce dont vous avez besoin pour exécuter l'application; 2. Le Système de fichiers Union (UnionFS) empile plusieurs systèmes de fichiers, ne stockant que les différences, l'économie d'espace et l'accélération; 3. Le démon gère les miroirs et les conteneurs, et le client les utilise pour l'interaction; 4. Les espaces de noms et les CGROUP implémentent l'isolement des conteneurs et les limitations de ressources; 5. Modes de réseau multiples prennent en charge l'interconnexion du conteneur. Ce n'est qu'en comprenant ces concepts principaux que vous pouvez mieux utiliser Docker.

Minio Object Storage: Déploiement haute performance dans le système Centos System Minio est un système de stockage d'objets distribué haute performance développé sur la base du langage Go, compatible avec Amazons3. Il prend en charge une variété de langages clients, notamment Java, Python, JavaScript et GO. Cet article introduira brièvement l'installation et la compatibilité de Minio sur les systèmes CentOS. Compatibilité de la version CentOS Minio a été vérifiée sur plusieurs versions CentOS, y compris, mais sans s'y limiter: CentOS7.9: fournit un guide d'installation complet couvrant la configuration du cluster, la préparation de l'environnement, les paramètres de fichiers de configuration, le partitionnement du disque et la mini

La formation distribuée par Pytorch sur le système CentOS nécessite les étapes suivantes: Installation de Pytorch: La prémisse est que Python et PIP sont installés dans le système CentOS. Selon votre version CUDA, obtenez la commande d'installation appropriée sur le site officiel de Pytorch. Pour la formation du processeur uniquement, vous pouvez utiliser la commande suivante: pipinstalltorchtorchVisionTorChaudio Si vous avez besoin d'une prise en charge du GPU, assurez-vous que la version correspondante de CUDA et CUDNN est installée et utilise la version Pytorch correspondante pour l'installation. Configuration de l'environnement distribué: la formation distribuée nécessite généralement plusieurs machines ou des GPU multiples uniques. Lieu

Lors de l'installation de Pytorch sur le système CentOS, vous devez sélectionner soigneusement la version appropriée et considérer les facteurs clés suivants: 1. Compatibilité de l'environnement du système: Système d'exploitation: Il est recommandé d'utiliser CentOS7 ou plus. CUDA et CUDNN: La version Pytorch et la version CUDA sont étroitement liées. Par exemple, Pytorch1.9.0 nécessite CUDA11.1, tandis que Pytorch2.0.1 nécessite CUDA11.3. La version CUDNN doit également correspondre à la version CUDA. Avant de sélectionner la version Pytorch, assurez-vous de confirmer que des versions compatibles CUDA et CUDNN ont été installées. Version Python: branche officielle de Pytorch

Python excelle dans l'automatisation, les scripts et la gestion des tâches. 1) Automatisation: La sauvegarde du fichier est réalisée via des bibliothèques standard telles que le système d'exploitation et la fermeture. 2) Écriture de script: utilisez la bibliothèque PSUTIL pour surveiller les ressources système. 3) Gestion des tâches: utilisez la bibliothèque de planification pour planifier les tâches. La facilité d'utilisation de Python et la prise en charge de la bibliothèque riche en font l'outil préféré dans ces domaines.
