Heim  >  Artikel  >  Backend-Entwicklung  >  Was Python-Anfänger wissen sollten

Was Python-Anfänger wissen sollten

烟雨青岚
烟雨青岚Original
2020-06-17 12:54:302803Durchsuche

Was Python-Anfänger wissen sollten

Was Python-Anfänger wissen sollten

1. Vorwort

Willkommen in der Rubrik „Python Advanced“! Jeder Student, der hierher kommt, sollte grob gesagt viele Grundkenntnisse in Python erlernt haben und ist dabei, erwachsen zu werden. In dieser Zeit muss ich auf große Verwirrung gestoßen sein und war verwirrt über die zukünftige Ausrichtung meines Studiums. Ich verstehe die Situation, in der Sie sich befinden, voll und ganz. Ich bin seit 2007 mit der Programmiersprache Python vertraut und verwende seit 2009 bis heute ausschließlich Python für alle Entwicklungsarbeiten. Wenn ich auf meinen Lernprozess zurückblicke, bin ich auf unzählige Schwierigkeiten gestoßen und war auch verwirrt und verwirrt. Diese Kolumne wurde genau dazu erstellt, um Python-Anfängern, die genauso verwirrt waren wie ich damals, zu helfen, aus Schwierigkeiten herauszukommen und schnell zu wachsen. Ich hoffe, meine Erfahrung kann Dir wirklich weiterhelfen.

2. Setzen Sie Lernziele klar, streben Sie nicht nach Erfolg und streben Sie nicht zu hoch

Jetzt ist eine laute und ungestüme Zeit. Wir fühlen uns immer wieder von den zahlreichen aktuellen Themen in unserem Leben angezogen und lassen wenig Zeit und Gelegenheit für tiefgründiges Lesen und Nachdenken. Ich glaube immer, dass Lernen Konzentration und langsames Lernen erfordert und gleichzeitig langfristig ist. Dem Lernen sollte nicht zu viel Utilitarismus beigemessen werden. Die Wachstums-Roadmap eines Python-Programmierers sollte wie folgt aussehen: Grundlegende Grammatik –> .
Was Python-Anfänger wissen solltenDer Lernfahrplan vieler Anfänger sieht jedoch so aus: Nachdem sie die grundlegende Syntax gelernt haben, ohne das http-Protokoll und die asynchronen Ajax-Anfragen zu verstehen, studieren sie aufgeregt Crawler, oder nachdem sie die grundlegende Syntax gelernt haben, bin ich zugegangen Ich arbeitete an der visuellen Erkennung und konnte die Datenstruktur von OpenCV nicht einmal verstehen, selbst nachdem ich die grundlegende Grammatik gelernt hatte. Ich habe das neuronale Netzwerk direkt studiert, und das Ergebnis war, dass ich den Prozess vom Anfang bis zum Aufgeben wiederholen musste.
Was Python-Anfänger wissen solltenMein Rat an Anfänger ist, den Erfolg nicht zu überstürzen, sich nicht zu hohe Ziele zu setzen, einen Schritt nach dem anderen zu machen, stetig zu arbeiten, dann stellt sich der Erfolg von selbst ein. Wenn Sie nicht auf den Erfolg drängen, können Sie Umwege vermeiden. Dies wird Ihr Wachstum nicht nur nicht verlangsamen, sondern Ihnen auch Zeit sparen. Zielen Sie nicht zu hoch, erreichen Sie ein Ziel und setzen Sie sich dann das nächste Ziel. Durch kontinuierlichen Erfolg und Fortschritt können Sie Selbstvertrauen aufbauen und ein stärkeres Interesse am Lernen wecken.

3. Bevor Sie mit dem Erlernen von Python beginnen, müssen Sie einige Vorbereitungen treffen

Now is better than never,
Although never is often better than *right* now.

Dies ist ein übersetzter Satz aus dem Zen von Python Das heißt, etwas zu tun ist vielleicht besser, als es nicht zu tun, aber es ohne nachzudenken zu tun ist schlimmer, als es nicht zu tun. Bevor Sie mit dem Erlernen von Python beginnen, müssen Sie sich über einige Hintergrundinformationen informieren, einige Entscheidungen treffen und Ihren Computer vorbereiten.

Verschiedene Distributionen von 2.1 Python

Python ist der einzige Sohn von Onkel Turtle, aber er hat viele Cousins, darunter mehrere berühmte. Wenn Sie sich nicht sicher sind, welches für Sie freundlicher ist, empfehle ich Ihnen, das direkte Python zu wählen – selbst wenn Sie sich in Zukunft mit seinen anderen Cousins ​​befassen müssen, wird es Ihnen vertraut sein. Es wird Anfängern nicht empfohlen, sich für AnacondaPython und ActivePython zu entscheiden. Meiner Meinung nach ist der Komfort, den sie bieten, nicht so problematisch, wie sie den Benutzern das Lernen ermöglichen.

Cpython

CPython ist eine Python-Referenzimplementierung und kann als standardisierte Version aller anderen von Python abgeleiteten Distributionen angesehen werden. CPython wird in C von einer Reihe von Schlüsselpersonen auf der obersten Entscheidungsebene der Python-Sprache geschrieben. CPython ist bei der Optimierung am konservativsten. Dabei handelt es sich natürlich nicht um einen Mangel, sondern um eine Designorientierung. Python-Betreuer hoffen, CPython zur am weitesten kompatiblen und standardisierten Implementierung von Python zu machen. CPython eignet sich am besten für Benutzer, die eine hohe Kompatibilität und Konsistenz mit dem Python-Standard benötigen. Darüber hinaus eignet sich CPython auch für Profis, die Python auf einfachste Weise nutzen möchten und dafür bereit sind, auf Komfort zu verzichten.

Anaconda Python

Anaconda stammt von der Anaconda Company (früher bekannt als Continuum Analytics) und ist für Python-Entwickler konzipiert, die Unterstützung von kommerziellen Anbietern benötigen und über Supportdienste für Unternehmen verfügen. Zu den wichtigsten Anwendungsfällen für Anaconda Python gehören Mathematik, Statistik, Ingenieurwesen, Datenanalyse, maschinelles Lernen und andere verwandte Anwendungen. Anaconda bündelt verschiedene häufig verwendete Bibliotheken in Pythons kommerziellen und wissenschaftlichen Nutzungsszenarien – darunter SciPy, NumPy, Numba usw. – und bietet durch ein angepasstes Paketverwaltungssystem mehr Bibliothekszugriffsmöglichkeiten.

ActivePython

Ähnlich wie Anaconda wird auch ActivePython von einem gewinnorientierten Unternehmen erstellt und verwaltet – der ActiveState Corporation. Das Unternehmen vertreibt außerdem mehrsprachige Laufzeitumgebungen sowie die mehrsprachige Komodo-IDE. ActivePython richtet sich hauptsächlich an Unternehmensanwender und Datenwissenschaftler – diejenigen, die die Python-Sprache verwenden möchten, aber nicht viel Energie für die Zusammenstellung und Verwaltung von Python verschwenden möchten. ActivePython verwendet den regulären Pip-Paketmanager in Python, stellt aber auch Hunderte gängiger Bibliotheken in Form zertifizierter komprimierter Pakete sowie einige andere öffentliche Bibliotheken mit Abhängigkeiten von Drittanbietern wie die Intel Math Core Library bereit.

PyPy

PyPy ist eine Alternative zum CPython-Interpreter, der die Just-in-Time-Kompilierung (JIT) nutzt, um die Ausführung von zu beschleunigen Python-Programme. Abhängig von den tatsächlich ausgeführten Aufgaben können die Leistungsverbesserungen erheblich sein. Beschwerden über Python, insbesondere CPython, drehen sich hauptsächlich um seine Geschwindigkeit. Standardmäßig läuft Python viel langsamer als C – die Lücke kann sogar hunderte Male schneller sein. PyPy JIT kompiliert Python-Code in Maschinensprache, was zu einer durchschnittlichen Laufgeschwindigkeit führt, die 7,7-mal höher ist als die von CPython. Bei einigen spezifischen Aufgaben kann der Beschleunigungseffekt das 50-fache erreichen.

Jython

JVM (Java Virtual Machine) kann als Laufzeitoption für mehrere Sprachen außer Java verwendet werden. Die lange Liste umfasst Groovy, Scala, Clojure, Kotlin, Python und ja, natürlich Jython. Der größte Nachteil von Jython besteht darin, dass es nur die 2.x-Version von Python unterstützt. Die Unterstützung für Python 3.x befindet sich derzeit in der Entwicklung, wird aber noch einige Zeit in Anspruch nehmen. Derzeit ist keine entsprechende Version veröffentlicht.

IronPython

Ähnlich wie Jythons Positionierung von Python-Implementierungslösungen auf JVM gehört IronPython zu einer Reihe von .Net-Laufzeiten – oder CLR ( Common Language Runtime) – Python-Implementierung. IronPython nutzt die DLR (Dynamic Language Runtime) der CLR, um die Ausführung von Python-Programmen mit einem Dynamikniveau zu ermöglichen, das CPython entspricht. Ähnlich wie Jython unterstützt IronPython derzeit nur Python 2.x-Versionen. Die IronPython 3.x-Implementierung befindet sich jedoch bereits in intensiver Entwicklung.

2.2 Python installieren

Achten Sie beim Herunterladen von der offiziellen Python-Website darauf, die richtige Version auszuwählen. Wenn es zum Lernen verwendet wird, ist es kein Problem, die neueste Version herunterzuladen. Wenn es für die Produktion verwendet wird, sollten Sie überlegen, ob die Module von Drittanbietern, die Sie für die Entwicklung benötigen, die neueste Version von Python unterstützen. Vergessen Sie nicht, bei der Installation die beiden unteren Kontrollkästchen zu aktivieren, da es sonst bei der späteren Modulinstallation zu Problemen kommen kann. Es wird empfohlen, die Standardinstallationsmethode zu verwenden.
Was Python-Anfänger wissen sollten

2.3 Wählen Sie ein geeignetes Entwicklungstool

Um eine Programmiersprache zu lernen, müssen Sie zunächst ein geeignetes integriertes Entwicklungstool finden ein natürlicher Gedanke. Warum nicht? Die IDE kann die Aufgabe automatisch abschließen, mit einem Klick ausführen und mit Haltepunkten debuggen. Die Verwendung von IDE zur Entwicklung von Projekten ist wie das Fahren eines Autos mit luxuriösem Innenraum. Wen interessiert es, wie der Motor unter der Haube funktioniert? Meine jungen Kollegen sind ebenfalls Fans von IDEs. Sie verwendeten zunächst Pycharm und später das beliebte vscode.

Allerdings glaube ich immer, dass Programmieren wie Autofahren ist und Programmierer Fahrer sind, und sie sind Berufskraftfahrer und keine Angestellten, die Autofahren als Pendlerfähigkeit betrachten. Als Berufskraftfahrer können Sie sich nicht mit dem Tragen einer Fliege und weißen Handschuhen zufrieden geben, um ein Auto mit luxuriöser Innenausstattung und High-End-Ausstattung zu fahren. Stattdessen müssen Sie die Möglichkeit haben, die Motorhaube für Reparaturen und Wartungsarbeiten zu öffnen.

Aus dieser Sicht empfehle ich Anfängern nicht, von Anfang an integrierte Entwicklungstools zu verwenden – zumindest in der ersten Woche keine IDEs zu verwenden. Für eine interpretierte Skriptsprache wie Python reicht ein praktischer Editor aus. Auf der Linux-Plattform sind beide gut genug (wenn Sie mit beiden oder einem davon vertraut sind, akzeptieren Sie bitte meinen Respekt); auf der Windows-Plattform empfehle ich die Verwendung von Notepad++. Die Vorteile für Python-Anfänger, einen Editor anstelle einer IDE zu verwenden, sind:

  1. 专注于python本身,而不是被工具使用问题所困扰。君不见,知乎上关于pycharm和vscode的使用说明、常见问题的解决方案,多得几乎超过了讨论python本身
  2. 手工运行代码,可以更直观、更深刻地了解脚本的解释执行过程
  3. 手工调试代码,有助于代码优化,提高代码把控能力
  4. 可以更好地使用pip安装和管理第三方模块

3. 习惯使用IDLE,这是学习python最好的方式

解释型语言的优势,就是可以写一句执行一句,想到哪儿写到哪儿,不必像编译型语言那样得把程序全部写完,编译成功后才能运行。我特别喜欢使用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

小技巧

  1. tab键自动补齐
  2. 光标移动到执行过的语句上敲击回车,可以重复这个命令
  3. 下划线(_)可以获取最后一次执行结果

实际上,IDLE就是一个IDE,你可以用它来创建或打开.py脚本文件,可以编辑、运行和调试。

Was Python-Anfänger wissen sollten

4. 严格遵从编码规范

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()

5. 代码的运行、调试

如果你使用的集成开发工具,那么代码的运行和调试,就完全依赖于工具了。如果你使用编辑器开写代码,那就需要手工运行和调试代码。运行代码分成两步:

第1步,打开一个命令行窗口,路径切换到脚本所在的文件夹。我习惯在脚本所在窗口的空白位置(确保没有选中任何对象),按下shift键点击鼠标右键,在弹出的菜单中选择打开Powershell窗口。如下图所示。
Was Python-Anfänger wissen sollten

第2步,输入python+空格+脚本文件名,回车即可运行。输入脚本文件名时,按tab可以自动补齐。脚本的运行信息、错误信息、运行结果等,都可以显示在这个窗口中。这是最原始的信息。你在其他开发工具中看到信息,都是对这些信息的再加工。

当然,很多编辑器也支持自定义运行命令,可以实现一键运行python脚本。以Notdpan++为例,点击“运行”->“运行”菜单,在弹出的窗口中输入:

cmd /k cd /d “$(CURRENT_DIRECTORY)” & python “$(FULL_CURRENT_PATH)” & echo. & pause & exit

因为转义缘故,复制该命令的话,请检查$符号前面是否有\符号,如有,请删除。接下来,点击“保存”按钮,在弹出的窗口中输入新增命令的名称,比如PyRun,定义快捷键,最后点击“确定”按钮。
Was Python-Anfänger wissen sollten

完成以上设置后,就可以在Notepad++中使用菜单命令或者快捷键运行Python代码了。

手工调试代码的手段不多,除了 print 信息,几乎只有把调试信息写成调试文件了。听起来,好像问题很严重,其实只是理念和取向不同而已。反过来想,手段单一,不恰好意味着简单、简明吗?十几年来,我一直使用 print 调试,坚信没有比它更好的了。

5. 模块管理

在python语言的发展过程中,安装和管理第三方模块的方法也历经变化。现在,我们终于等来了pip这个近乎完美的工具。pip除了安装(install)和删除(uninstall)这两大功能,还可以指定模块的安装版本(无需预先删除当前已安装版本),可以显示所有已安装的模块,还可以通过 upgrade 自主升级。

很多同学在使用pip时会遇到各种各样稀奇古怪的问题,我在这里解释一下:

5.1 同时安装了py2/py3

同时安装了py2/py3,将会存在多个版本的pip.exe,你如果直接运行:

pip install <模块名>

则有可能因为pip.exe版本不对而出错。正确的做法是指定python版本,-m是python解释器的参数,意思是把pip模块做为脚本运行,完整命令如下:

py -3 -m pip install <模块名>

5.2 使用Anaconda,或者通过IDE来安装模块

如果你使用的是Anaconda Python,或者你是通过IDE来安装模块,则需要检查它们的配置和设置,情况各有不同,没有统一的解决方案。

5.3 仅安装了py2 或 py3

如果你的计算机只安装了py2 或者 py3,那么上面两种安装方法应该都没有问题。如果你的电脑找不到pip.exe文件,则可以使用这个命令生成:

python -m ensurepip

5.4 pip应用演示

下面,就以同时安装了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教程

Das obige ist der detaillierte Inhalt vonWas Python-Anfänger wissen sollten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn