我们都知道,python的官方文档写得十分详尽,也是每一个学习python的人都绕不开的。
所以从今天开始,我每天都会用一小时学习python的官方文档,按照文档目录的顺序,摘录一些有用的语句,写下一些个人心得放在博客里,python版本为3.8.2,文档地址如下:
https://docs.python.org/zh-cn/3/index.html
1.课前甜点
Python是一种解释型语言,在程序开发阶段可以为你节省大量时间,因为不需要编译和链接。解释器可以交互式使用,这样就可以方便地尝试语言特性,写一些一次性的程序,或者在自底向上的程序开发中测试功能。
Python代码通常比同样功能的C,C++,Java代码要短很多,原因列举如下:
- 高级数据类型允许在一个表达式中表示复杂的操作;
- 代码块的划分是按照缩进而不是成对的花括号;
- 不需要预先定义变量或参数。
2. 使用 Python 解释器
本章主要介绍怎么样启动python解释器,以及调用它的交互式终端,比较简单。
还介绍了python的运行环境,即在默认情况下,Python 源码文件以 UTF-8 编码方式处理。如果不使用默认编码,要声明文件所使用的编码,文件的 第一 行要写成特殊的注释。语法如下所示:
# -*- coding: encoding -*-
其中 encoding 可以是 Python 支持的任意一种 codecs。
3. Python 的非正式介绍
如果是在命令行打开python解释器的交互式终端,就是通过提示符 (>>>
与 ...
) 的出现与否来区分输入和输出。#
后面是注释,不会被解释。
然后介绍了把python作为计算器使用,注意在交互模式下,上一次打印出来的表达式被赋值给变量 _
,但是这个变量应该被使用者当作是只读类型。例如:
>>> tax = 12.5 / 100
>>> price = 100.50
>>> price * tax
12.5625
>>> price + _
113.0625
>>> round(_, 2)
113.06
Python 也可以操作字符串。字符串有多种形式,可以使用单引号('……'
),双引号("……"
)都可以获得同样的结果,反斜杠 \
可以用来转义。
如果你不希望前置了 \
的字符转义成特殊字符,可以使用 原始字符串 方式,在引号前添加 r
即可:
>>> print('C:\some\name') # here \n means newline!
C:\some
ame
>>> print(r'C:\some\name') # note the r before the quote
C:\some\name
字符串字面值可以跨行连续输入。一种方式是用三重引号:"""..."""
或 '''...'''
。字符串中的回车换行会自动包含到字符串中,如果不想包含,在行尾添加一个 \
即可。如下例:
print("""\
Usage: thingy [OPTIONS]-h Display this usage message-H hostname Hostname to connect to
""")
将产生如下输出(注意最开始的换行没有包括进来):
Usage: thingy [OPTIONS]-h Display this usage message-H hostname Hostname to connect to
字符串是可以被 索引 (下标访问)的,第一个字符索引是 0。单个字符并没有特殊的类型,只是一个长度为一的字符串。除了索引,字符串还支持 切片。索引可以得到单个字符,而 切片 可以获取子字符串。注意切片的开始总是被包括在结果中,而结束不被包括。(左闭右开)
使用过大的索引会产生一个错误,但是,切片中的越界索引会被自动处理:
>>> word[42] # the word only has 6 characters
Traceback (most recent call last):File "<stdin>", line 1, in <module>
IndexError: string index out of range>>> word[4:42]
'on'
>>> word[42:]
''
Python 中的字符串不能被修改,它们是 immutable(不可变) 的。因此,向字符串的某个索引位置赋值会产生一个错误,如果需要一个不同的字符串,应当新建一个。
然后是列表,Python 中可以通过组合一些值得到多种 复合 数据类型。其中最常用的 列表 ,可以通过方括号(中括号)括起、逗号分隔的一组值得到。一个 列表 可以包含不同类型的元素,但通常使用时各个元素类型相同。和字符串(以及各种内置的 sequence 类型)一样,列表也支持索引和切片。与 immutable(不可变)的字符串不同, 列表是一个 mutable(可变)类型,就是说,它自己的内容可以改变。
最后是一个斐波拉契数列的例子:
>>> a, b = 0, 1
>>> while a < 10:
... print(a)
... a, b = b, a+b
...
0
1
1
2
3
5
8
这里有几个值得注意的点:
- 多重赋值: 变量 a 和 b 同时得到了新值 0 和 1. 最后一行又用了一次多重赋值, 这体现出了右手边的表达式,在任何赋值发生之前就被求值了。右手边的表达式是从左到右被求值的。
- while 循环只要它的条件(这里指: a < 10)保持为真就会一直执行。Python 和 C 一样,任何非零整数都为真,零为假。这个条件也可以是字符串或是列表的值,事实上任何序列都可以;长度非零就为真,空序列就为假。
- 循环体 是 缩进的 :缩进是 Python 组织语句的方式。在同一块语句中的每一行,都要缩进相同的长度。简单来说,缩进代表代码的“地位”。
print()
函数将所有传进来的参数值打印出来. 它和直接输入你要显示的表达式(比如我们之前在计算器的例子里做的)不一样,print()
能处理多个参数,包括浮点数,字符串。 字符串会打印不带引号的内容, 并且在参数项(逗号)之间会插入一个空格, 这样你就可以很好的把东西格式化, 像这样:
>>> i = 256*256
>>> print('The value of i is', i)
The value of i is 65536