),如图2-1-2所示,出现 >>> 提示符,即为 Python 交互模式(请区别于 Windows 的 CMD 窗口 或者 Linux 和 macOS 的终端中所显示的命令行,参阅第1章1.5节)。 图2-1-2 启动 Python 交互模式 然后在光标所在位置,输入如下内容——请读者先阅读此内容以及对输入操作的解释,而后依法操作。 最后敲回车键,意味着将输入的内容提交给 Python 解释器,Python 解释器接收到这条指令之后,在当前行的下面呈现执行结果,如图2-1-3所示。 图2-1-7 选择 Strat Debugging 项 随即可以看到图2-1-8所示窗口,此处应该选择“ Python File ”项。 图2-1-10 程序文件所在目录 在图2-1-10所示状态,输入如下命令: python hello.py 即可运行 hello.py 文件,其效果如图2-1-11所示,显示了运行效果——打印出“Hello
本教程不尝试全面,涵盖每一个功能,甚至每个常用的功能。相反,它引入了许多Python最值得注意的特性,并且会给你一个关于该语言的风格和风格的好主意。 阅读完之后,您将能够读写Python模块和程序,您将准备好了解更多关于Python标准库中描述的各种Python库模块的信息。 由于学习语言的最好方法就是使用它,本教程邀请您在阅读时使用Python解释器。在下一章中,解释使用解释器的机制。这是相当平凡的信息,但对于试用后面的例子来说是必不可少的。 本教程的其余部分通过示例介绍了Python语言和系统的各种特性,从简单表达式,语句和数据类型,函数和模块开始,最后介绍诸如异常和用户定义类之类的高级概念。 2 使用Python解释器 首先打开python解释器(本系列内容采用python3) python3.5 或者 python3 退出解释器,在Linux系统上是Ctrl+D,在Window下式Ctrl
昨天介绍了python的基础入门,这一篇就讲一些稍微深入点的东西,比如类与继承的一些知识点。 class 定义一个类 class A: num1 = mun2 = 0 def __init__(self,arg1,arg2): self.num1 = arg1 self.num2 = arg2 def Calc(self): return self.num1+self.num2 a = A(1,2) print(a.Calc()) 私有属性 class test:
3.3.2 标准库的数学模块 Python 的发明者吉多·范罗苏姆说:Python 有“自带电池”的理念,从它的庞大软件包复杂而又可靠的能力中可见端倪(英文:Python has a "batteries 所谓“自带电池”就是指 Python 标准库(Python Standard Library,官方文档地址是 https://docs.python.org/3/library/index.html), 标准库的有关程序在安装本地 Python 开发环境时已经随之安装好,与内置函数类似,也能“开箱即用”。 Python 标准库非常庞大,此处仅介绍与初等数学计算相关的模块(更多内容,参阅第11章11.3节)。 , 2) 5.87 2. fractions 模块 在前面的代码演示中,注释(2)只能将分数计算为浮点数实现近似计算,如何才能实现精确地表示 呢?
4.2 字符串 顾名思义,“字符串”就是由一个或多个字符“串”起来—— Python 3.x 中的才是真正字符串,Python 2.x 中的严格称呼应为“字节串”。不过,现在读者暂不用关注历史。 在 Python 中创建字符串的方法非常简单。 >>> s = 'python' # (3) >>> book = "learn python" # (4) >>> poem = """我住长江头, ... 如图4-2-1所示,以此为例显示了定义字符串的形式。 图4-2-1 定义字符串的形式 注释(4)使用一对双引号(英文状态)定义字符串。 >>> "I am learning Python' File "<stdin>", line 1 "I am learning Python'
Python 语言中关于字符串切片的一般操作形式如图4-2-5所示——这种形式适用于所有的序列类对象。 以注释(21)的切片为例,得到了字符串 'python book' 的部分字符组成的字符串——就如同从原来字符串上“切”下来“片段”一样,故曰“切片”。 图4-2-6 字符串切片示意 从结果中可以看出,结束索引 8 所对应的字符没有在“被切”之列,这是 Python 中的普遍规则,为了便于记忆,可以概括为“前包括,后不包括”。 如果切片开始的索引是 0 ,可以不写该索引: >>> book[: 8] 'python b' >>> book[0: 8] 'python b' 如果切片结束的索引是字符串的最后一个,例如图4-2- 注释(24)中切片结束的索引已经超过了字符串的最大索引值,但是 Python 语言允许这种操作,并按照注释(23)的方式处理——book[11] 是不允许的,详见4.2.4节。
★本文是《Python 完全自学教程》第3章第5节内容。 在 Python 中也能定义复数,但表示虚数单位的字母与数学中的习惯有别。 Python 中的复数与前面所学习的浮点数、整数都是一种对象类型。 如果创建只有一个虚数单位的复数,即数学上的 i ,不能这样做(这是什么原因? >>> a = complex(2, 5) >>> a (2+5j) >>> (a + 3.4) * 2 (10.8+10j) >>> a / 3 (0.6666666666666666+1.6666666666666667j ) >>> a ** 2 (-21+20j) >>> pow(a, 2) (-21+20j) 上面的演示中,内置函数 pow() 的参数可以是复数,但不是所有的内置函数都接受复数,请读者特别注意其文档中的说明
但是 Python 语言中,除了兼顾数学上的“比较”之外,还把事情搞得复杂了一些,且看本节揭示其复杂性。 图3-6-1 比较符号键 比如,在 Python 交互模式中输入: >>> 3.14 < 2.72 # (1) False >>> 3.14 > 2.72 # (2) True 注释(1)和( 2)是比较表达式,即两个数字对象进行比较的不等式。 除了注释(1)(2)表达式中的小于号和大于号之外,其他比较运算符列在表3-6-1中,请读者参考。 于是,Python 提供了一个用于判断对象是否“同一”的关键词 is 。
1.6.1 About 将鼠标移动到“ About ”上面,暂不要点击,即可看到图1-6-2所示内容,这里以最简洁的语言概述了 Python 语言特点:Python is a programming language 图1-6-2 介绍Python 再将将鼠标详细滑动到“ Applications ”,并点击,即打开网址为 https://www.python.org/about/apps/ 的页面,在这个页面中列举了 请读者特别关注 Python 2.7 ,这是 Python 2.x 的最高版,已经在2020年元旦停止支持,但是,这并不意味着此版本不可用,在有些项目中依然在使用它。 图1-6-5是从此网页中获得的部分截图(读者打开此网址时,可能与截图显示的版本不同),其中显示了当前最新发布版本——包含 Python 3 和 Python 2 两类。 macOS 64-bit universal2 installer:对应的是应用于苹果公司自研 CPU 的安装程序(如图1-6-8所示,即为一款应用了苹果 M1 芯片的 MacBook Pro 计算机的
在 Python 中,依据字符串中各个字符的位置创建其索引,如图4-2-3所示,其创建方法有如下两种: 方法1:从左边开始依据字符位置创建索引,依次为 0 、1 、2 、…,直到最右边的字符结束。 在 Python 中实现这种操作的方式是使用 [ ] 符号。 在交互模式中完成如下操作: >>> book = 'python book' >>> book[0] 'p' >>> book[-11] 'p' 变量 book 引用了图4-2-3所示的字符串对象 根据图4-2-3,此字符串的最大索引是 10 ——但是字符串共计 11 个字符,请读者注意区分图4-2-3和表4-2-2的差异:字符串的长度不等于最大索引值。 Python 字符串有一个方法能够实现(关于“方法”,参见4.2.6节)。
Python 对象,包括各种内置对象和自定义对象。 >>> t = (1, "a", [1,2]) >>> type(t) <class 'tuple'> 这样就创建了一个元组对象,依照惯例,Python 中也会有同名的内置函数 tuple() ,通过它也可以得到元组类型的对象 >>> t2 = tuple() >>> t2 () >>> type(t2) <class 'tuple'> >>> t3 = tuple([1, 2, 3]) >>> t3 (1, 2, 3) >> = 'laoqi' >>> tlst ['laoqi', 'book', 'python'] >>> t2 = tuple(tlst) >>> t2 ('laoqi', 'book', 'python' 元组可以在字典(一种 Python 内置对象类型,参阅第5章5.1节)中作为键,列表不可以。
>>> lst = [1, 2, 3] >>> ex_lst = [3.14, 7.28] >>> lst.extend(ex_lst) # (7) >>> lst [1, 2, 3, 3.14 >>> temp = ['a', 'b'] >>> temp = [] >>> temp [] 提示,若要解决上述问题,需要结合 Python 中对变量的认识,即第2章2.3节中已经自学过的内容——Python ', 'pascal', 'python'] 对于排序而言,Python中还提供了一个内置函数 sorted() ——请注意拼写。 反转 读者在4.3.1节已经熟知了一种实现成员反转的方法: >>> a = [3, 2, 5, 7] >>> a[: : -1] [7, 5, 2, 3] >>> a [3, 2, 5, 7] 这并不对原来的列表产生任何影响 可以用 list() 函数将 reversed(a) 的返回值转换为列表,即可“看到”其内容: >>> a [7, 5, 2, 3] >>> list(reversed(a)) [3, 2, 5, 7]
Python 中的逻辑运算符有 and、or 、not 三个。 (1) and and ,翻译为“与”运算,其运算过程如图3-7-2所示——特别注意,可能与读者在数学中学习的不同,也可能与某些其他资料中的讲述不同,但这是 Python 中逻辑运算的真实过程。 虽然有的资料中坚持要看 and 的两侧的对象的布尔值,并且与图3-7-2所示的过程得到同样的结果,但所耗费的“能源”不同,“节能减排”已是共识,Python 也不例外。 ,Python 会计算它的结果 False; 最终得到了注释(3)的返回值 False 。 如果把这个式子写入到 Python 交互模式中: >>> 0 < 0 == 0 # (5) False 你猜对了吗?
如果不用“多行字符串”,可以这么做: >>> poem2 = "日日思君不见君,\n共饮长江水。" >>> print(poem2) 日日思君不见君, 共饮长江水。 此处在定义字符串 poem2 时并未使用“三引号”,只是在其中增加了回车符( \n),print(poem2) 的输出结果中就在 \n 的位置换行。 表4-2-1中列出了 Python 中常用的转义字符及其说明,供应用时查阅。 ,在(11)中用转义符 \ 将其后的 \n 符号“转义”,令其不再具有表4-2-1中的含义。 但是,当写成注释(13)那样的时候,Python 解释器会把“ \' ”组合起来视为表4-2-1中所示的单引号,且是字面量的组成部分。
请读者进入到本地计算机的 Python 交互模式中(参阅2.1.1节),按照如下方式输入: >>> x = 3.14 # (1) >>> x # (2) 3.14 应用“ Python 中的变量与对象之间是引用关系”的认识,结合图2-3-1来理解注释(7)的奥妙之处: 计算 x + 1 ,它的返回值是 4,如图2-3-1中的①所示; 变量 x 引用上面计算结果,如图 图2-3-1 变量与对象的关系 Python 的变量除了可以引用数字之外,还可以引用其他任何 Python 对象,读者会随着本书的学习不断理解这句话的含义。 在本书中,选择使用“蛇形式”,这也是 Python 中比较流行的命名普通变量的形式( Python,即“蟒蛇”,可能与此有关,图2-3-2为其图标)。 图2-3-2 Python 语言的图标 了解了变量的命名形式之后,其名称必须符合如下要求: 变量名称不以数字开头; 变量名称中可以包含英文字母(大写和小写)、数字以及下划线 _ 。
Python 语言中,也通过多种方式提供了常用的函数——这些函数都已经定义好。 打开图3-3-2所示的帮助文档同时,在图3-3-1对应的 Python 官方文档的内置函数列表中,找到 int() 函数,点击该超链接,即打开网址 https://docs.python.org/3/library 区别在于图3-3-2所示的内容,已经随着本地 Python 开发环境的配置安装到了本地(如第1章1.7.2节中的图1-7-10所示文档),可以随时查看,通常称为“帮助文档”——可以用帮助函数 help( >>> divmod(5, 2) (2, 1) >>> divmod(-5, 2) (-3, 1) >>> divmod(7, -9) (-1, -2) pow() 一般情况下,函数 pow() 的作用与运算符 ** 相同,计算某个数的幂,例如: >>> 2 ** 3 8 >>> pow(2, 3) 8 其中 pow() 的第一参数 2 是底,第二个参数 3 是指数。
然后调试上述代码,正常地显示了打印的结果(如图2-2-1所示),这说明 Python 解释器在执行此程序的时候,并没有受到所增加的注释影响——注释是给人看的,“机器不看”。 file /Users/qiwsir/codes/hello.py on line 2, but no encoding declared; see http://python.org/dev/peps 图2-2-2 VS Code 中设置 UTF-8 编码 还有一个方法,就是在文件的顶部声明使用 UTF-8 编码。 图2-2-3 选中多行 图2-2-4 实现对多行的注释 除了 # 发起的是单行注释之外,还有多行注释。 例如打算创建一个表示我已经出版的图书的列表(列表,是 Python 的一类内置对象,参阅第4章4.3节),如果用下面的方式: # a list of books a = ["机器学习数学基础", "Python
>>> book + 2 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: can 如果要修改上面的错误,可以将 2 转化为字符串类型。 >>> book + str(2) 'mathematics for machine learning2' 2. 表4-2-2 字符数量 个数 1 2 3 4 5 6 7 8 9 10 11 12 13 字符串 s e l f l e a r n i n g 表4-2-2表示了字符串 book 的所有字符,不仅仅包括英文字母 >>> 'py' in 'python' True >>> 'Py' in 'python' # (19) False >>> 'thon' in 'python' True >>> 'python ' in 'python' True >>> 'po' in 'python' # (20) False 注释(19)的返回值是 False ,是因为 Python 语言区分大小写,py
本文系《Python完全自学教程》第2章2.1.3节,更多内容,请访问 http://www.itdiffer.com/self-learning.html 2.1.3 解释器 经过第1章的1.2节和1.3 CPython 是使用 C语言开发的 Python 解释器,也是标准的 Python 解释器,是使用最广泛的 Python 解释器。 Python 语言的解释器采用的是第2种方法,如2.1.2节中所编写的 hello.py 文件,不论通过 IDE 还是在命令行中执行 python hello.py ,Python 解释器都会将源代码转化为字节码 但是,如果按照图2-1-11的方式执行了该 Python 程序之后,并没有在当前目录中看到 .pyc 类型的字节码文件。 ”字样,与图2-1-11的运行效果相同。
1.7.1 Python 的版本 在浏览1.6.2节有关内容的时候,特别是图1-6-4,显示了 Python 语言目前的两大版本:Python 2 和 Python 3 。 这两个大版本有比较明显的差别,并且互不兼容——用 Python 2 编写的程序,无法用 Python 3 直接运行,反之亦然。至于两者的差异到底在哪里?不是本书重点阐述的内容。 当读者学成之后,在实际项目中如果遇到了 Python 2 ——处理古老的代码,也是开发者经常要遇到的工作内容。怎么办?不必惶恐! 图1-7-2 增选复选框 然后点击图1-7-2所示的“ Customize installation ”(自定义安装),进入到下一步。 如果要检查一下是否成功,可以用下面两种途径启动 Python 交互模式——第2章开始会经常使用“ Python 交互模式”。