初学者使用的Python:入门

披露: 您的支持有助于保持网站的正常运行!我们会为此页面上推荐的某些服务收取推荐费.


Python是一种高级通用解释型脚本语言。语言’s的设计非常强调代码的可读性,灵活性和易用性.

像大多数类似的语言(例如Ruby和Perl)一样,Python可以用于任何类型的任何应用程序。有一些使用Python构建的Web应用程序,以及一些出色的Web开发框架。使用Py2Exe之类的工具,您可以将Python脚本打包为独立的桌面应用程序.

但是Python真正发挥作用的地方以及它在大多数情况下得到使用的地方,是作为数据分析,数字运算,科学研究,黑客,脚本编写和任务自动化的工具。科学家,数学家,渗透测试人员,间谍,密码学家,音乐家,股票经纪人和网络管理员使用Python进行广泛的应用.

如果您想学习如何构建出色的Web应用程序,则可能要从Ruby或(如果您’重新导入WordPress),PHP。但是,如果您想学习如何使用计算机来做有趣的新事情,Python是适合您的语言.

Contents

在线Python资源

网路上有许多Python资料-有些是免费的,有些是付费的。这些是学习Python的一些最佳资源.

学习Python

推荐的课程和教程
  • 官方Python网站
  • 初学者’s Python指南—开始学习的官方场所.
    • 对于非程序员
    • 对于不熟悉Python的程序员
  • 艰苦学习Python —对于想真正学习该语言而又不走捷径的人们的一门优秀的Python课程.
  • 谷歌’s的Python类-Google在许多项目中使用Python。想以他们的教学方式来学习它吗?您可以.
  • 标准库指南
  • Python Koans —通过使用测试驱动开发,以惊人的哲学方式像开发人员一样进行Python编程和思考.
其他很棒的Python教程和学习资源

这里有一些非常好的学习Python的资源,几乎可以完成上面的工作 “推荐的” 清单。每个人都有不同的学习方式,所以也许其中一种会比上面的教程更适合您.

  • Python视频—关于各种Python主题的大量视频列表
  • 面向初学者的Python编程-Linux Journal的“无骨”教程.
  • Python书籍-深入的在线书籍,涵盖Python入门,高级主题和mny练习.
  • Python课程—一整套免费且广泛的Python教程.
  • Python的构建技能-设计了42章Python练习
  • 云雀’的Python舌头指南—一组有关Python概念的基于项目的简单教程.
  • Python 101 — Python简介.
    • Python 201-中级Python.
  • 在10分钟内学习Python-语言的快速入门.
  • Checkio —学习通过游戏改善代码。玩游戏,而不写游戏.
  • Python编程Wiki书
其他Python教程

这些是 “荣誉奖” 有关入门Python的教程。我们没有’找不到符合我们(非常高)标准的产品,但是它们都很受欢迎-因此也许其中之一会很适合您.

  • Pythonspot
  • Python简介
  • Python简介
  • 即时Python
  • Python技巧
  • Python教程

Python开发工具

库,插件和附加组件

Python优势的很大一部分是出色的工具生态系统,用于以该语言完成许多不同类型的任务。从图形处理到数学分析,’可能是适用于您正在使用的任何域的Python模块.

  • 弹片—用于大量并发的Python库.
  • MatPlotLib —图形和数据可视化.
  • Mako — Web模板引擎.
  • PIL — Python影像库
    • 枕头— PIL的叉子。 (PIL似乎已经停止了积极的开发。Pillow正在弥补这个受欢迎的项目的不足。)
  • Pyx-Python图形包
  • 美丽的汤-屏幕转义,然后处理解析树和内容的工具.
  • Scrappy-Web抓取工具.
  • Gooey-为命令行Python程序提供GUI的工具.
  • Peewee —用于将Python应用程序连接到MySQL,PostgreSQL或SQLite的简约SQL ORM.
  • SQL Alchemy-功能更全面的SQL ORM.
  • PyGame-使用Python构建视频游戏的平台.
  • SciPy-适用于Python的科学和数学工具;对于科学计算非常重要.
  • 熊猫-数据分析工具.
  • sh —用于从Python脚本中调用其他程序的库.

Python Wiki还维护了一些最有用和最受欢迎的Python模块列表.

集成开发环境

IDE是集成开发环境,是一种用于管理大型或复杂应用程序开发的工具。大多数Python用户倾向于在简单的代码编辑器中工作,但是对于那些使用Python处理大型项目的人,可以使用许多出色的Python集成开发环境。.

  • PyDev — Eclipse的Python IDE.
  • Komodo-Python IDE
  • PyCharm — Python IDE
  • Wing IDE-商业Python IDE.
  • Spyder —用于科学和数学的Python IDE.
  • NetBeans
  • PyScripter
  • µ.dev — Microdev,来自Sakura工作室的怪异的小IDE.

另请参阅此Python编辑器列表.

重构和代码检查

Python开发人员具有一种倾向于使用干净高效的代码的文化。同时,它们还重视速度,并且经常快速投入编码以解决眼前的问题。已经开发了许多工具来帮助Python程序员自动化检查代码的任务并使其更加高效.

  • PyChecker —代码检查器(线性).
  • 自行车维修
构建工具

Python在任务自动化方面表现出色,因此,有许多工具可以做到这一点并加快构建和部署周期,这不足为奇.

此列表中还包括用于打包和分发Python应用程序的专用开发工具。.

  • 调用–任务执行和脚本编写工具.
  • Microbuild —轻量级构建工具.
  • Paver —任务脚本.
  • Pynt —构建工具.
  • VirtualEnv —用于构建隔离的Python环境的工具.
  • Bitten —用于Python和Trac的持续集成工具.
  • iPython —交互式Python shell和开发库;太多很棒的功能无法列出.
  • Py2Exe —将Python脚本编译为Windows可执行文件.
Web框架

如果要使用Python构建Web应用程序,则需要执行许多低级任务’首先需要注意-否则,您可以从第10步开始使用Web应用程序开发框架.

  • Django —到目前为止,最流行的Python Web应用程序框架。从概念上讲,它类似于Ruby on Rails。请参阅我们的Django介绍
  • Python粘贴-不是框架,而是 “框架的框架.” 提供用于构建Python Web框架的低级工具.
  • CherryPy —极简主义的Python Web框架.
  • 涡轮齿轮
  • Web2Py
  • 立方网
  • 乔托
  • 瑞尔
  • ee

用Python内置的应用程序

Python被许多人用于许多不同的任务和目的,但是在构建将应用程序以代码形式分发给消费者和最终用户的方式中并不是很流行(例如,PHP就是这样)。尽管如此,它有时还是用于此目的。以下是一些使用Python构建的应用程序的示例.

  • SchoolTool —学生信息系统.
内容管理系统
  • Plone-最受欢迎的基于Python的CMS.
  • Django CMS-不如CMS的Plone受欢迎,但基于最流行的Python框架构建.
  • MoinMoin —为Python Wiki提供支持的Python Wiki引擎。 (有关其他基于Python的Wiki CMS,请参见此页面。)
  • CPS管理系统
  • 席尔瓦
  • ZMS

在线Python参考

这些是一些最重要的单源Python参考站点,您可能应该将其标记为书签.

  • Python文档
  • Python维基
  • 流行的Python食谱
  • Python包索引

图书

开始使用Python

如果您更喜欢学习印刷书籍,那么就不会缺少优秀的书籍。这是一些适合初学者的最佳Python书籍。如果你不这样做’不喜欢书籍(或不喜欢’(更喜欢花钱买东西),请向下滚动至“在线资源”部分,以获取出色的在线(主要是免费的)教程列表.

  • 艰苦学习Python:一个非常美丽的计算机和代码世界的简单介绍
  • 适用于儿童的Python
  • Python速成班:基于项目的动手编程入门
  • 面向初学者的Python编程:Python计算机语言和计算机编程简介
  • Python编程:计算机科学概论
  • 使用Python自动完成无聊的工作:面向初学者的实用编程
  • 学习Python
  • 你好!蟒蛇

高级

Python编程中的许多更高级的概念未包含在在线教程中,只能在印刷书籍中找到.

  • 专家Python编程
  • Python高性能编程
  • Python并行编程指南
  • 实践中的Python:使用并发,库和模式创建更好的程序
  • 先进的Python 3编程技术
  • 掌握面向对象的Python
  • 有效的Python:59种编写更好的Python的特定方法
  • Python机器学习
  • 考虑Python
  • 专业的Python
  • 高性能Python:人类实用的高性能编程
  • 使用Python进行Web搜刮:从现代Web收集数据
  • 使用Python进行测试驱动的开发
  • 流利的Python
  • Python游乐场:好奇程序员的怪异项目
  • Python网络编程的基础:使用Python构建网络应用程序的综合指南
  • 指南:使用Python学习迭代和生成器
适用于数学,科学和数据的Python

出于至少两个原因,Python在数学和科学中得到了广泛使用:–对于该语言,有许多出色的数学和科学工具,例如SciPy和NumPy。 –该语言非常适合快速编程任务,因此无需构建功能全面的应用程序即可轻松地使用Python进行临时数据分析.

与一般的高级主题一样,如果您正在寻找有关高级Python编程中特定主题的信息,那么与免费网站和在线教程相比,您会发现更多优秀的书籍.

  • 用Python做数学
  • 用于数据分析的Python:使用Pandas,NumPy和IPython处理数据
  • Python数据科学基础
  • 从零开始的数据科学:Python的首要原理
  • 使用Python学习数据挖掘
  • 生物学家高级Python
  • Python for Finance:分析大财务数据
  • Python的数据结构和算法思维:数据结构和算法难题
  • Python for Informatics:探索信息
  • 使用Python进行衍生工具分析
  • ArcPy和ArcGIS:使用Python进行地理空间分析
  • 学习熊猫–轻松进行Python数据发现和分析
  • 使用Python学习地理空间分析
  • 天文学中的统计,数据挖掘和机器学习:用于调查数据分析的实用Python指南
用于黑客的Python

由于它适用于即席编程和任务自动化,Python也被喜欢闯入事物的人们以及试图阻止它们的人们所广泛使用。 (当然,我们假设您是好人之一。)

  • 暴力Python:黑客,法医分析师,渗透测试人员和安全工程师的食谱
  • Black Hat Python:面向黑客和渗透测试者的Python编程
  • 适用于特工的Python

参考

对于喜欢Python的人,这里有一些很棒的Python参考资料。尽管上面提到的一些高级主题仅是书籍,但此处的大多数基本参考资料都可以通过良好的搜索引擎在网上轻松找到-但有些人更喜欢使用纸质版.

  • Python基本参考
  • Python食谱
  • Python Pocket参考

Python异常

由于异常至关重要地导入到Python编程中,因此我们提供了以下教程,它将使您快速掌握Python的这一方面。.

如果在执行Python程序时出现问题,会发生什么?好吧,如果接下来发生的事情也不例外…两件事错了.

Python会针对各种错误情况引发异常。作为Python开发人员,异常会告诉您代码出了什么问题以及在哪里。您还可以定义和引发自己的异常.

在本文中,我们将介绍Python的内置异常,并探讨异常处理.

如何建立例外

遵循面向对象编程的原理,在异常类中定义异常。这些类按继承层次结构组织。例如,IndentationError是SyntaxError的子类。.

引发异常时,将创建特定异常类的实例。如果发现错误(如下面的except子句中所述),则可以对其进行检查。.

>>> 尝试:
… 引发ValueError
… 除了ValueError作为e:
… 打印(str(type(e)) + "ñ" + str(dir(e)))

[‘__cause__’,’__class__’,’__context__’,
‘__delattr __’,’__ dict __’,’__ dir__’,
‘__doc __’,’__ eq __’,’__ format __’,’__ ge__’,
‘__getattribute __’,’__ gt __’,’__ hash__’,
‘__init __’,’__ le __’,’__ lt __’,’__ ne__’,
‘__new __’,’__ reduce __’,’__ reduce_ex__’,
‘__repr __’,’__ setattr __’,’__ setstate__’,
‘__sizeof __’,’__ str __’,’__ subclasshook__’,
‘__suppress_context__’,’__traceback__’,
‘args’,’with_traceback’]

关于代码示例的注意事项: 用 >>> 提示可以使用交互式解释器进行尝试。只需在终端中输入python3即可。一切都不在前 >>> 或…这些输出。没有提示的代码示例是您可能实际上在.py模块中编写的代码示例.

抽象异常

这些异常类用作其他异常的基类.

BaseException

这是派生所有其他异常的基类.

例外

所有内置的,非系统退出的异常都派生自此类。所有用户定义的异常也应从此类派生.

类MyNewException(Exception):

def __str __():
返回 "MyNewException发生了."

ArithmeticError

继承与算术相关的异常:

  • OverflowError
  • ZeroDivisionError
  • FloatingPointError

BufferError

当无法执行与缓冲区相关的操作时引发.

LookupError

继承自与无效键或索引有关的异常。例如,字典上的错误键或列表上的索引超出范围.

具体例外

断言错误

因失败的主张而提出.

>>> 断言1 > 2
断言错误

AttributeError

在属性引用或分配失败时引发.

>>> x = 1

>>> 名称
AttributeError:“ int”对象没有属性“ name”

>>> x.name = "一"
AttributeError:“ int”对象没有属性“ name”

EOF错误

当input()到达文件末尾(EOF)而不读取任何数据时引发.

FloatingPointError

当浮点运算失败时引发。请注意,除非配置,否则通常不会引发此异常,并且对于大多数非专家用户,建议不要处理浮点异常..

GeneratorExit

当发电机或协程关闭时引发。这实际上不是错误,因为关闭是正常行为.

ImportError

在导入语句失败时引发.

>>> 导入ModuleThatDoesNotExist
ImportError:没有名为ModuleThatDoesNotExist的模块

在Python 3.6和更高版本中,另外还有子类ModuleNotFoundError.

IndexError

当引用的索引无效时引发.

>>> l = ["零", "一", "二"]
>>> l [4]
IndexError:列表索引超出范围

KeyError

找不到字典键时引发.

>>> d = {‘TOS’:’Kirk’,’TNG’:’Picard’,’DS9’:’Sisko’,’VOY’:’Janeway’}
>>> 凹痕’]
KeyError:“ ENT”

键盘中断

按下中断键(CTRL-C)时引发.

>>> 而真
… 通过

^ C
键盘中断

MemoryError

操作内存不足时引发.

NameError

找不到变量名时引发.

>>> 而True:
… 通过

^ C
键盘中断

NotImplementedError

打算将其编写为类;它没有任何内置功能引发。它有两个用途:

  • 由抽象方法引发,表明它们需要在派生类中被覆盖.
  • 由派生类引发,指示需要添加实现。这允许在不引发异常的情况下加载类.

OSError

在返回系统错误时引发。有关OSError的更多信息,请参见下文.

OverflowError

当数学运算的结果太大时引发.

递归错误

超过最大递归深度时引发.

ReferenceError

在垃圾回收后使用弱引用代理访问对象时引发.

RuntimeError

在检测到不属于其他任何类别的错误时引发.

StopIteration

当迭代器不再产生更多项目时,由next()和__next __()引发.

StopAsyncIteration

必须由 下一个 ()异步迭代器对象的方法停止迭代.

这是3.5版中的新功能.

语法错误

因语法错误引发.

>>> 1 = 2
SyntaxError:无法分配给文字

IndentationError

出现缩进错误.

>>> 如果1 == 1:
… x = 1
IndentationError:应缩进的块

TabError

IndentationError的子类,当缩进不一致使用制表符和空格时会引发此问题.

系统错误

因严重的内部错误引发.

系统退出

由sys.exit()函数引发.

TypeError

在不适当类型的对象上调用操作或函数时引发.

>>> 1个 > "一"
TypeError:不可排序的类型:int() > str()

用户代码应针对错误键入的函数输入引发TypeError.

UnboundLocalError

在函数或方法中引用局部变量但尚未定义变量时引发.

UnicodeError

基类,用于处理Unicode字符串时发生的错误。它具有三个子类:

  • UnicodeEncodeError
  • UnicodeDecodeError
  • UnicodeTranslateError

ValueError

在使用正确类型但参数值不合适的参数调用函数或操作时引发,除非应用了更具体的错误。 (例如,超出范围的索引会引发IndexError。)

>>> f =开("文件名.txt", "米")
ValueError:无效模式:’m’

ZeroDivisionError

尝试除以零时引发.

>>> 1/0
ZeroDivisionError:被零除

>>> 1.0 / 0
ZeroDivisionError:浮点除以零

>>> 1%0
ZeroDivisionError:整数除法或以零为模

有关OSError的更多信息

OSError在Python 3.3中进行了重新设计。现在,OSError具有三个别名,以及针对各种错误情况的许多派生类.

OSError的别名

  • EnvironmentError最初是OSError和IOError的基类.
  • IOError最初是由于任何I / O操作期间发生的错误而引发的,包括打印或从文件读取.
  • WindowsError最初是针对任何Windows特定的错误引发的.

所有这三个都仅出于兼容性目的而保留,但实际上是OSError的别名.

OSError子类

这些都是从OSError派生的,并且会根据操作系统返回的错误代码而引发。每个描述下面是相关的系统errno.

BlockingIOError

在操作将导致对对象集进行非阻塞阻塞时引发.

  • 易高
  • 准备好了
  • 区块链
  • 进步
ChildProcessError

在子进程上的操作失败时引发.

  • 成就
连接错误

与连接有关的错误的基类.

子类:

  • BrokenPipeError,在封闭的管道或套接字上尝试写入时引发.
    • EPIPE;关机
  • ConnectionAbortedError,引发然后尝试的连接被对等方中止.
    • 经济的
  • ConnectionRefusedError,当对等方拒绝尝试连接时引发.
    • 拒绝
  • ConnectionResetError,当对等方重置连接时引发.
    • ECONNRESET
FileExistsError

尝试创建已经存在的文件或目录时引发.

  • 经验主义
FileNotFoundError

当请求的文件或目录不存在时引发.

  • 情感
中断错误

当输入信号中断系统调用时引发.

  • 英特

请注意,自Python 3.5起,除非信号处理程序引发异常,否则将重试中断的系统调用.

IsADirectoryError

在目录上尝试仅文件操作(例如os.remove())时引发.

  • EISDIR
NotADirectoryError

在文件或其他非目录对象上尝试仅目录操作(例如os.listdir())时引发.

  • 恩替.
PermissionError

在没有足够权限的情况下尝试运行操作时引发.

  • 进阶
  • EPERM
ProcessLookupError

在不存在引用的进程时引发.

  • 埃塞克
TimeoutError

系统功能超时时引发.

  • 超时

警告事项

这些异常类用作警告异常的基类.

警告

由所有警告子类继承.

用户警告

继承于用户代码生成的警告.

弃用警告

继承有关不推荐使用的功能的警告.

待弃用警告

继承有关将来将不推荐使用的功能的警告.

语法警告

继承有关语法有问题的警告.

运行时警告

继承有关有问题的运行时行为的警告.

未来警告

受到有关将来会更改的构造的警告的继承.

导入警告

继承了有关程序包和模块导入中可能存在错误的警告.

Unicode警告

继承与Unicode相关的警告.

字节警告

继承与字节和字节数组有关的警告.

资源警告

继承与资源使用相关的警告.

在代码中引发内置异常

您可能希望针对各种用户操作提出例外。这就像调用加薪一样容易。您可以传递一个字符串以显示给用户.

def ObnoxiousFavoriteColorAssigner(color):
如果type(color)不是str:
引发TypeError("我需要一个字符串.")
如果["红色", "绿色", "蓝色"]:
favorite_color =颜色
其他:
引发ValueError("那不是*真的*一种颜色.")

处理异常

您可以使用try和except处理运行代码时发生的异常.

def EverybodyLovesRed():
而True:
尝试:
ObnoxiousFavoriteColorAssigner(input())
打破
除了TypeError作为err:
打印(错误)
除了ValueError:
ObnoxiousFavoriteColorAssigner("红色")

定义自定义异常

您可以扩展任何内置的异常来创建自己的自定义异常。这通常是在大型框架中完成的.

类ColorError(ValueError):
"""
当有人建议有颜色时引发
除了红色,蓝色和绿色.
"""

def __str __():
返回 "颜色只存在于您的眼睛中."

def ObnoxiousFavoriteColorAssigner(color):
如果type(color)不是str:
引发TypeError("我需要一个字符串.")
如果["红色", "绿色", "蓝色"]:
favorite_color =颜色
其他:
提高ColorError

在创建自己的自定义异常类时,优良作法是在文档字符串中包含有关何时或如何引发异常的相关信息。但是,除此之外,定义例外的代码中未包含此逻辑.

有关Python异常的更多信息

  • 请务必阅读有关错误的官方文档以及内置异常的完整列表.
  • Python开发人员Julien Danjou撰写了Python异常权威指南.
  • Codementor.io在Python中具有编写和使用自定义异常的功能.

Python常见问题

Python是一个什么意思 “脚本语言”?

脚本语言是一种在运行时解释的语言,而不是编译为二进制可执行文件的语言.

有人用这句话 “脚本语言” 表明该语言特别擅长简短 “剧本,” 或用于自动执行任务的微型即席程序.

Python符合这两种描述-它是一种解释型语言,对于编写简短的即席脚本也非常有用.

像Python这样的脚本语言是否适合编写全面的应用程序?

有些人倾向于在整个应用程序中使用脚本/解释语言。这种偏见的智慧完全取决于个人情况.

脚本语言的运行速度往往比编译语言要慢一些,在某些情况下,这种性能差异是一个巨大的问题。但是,在大多数情况下,这是可以忽略的关注.

Python非常适合编写各种应用程序。使用Django或其他Web框架可让您构建基于Web的应用程序。就编写全面应用程序所需的工具和功能而言,Python并不存在不足。实际上,可以说Python比PHP或JavaScript更适合于此类工作,PHP和JavaScript经常用于大型,复杂的Web应用程序.

我应该学习Python吗?

那要看你的目标.

如果您希望构建典型的Web应用程序,则可能应该学习PHP或Ruby(和Rails)以及JavaScript,HTML和CSS。那里’没有理由您不能使用Python进行这项工作,但是这样做并不常见。 PHP和Ruby将使您能够访问更多现有的Web应用程序,框架和Web开发工具.

如果您希望使用编程技能直接完成诸如自动化或分析之类的任务,那么Python是进行此类工作的出色语言,并且是大部分使用它的地方.

如果您要构建需要在特定领域或领域(例如数学,科学,金融,音乐或密码学)中处理数据的应用,那么Python对于此类项目也是一种出色的语言.

进一步阅读和资源

我们有更多与编程和统计相关的指南,教程和信息图:

  • C开发人员资源:开始使用这种经典语言所需的一切.
  • Ruby on Rails简介:了解这种流行的脚本语言.
  • Stata编程:Stata是用于数据分析的整个开发环境.

您应该学习什么代码?

对应该学习哪种编程语言感到困惑?查看我们的信息图,您应该学习什么代码?它不仅讨论了语言的不同方面,还回答了一些重要问题,例如:“我将以编程为生赚多少钱?”

您应该学习什么代码?
您应该学习什么代码?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map