5条件、循环和其他语句
5.1import的使用
5.1.1import语句
import module1[,module2 。。。]从Python的标准库中倒入其他模块
当解释器遇到import语句,会在搜索路径下找对应的文件,搜索路径是由一系列的目录名组成,看起来像环境变量,事实上可以通过定义环境变量来确定搜索路径,搜索路径在Python编译或安装是确定的,被存在sys模块的path变量中:
如果只要导入某个模块的某个对象,可以使用from,如下
from math import pi 从math模块导入pi对象
可以如下倒入某个模块多个对象: from math import pi,sin 多个对象以逗号隔开
可以如下倒入某个模块所有对象:form math import * 导入math模块所有的对象
5.1.2使用逗号输出
5.2别样的赋值方法
1)序列解包赋值:
一定数量的变量可以一样对应接收同等长度的序列的值:
2)链式赋值:x = y = z = 1
5.3语句块
语句块是满足一定条件时执行一次或多次的语句,语句块的创建方式是在代码前放置空格缩进,同一个语句块每一行语句保持同样的缩进量,如果缩进不同,Python编译器就会认为不属于同一个语句块或认为是错误的,在Python中冒号(:)表示语句块的开始,语句块每一个语句都要缩进,当退回和已经闭合的块一样的缩进量,表示当前语句块结束。
5.4条件语句
5.4.1布尔变量的作用
解释器看作假(false)的布尔表达式:False None 空字符串“” 空元组() 空列表[] 空字典{}
在Python中True == 1.False == 0,True + False + 2 = 3,另外,任何非空非0值都可以被认为是真
bool函数可以做boolean值转换,如bool(2)转换为 True
5.4.1if else elif与嵌套代码块
5.4.2更多操作
1)is:同一运算符
is运算符用于判定同一性而不是相等性,==用于判定相等性:
2)比较序列
3)布尔运算
可以使用and连接两个布尔表达式,如if x and y 当x和y都为True 时返回True,当x为False时直接返回False,y表达式不再继续运行
5.4.3 断言
在Python中,可以使用断言来阻止程序继续运行:
assert 布尔表达式,msg
当布尔表达式为真时,程序继续向下运行,否则抛出AssertionError,提示msg信息
5.5循环
1)while循环,先判断再执行
2)for循环
3)遍历字典
4)并行跌倒
Python可以使用zip(arr1,arr2、。。。)并行迭代多个序列,返回一个元组的列表,当短序列用完后,迭代停止:
5)翻转和排序迭代
可以使用sorted对序列进行排序,可以使用reversed对序列进行翻转
6)跳出循环
可以使用break跳出当前层次的整个循环,可以使用continue跳过当前层次的本次循环:
7)while循环中使用else语句,while结束后执行else语句
8)for循环中使用else语句,for循环结束后执行else语句
由上亦可以发现,由break跳出的循环不会执行其else语句
9)pass空语句做预留
如果某个地方需要语句,但目前不需要写,不写由会报错,可以使用pass跳过此处,使得程序可以继续运行:
6.函数
6.1定义函数
代码格式:
def 函数名(参数列表):
函数体
函数定义规则:
1)以def关键词开头,后接函数名和圆括号()
2)所有参数和自变量放入圆括号,可以在圆括号定义参数
3)函数的第一行语句可以选择性使用文档字符串,用于存放函数说明
4)函数内容以冒号开始,并且缩进
5)return[表达式]结束函数,选择性返回值,若无返回表达式,也有返回值,返回值为None
6.2函数的参数
函数参数分为以下几种:必须参数、关键字参数、默认参数、可变参数、组合参数
6.2.1必须参数
必须参数必须以正确的顺序传入参数,调入时数量必须和声明时一样
6.2.2关键字参数
关键字参数就是在调用是指明参数名,可以不按照声明顺序调用
可以部分使用关键字,但使用关键字的要放在不使用的后面,匹配时会按照声明顺序进行匹配,故按照声明顺序,某个参数开始使用关键字参数,后面的参数都要带参数名,前面默认匹配的参数名再次赋值会报错