在命令行窗口执行python
后,进入 Python 的交互式解释器。exit()
或 Ctrl + D
组合键退出交互式解释器。
在命令行窗口执行python script-file.py
,以执行 Python 脚本文件。
如果在 Python 脚本文件首行输入#!/usr/bin/env python
,那么可以在命令行窗口中执行/path/to/script-file.py
以执行该脚本文件。
注:该方法不支持 Windows 环境。
默认情况下,3.x 源码文件都是 UTF-8 编码,字符串都是 Unicode 字符。也可以手动指定文件编码:
或者
注意: 该行标注必须位于文件第一行
注:从 3.x 开始,非 ASCII 标识符也是允许的,但不建议。
保留字即关键字,我们不能把它们用作任何标识符名称。Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字:
单行注释采用#
,多行注释采用'''
或"""
。
Python 最具特色的就是使用缩进来表示代码块,不需要使用大括号 {}
。
缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。缩进不一致,会导致运行错误。
Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠\
来实现多行语句。
在 []
, {}
, 或 ()
中的多行语句,不需要使用反斜杠\
。
函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
空行与代码缩进不同,空行并不是 Python 语法的一部分。书写时不插入空行,Python 解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。
记住:空行也是程序代码的一部分。
input
函数可以实现等待并接收命令行中的用户输入。
Python 可以在同一行中使用多条语句,语句之间使用分号;
分割。
缩进相同的一组语句构成一个代码块,我们称之代码组。
像if
、while
、def
和class
这样的复合语句,首行以关键字开始,以冒号:
结束,该行之后的一行或多行代码构成代码组。
我们将首行及后面的代码组称为一个子句(clause)。
print 默认输出是换行的,如果要实现不换行需要在变量末尾加上end=""
或别的非换行符字符串:
在 Python 用 import
或者 from...import
来导入相应的模块。
将整个模块导入,格式为:import module_name
从某个模块中导入某个函数,格式为:from module_name import func1
从某个模块中导入多个函数,格式为:from module_name import func1, func2, func3
将某个模块中的全部函数导入,格式为:from module_name import *
具有相同优先级的运算符将从左至右的方式依次进行。用小括号()
可以改变运算顺序。
变量在使用前必须先"定义"(即赋予变量一个值),否则会报错:
只有 True
和 False
两个值,表示真或假。
整数值,可正数亦可复数,无小数。
3.x 整型是没有限制大小的,可以当作 Long 类型使用,所以 3.x 没有 2.x 的 Long 类型。
浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 10^2 = 250)
复数由实数部分和虚数部分构成,可以用a + bj
,或者complex(a,b)
表示,复数的实部 a 和虚部 b 都是浮点型。
注:以下函数的使用,需先导入 math 包。
注:以下函数的使用,需先导入 random 包。
注:以下函数的使用,需先导入 math 包。
在 Python 中,字符串格式化不是 sprintf 函数,而是用 %
符号。例如:
格式化符号:
辅助指令:
Python 2.6 开始,新增了一种格式化字符串的函数 str.format()
,它增强了字符串格式化的功能。
实例:
输出:
在 2.x 中,普通字符串是以 8 位 ASCII 码进行存储的,而 Unicode 字符串则存储为 16 位 Unicode 字符串,这样能够表示更多的字符集。使用的语法是在字符串前面加上前缀 u
。
在 3.x 中,所有的字符串都是 Unicode 字符串。
在 3.x 中,字符串和二进制数据完全区分开。文本总是 Unicode,由 str 类型表示,二进制数据则由 bytes 类型表示。Python 3 不会以任意隐式的方式混用 str 和 bytes,你不能拼接字符串和字节流,也无法在字节流里搜索字符串(反之亦然),也不能将字符串传入参数为字节流的函数(反之亦然)。
bytes 转 str:
str 转 bytes:
格式: list_name[begin:end:step]
begin 表示起始位置(默认为0),end 表示结束位置(默认为最后一个元素),step 表示步长(默认为1)
访问内嵌 list 的元素:
通过使用方括号,可以非常灵活的对列表的元素进行修改、替换、删除等操作。
可以用 del 语句来删除列表的指定范围的元素。
注: 对列表使用 max/min 函数,2.x 中对元素值类型无要求,3.x 则要求元素值类型必须一致。
列表推导式提供了从序列创建列表的简单途径。通常应用程序将一些操作应用于某个序列的每个元素,用其获得的结果作为生成新列表的元素,或者根据确定的判定条件创建子序列。
每个列表推导式都在 for 之后跟一个表达式,然后有零到多个 for 或 if 子句。返回结果是一个根据表达从其后的 for 和 if 上下文环境中生成出来的列表。如果希望表达式推导出一个元组,就必须使用括号。
将列表中每个数值乘三,获得一个新的列表:
对序列里每一个元素逐个调用某方法:
用 if 子句作为过滤器:
列表嵌套解析:
访问元组的方式与列表是一致的。
元组的元素可以直接赋值给多个变量,但变量数必须与元素数量一致。
元组中的元素值是不允许修改的,但我们可以对元组进行连接组合
元组中的元素值是不允许删除的,但我们可以使用 del 语句来删除整个元组
格式如下:
用 del 语句删除字典或字典的元素。
构造函数 dict() 直接从键值对元组列表中构建字典。如果有固定的模式,列表推导式指定特定的键值对:
此外,字典推导可以用来创建任意键和值的表达式词典:
如果关键字只是简单的字符串,使用关键字参数指定键值对有时候更方便:
集合是一个无序不重复元素的序列
将元素 val 添加到集合 set 中,如果元素已存在,则不进行任何操作:
也可以用 update 方法批量添加元素,参数可以是列表,元组,字典等:
如果存在元素 val 则移除,不存在就报错:
如果存在元素 val 则移除,不存在也不会报错:
随机移除一个元素:
与其他序列一样,可以用 len(set)
获取集合的元素个数。
1、每个条件后面要使用冒号 :
,表示接下来是满足条件后要执行的语句块。
2、使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
3、在 Python 中没有 switch - case 语句。
三元运算符:
编写条件语句时,应该尽量避免使用嵌套语句。嵌套语句不便于阅读,而且可能会忽略一些可能性。
else 语句中的语句2只有循环正常退出(遍历完所有遍历对象中的值)时执行。
在字典中遍历时,关键字和对应的值可以使用 items()
方法同时解读出来:
在序列中遍历时,索引位置和对应值可以使用 enumerate()
函数同时得到:
同时遍历两个或更多的序列,可以使用 zip()
组合:
要反向遍历一个序列,首先指定这个序列,然后调用 rev