Ce que les débutants en Python devraient savoir
1. Préface
Bienvenue dans la rubrique "Python Avancé" ! Chaque étudiant qui vient ici devrait avoir acquis de nombreuses connaissances de base en Python et est en train de grandir. Durant cette période, j’ai dû rencontrer beaucoup de confusion et me sentir confus quant à l’orientation future de mes études. Je comprends parfaitement la situation à laquelle vous faites face. J'ai été exposé au langage de programmation Python depuis 2007 et j'utilise Python exclusivement pour tous les travaux de développement depuis 2009 jusqu'à aujourd'hui. En repensant à mon processus d'apprentissage, j'ai rencontré d'innombrables difficultés, et j'ai également été confus et confus. Cette colonne a été créée pour aider les débutants en Python qui étaient aussi confus que moi à l'époque à se sortir du pétrin et à grandir rapidement. J'espère que mon expérience pourra vraiment vous aider.
C'est maintenant une époque bruyante et impétueuse. Nous sommes toujours attirés par les nombreux sujets d’actualité de notre vie, ce qui nous laisse peu de temps et d’opportunités pour une lecture et une réflexion approfondies. Je crois toujours que l'apprentissage nécessite de la concentration et une étude lente, et qu'en même temps, l'apprentissage ne doit pas être trop utilitariste ; La feuille de route de croissance d'un programmeur Python devrait ressembler à ceci : Grammaire de base –> Formation au sens du langage –> Exercices de projet –> Programmeur intermédiaire –> .
Cependant, la feuille de route d'apprentissage de nombreux novices est la suivante : après avoir appris la syntaxe de base, sans comprendre le protocole http et les requêtes asynchrones Ajax, ils étudient avec enthousiasme les robots d'exploration ou, après avoir appris la syntaxe de base, je suis allé sur ; travailler sur la reconnaissance visuelle, et je ne pouvais même pas comprendre la structure des données d'OpenCV ; même après avoir appris la grammaire de base, j'ai directement étudié les réseaux de neurones, et le résultat a été que j'ai dû répéter le processus du début à l'abandon.
Mon conseil aux débutants est de ne pas se précipiter vers le succès, de ne pas viser trop haut, de faire un pas à la fois, de travailler régulièrement et le succès viendra naturellement. Ne pas vous précipiter vers le succès peut éviter des détours. Non seulement cela ne ralentira pas votre croissance, mais cela vous fera gagner du temps. Ne visez pas trop haut, atteignez un objectif, puis fixez-vous l'objectif suivant. Avec un succès et des progrès continus, vous pouvez renforcer votre confiance en vous et stimuler un plus grand intérêt pour l'apprentissage.
Now is better than never, Although never is often better than *right* now.Copier après la connexion
Ceci est une phrase du Zen de Python, traduite Autrement dit, faire quelque chose peut être mieux que ne pas le faire, mais le faire sans réfléchir est pire que ne pas le faire. En effet, avant de commencer à apprendre Python, vous devez connaître quelques connaissances, faire des choix et préparer votre ordinateur.
Python est le fils unique d'Oncle Turtle, mais il a de nombreux cousins, dont plusieurs célèbres. Si vous ne savez pas lequel est le plus convivial pour vous, je vous suggère de choisir le Python direct - même si vous devez avoir affaire à ses autres cousins à l'avenir, il vous sera familier. Il n'est pas recommandé aux débutants de choisir AnacondaPython et ActivePython. À mon avis, la commodité qu'ils offrent ne pose pas autant de problèmes qu'ils amènent les utilisateurs à apprendre.
Cpython
CPython est une implémentation de référence Python et peut être considérée comme une version standardisée de toutes les autres distributions dérivées de Python. CPython est écrit en C par un certain nombre de personnes clés au plus haut niveau décisionnel du langage Python. CPython est le plus conservateur en matière d'optimisation. Bien sûr, ce n'est pas un défaut, mais une orientation de conception. Les responsables de Python espèrent faire de CPython l’implémentation de Python la plus largement compatible et standardisée. CPython convient mieux aux utilisateurs qui nécessitent une compatibilité et une cohérence élevées avec le standard Python. De plus, CPython convient également aux professionnels qui souhaitent utiliser Python de la manière la plus basique et sont prêts à renoncer à une certaine commodité pour ce faire.
Anaconda Python
Anaconda est originaire d'Anaconda Company (anciennement connue sous le nom de Continuum Analytics) et est conçu pour servir les développeurs Python qui ont besoin de l'assistance de fournisseurs commerciaux et disposent de services de support d'entreprise. Les principaux cas d'utilisation d'Anaconda Python incluent les mathématiques, les statistiques, l'ingénierie, l'analyse de données, l'apprentissage automatique et d'autres applications connexes. Anaconda regroupe diverses bibliothèques couramment utilisées dans les scénarios d'utilisation commerciale et scientifique de Python, notamment SciPy, NumPy, Numba, etc., et offre davantage de capacités d'accès aux bibliothèques via un système de gestion de packages personnalisé.
ActivePython
Semblable à Anaconda, ActivePython est également créé et maintenu par une société à but lucratif - ActiveState Corporation. La société vend également des environnements d'exécution multilingues ainsi que l'IDE Komodo multilingue. ActivePython s'adresse principalement aux utilisateurs d'entreprise et aux data scientists - ceux qui souhaitent utiliser le langage Python mais ne veulent pas gaspiller beaucoup d'énergie sur l'assemblage et la gestion de Python. ActivePython utilise le gestionnaire de packages pip standard en Python, mais fournit également des centaines de bibliothèques communes sous la forme de packages compressés certifiés, ainsi que d'autres bibliothèques publiques avec des dépendances tierces telles que la bibliothèque Intel Math Core.
PyPy
PyPy est une alternative à l'interpréteur CPython qui utilise la compilation juste à temps (JIT) pour accélérer l'exécution de Programmes Python. En fonction des tâches réellement effectuées, les améliorations des performances peuvent être significatives. Les plaintes concernant Python, en particulier CPython, tournent principalement autour de sa vitesse. Par défaut, Python s'exécute beaucoup plus lentement que C : l'écart peut même être des centaines de fois plus rapide. PyPy JIT compile le code Python en langage machine, ce qui entraîne une vitesse d'exécution moyenne de 7,7 fois supérieure à celle de CPython. Dans certaines tâches spécifiques, son effet d'accélération peut atteindre 50 fois.
Jython
JVM (Java Virtual Machine) peut être utilisé comme option d'exécution pour plusieurs langagessauf Java. La longue liste comprend Groovy, Scala, Clojure, Kotlin, Python et, bien sûr, Jython. Le plus gros inconvénient de Jython est qu'il ne prend en charge que la version 2.x de Python. La prise en charge de Python 3.x est actuellement en cours de développement, mais cela prendra encore un certain temps. Pour le moment, aucune version pertinente n’a été publiée.
IronPython
Semblable au positionnement par Jython des solutions d'implémentation Python sur JVM, IronPython appartient à un ensemble de runtimes .Net - ou CLR ( Common Language Runtime) - Implémentation Python. IronPython exploite le DLR (Dynamic Language Runtime) du CLR pour permettre aux programmes Python de s'exécuter avec un niveau de dynamique équivalent à CPython. Semblable à Jython, IronPython ne prend actuellement en charge que les versions Python 2.x. Cependant, l'implémentation d'IronPython 3.x est déjà en cours de développement intensif.
Lors du téléchargement depuis le site officiel de Python, veillez à sélectionner la bonne version. S'il est utilisé à des fins d'apprentissage, il n'y a aucun problème pour télécharger la dernière version. S'il est utilisé pour la production, vous devez vous demander si les modules tiers dont vous avez besoin pour le développement prennent en charge la dernière version de Python. N'oubliez pas de cocher les deux cases du bas lors de l'installation, sinon cela entraînera des problèmes lors de l'installation ultérieure du module. Il est recommandé d'utiliser la méthode d'installation par défaut.
Pour apprendre un langage de programmation, vous devez d'abord trouver un outil de développement intégré adapté. une pensée naturelle. pourquoi pas? L'EDI peut terminer automatiquement la tâche, l'exécuter en un seul clic et déboguer avec des points d'arrêt. Utiliser IDE pour développer des projets, c'est comme conduire une voiture avec un intérieur luxueux. Profitez simplement du plaisir de conduire. Qui se soucie du fonctionnement du moteur sous le capot ? Mes jeunes collègues sont également fans des IDE. Ils ont d'abord utilisé pycharm, puis le populaire vscode.
Cependant, je crois toujours que la programmation est comme la conduite automobile, et que les programmeurs sont des conducteurs, et ce sont des conducteurs professionnels, pas des cols blancs qui considèrent la conduite automobile comme une compétence de déplacement. Puisque vous êtes un conducteur professionnel, vous ne pouvez pas vous contenter de porter un nœud papillon et des gants blancs pour conduire une voiture avec des intérieurs luxueux et des configurations haut de gamme. Vous devez plutôt avoir la possibilité d'ouvrir le capot moteur pour les réparations et l'entretien.
Sur la base de ce point de vue, je ne recommande pas aux débutants d'utiliser des outils de développement intégrés dès le début - du moins, n'utilisez pas d'IDE la première semaine. Pour un langage de script interprété comme Python, un éditeur pratique suffit. Sur la plate-forme Linux, vim ou emacs sont tous deux assez bons (si vous connaissez les deux ou l'un d'eux, veuillez accepter mon respect) ; sur la plate-forme Windows, je recommande d'utiliser notepad++. Les avantages pour les débutants en Python d'utiliser un éditeur au lieu d'un IDE sont :
解释型语言的优势,就是可以写一句执行一句,想到哪儿写到哪儿,不必像编译型语言那样得把程序全部写完,编译成功后才能运行。我特别喜欢使用python的IDLE,甚至拿它当计算器用。很多时候,我用IDLE验证代码的写法是否正确,查看模块是否安装成功以及版本号。IDLE支持tab键自动补齐,我经常用这个功能查看某个对象的方法和属性。
>>> import numpy as np>>> np.__version__'1.17.0'>>> np.hypot(3,4)5.0>>> def factorial(n): # 计算n的阶乘 if n == 0: # 递归出口 return 1 return n*factorial(n-1) # 向递归出口方向靠近的自身调用>>> factorial(5)120>>> _*2-100140
小技巧
- tab键自动补齐
- 光标移动到执行过的语句上敲击回车,可以重复这个命令
- 下划线(_)可以获取最后一次执行结果
实际上,IDLE就是一个IDE,你可以用它来创建或打开.py脚本文件,可以编辑、运行和调试。
Linux 平台上,一个 python 源码文件应该以下部分组成。Windows 平台上,可以省略第一项。
解释器声明
编码格式声明
模块注释或文档字符串
模块导入
常量和全局变量声明
顶级定义(函数或类定义)
执行代码
附上一个 demo,仅供参考。更详细的编码规范,请参考拙作《我的 Python 编码规范》。
#!/usr/bin/env python# -*- coding: utf-8 -*-"""通常这里是关于本文档的说明(docstring),须以半角的句号、 问号或惊叹号结尾! 本行之前应当空一行,继续完成关于本文档的说明 如果文档说明可以在一行内结束,结尾的三个双引号不需要换行;否则,就要像下面这样 """import os, timeimport datetimeimport mathimport numpy as npimport xlrd, xlwt, xlutilsimport youth_mongodbimport youth_curl BASE_PATH = r"d:\YouthGit"LOG_FILE = u"运行日志.txt"class GameRoom(object): """对局室""" def __init__(self, name, limit=100, **kwds): """构造函数! name 对局室名字 limit 人数上限 kwds 参数字典 """ passdef craete_and_start(): """创建并启动对局室""" passif __name__ == '__main__': # 开启游戏服务 start()
如果你使用的集成开发工具,那么代码的运行和调试,就完全依赖于工具了。如果你使用编辑器开写代码,那就需要手工运行和调试代码。运行代码分成两步:
第1步,打开一个命令行窗口,路径切换到脚本所在的文件夹。我习惯在脚本所在窗口的空白位置(确保没有选中任何对象),按下shift键点击鼠标右键,在弹出的菜单中选择打开Powershell窗口。如下图所示。
第2步,输入python+空格+脚本文件名,回车即可运行。输入脚本文件名时,按tab可以自动补齐。脚本的运行信息、错误信息、运行结果等,都可以显示在这个窗口中。这是最原始的信息。你在其他开发工具中看到信息,都是对这些信息的再加工。
当然,很多编辑器也支持自定义运行命令,可以实现一键运行python脚本。以Notdpan++为例,点击“运行”->“运行”菜单,在弹出的窗口中输入:
cmd /k cd /d “$(CURRENT_DIRECTORY)” & python “$(FULL_CURRENT_PATH)” & echo. & pause & exitCopier après la connexion
因为转义缘故,复制该命令的话,请检查$符号前面是否有\符号,如有,请删除。接下来,点击“保存”按钮,在弹出的窗口中输入新增命令的名称,比如PyRun,定义快捷键,最后点击“确定”按钮。
完成以上设置后,就可以在Notepad++中使用菜单命令或者快捷键运行Python代码了。
手工调试代码的手段不多,除了 print 信息,几乎只有把调试信息写成调试文件了。听起来,好像问题很严重,其实只是理念和取向不同而已。反过来想,手段单一,不恰好意味着简单、简明吗?十几年来,我一直使用 print 调试,坚信没有比它更好的了。
在python语言的发展过程中,安装和管理第三方模块的方法也历经变化。现在,我们终于等来了pip这个近乎完美的工具。pip除了安装(install)和删除(uninstall)这两大功能,还可以指定模块的安装版本(无需预先删除当前已安装版本),可以显示所有已安装的模块,还可以通过 upgrade 自主升级。
很多同学在使用pip时会遇到各种各样稀奇古怪的问题,我在这里解释一下:
同时安装了py2/py3,将会存在多个版本的pip.exe,你如果直接运行:
pip install <模块名>Copier après la connexion
则有可能因为pip.exe版本不对而出错。正确的做法是指定python版本,-m是python解释器的参数,意思是把pip模块做为脚本运行,完整命令如下:
py -3 -m pip install <模块名>Copier après la connexion
如果你使用的是Anaconda Python,或者你是通过IDE来安装模块,则需要检查它们的配置和设置,情况各有不同,没有统一的解决方案。
如果你的计算机只安装了py2 或者 py3,那么上面两种安装方法应该都没有问题。如果你的电脑找不到pip.exe文件,则可以使用这个命令生成:
python -m ensurepipCopier après la connexion
下面,就以同时安装了py2/py3的计算机为例(如果只安装了py2或py3,需要将下面演示中的py -3替换成python),演示pip模块的用法。不管任何情况,我都建议使用-m参数调用pip模块,而不是直接使用 pip.exe 安装模块。
# 虽然可以这样使用pip安装模块(以numpy为例)PS D:\XufiveGit\wxgl> pip install numpy# 但我建议这样使用pipPS D:\XufiveGit\wxgl> py -3 -m pip install numpy# 删除模块PS D:\XufiveGit\wxgl> py -3 -m pip uninstall numpy# 安装模块,指定版本PS D:\XufiveGit\wxgl> py -3 -m pip install numpy=1.15.0# 自主升级PS D:\XufiveGit\wxgl> py -3 -m pip install --upgrade pip# 显示已安装的模块PS D:\XufiveGit\wxgl> py -3 -m pip list Package Version ----------------- ----------- -pencv-python 4.1.1 argh 0.26.2 attrs 19.1.0 Automat 0.7.0 basemap 1.2.0 beautifulsoup4 4.6.3 bleach 3.1.0 cefpython3 66.0... ...
pip也用来安装本地whl文件:
PS D:\PyPackage\py3> py -3 -m pip install .\basemap-1.2.0-cp37-cp37m-win_amd64.whl
感谢大家的阅读,希望大家收益多多。
推荐教程:《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!