逻辑运算符,运算结果是布尔值:
and、or、not
优先级:
not > and > or
从左到右
逻辑运算符,运算结果是布尔值:
and、or、not
优先级:
not > and > or
从左到右
算数运算符
加法:+
减法:-
乘法:*
除法:/
求余数:%
求指数:**
相除取整(地板除)://
比较运算符:
等于:==
不等于:!=
大于:>
小于:<
大于等于:>=
小于等于:<=
按顺序赋值:
a,b=10,5
b=() #元组类型
b=[] #列表类型
b={}#字典类型
变量的命名规则:
定义规则:变量名 = 数据
赋值的时候不需要指定数据类型
type(),查询变量的数据类型
函数的分类:根据函数的返回值和函数的参数
#有参数无返回值的
#有参数有返回值的
#无参数有返回值的
#无参数无返回值的
函数返回值
概念:函数执行完以后,会返回一个对象,如果在函数的内部有return,就可以返回实际的值,否则返回一个空(None);
返回值的类型:任意类型
类型:返回值类型应该取决于return后面的类型
用途:给调用方返回数据
在一个函数内可以出现多个return值,但是肯定只能返回一个return
如果在一个函数体内执行了一个return,意味着函数就退出了,return后面的代码语句将不会执行。
关键字可变参数
用两个*定义
在函数体内,关键字参数是一个字典类型
key值必须是一个字符串 key是一个字符串
def keyFunc(**kwargs):
print(kwargs)
pass
调用
dictA={"name":"leo", "age":35}
keyFunc(**dictA)
或者
keyFunc(name='peter','age'=35)
def complexFunc(*args, **kwargs):
可选参数必须放到关键字可选参数之前;
可选参数接受的是元祖类型数据(或者接收后将数据转换为元组处理)
关键字可选参数接受的是字典型数据,或者将接受的数据转换为字典处理
调用时会根据实际参数的格式自动匹配到对应的形参类型。
complexFunc(age=36)
{'age':36}
函数定义:
def 函数名(参数列表):0-n个
代码块
函数的参数:
必选参数、默认参数(缺省参数)、可选参数、关键字参数
参数:函数为了实现某向特定的功能所必须的外部数据。
函数相当于一个房间,参数相当于这个房间的入口
def sum(a, b): 形式参数:只是意义上的一种参数,在定义的时候不占内存地址的。
sum=a+b
print(sum)
函数调用在调用的时候必选参数,是必须要赋值的
sum(20, 15)
#20和15就是实际参数,占用内存地址,是实实在在的参数
默认参数[缺省参数]
def sum(a=20, b=30):
print('默认参数试用=%d'%(a+b))
pass
# 默认参数调用
sum1(10)
默认参数试用40
# 在调用的时候如果未赋值,就会用定义函数时给定的值
缺省参数始终存在于参数列表的尾部;
可选参数(不定长参数):当参数的个数不确定时试用,比较灵活
def getcomputer(*args):
.
什么是函数:一系列Python语句的组合,可以在程序中运行一次或者多次,一般是完成具体的独立的功能。
为什么要使用函数
打吗的复用最大化以及最小冗余代码,整体代码结构清晰,问题局部化
函数定义:
def 函数名():
代码块
def + 关键字 +小括号 + 冒号 + 换行缩进 + 代码块
函数的调用:
函数名加()即可调用该函数
先存在,再使用:先定义,再调用
函数说明文档:
函数内容的第一行可以用字符串进行函数说明
函数的参数:
定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了。对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了。
Python的函数定义非常简单,但灵活度却非常大,除了正常定义的必选参数外,还可以使用默认参数、可变参数和关键字参数、使得函数定义出来的接口,不但能处理复杂的参数,还可以简单化调用者的代码。
缺省参数:
缺省参数,在调用函数时如果没有传参数,那么会使用定义函数时给的缺省值。缺省参数必须在参数列表的最后面,否则会报错。
不定长参数:
一个函数有时候会处理比当初声明的参数要多,这就是不定长参数,定义函数时不用生命参数名,加了星(*)的变量args会存放所有未命名的变量参数,args为元组;再加**的变量kwargs会存放命名参数,即形如key-value的参数,keywargs为字典。
引用传参:
Python中函数参数是引用传参(注意不是值传递)。对于不可变类型,因变量不能修改,所以运算不会影响到变量自身,而对于可变类型来说,函数体中的运算有可能会更改传入的参数变量。
列表、元组、字符串是序列,有序的数据集合,因为有序,所以就有了索引,index,由此可以对这些序列进行切片处理。
元组是不可变的序列,存储固定的数据,使用频率不高;
字典不是序列,不能用切片操作;
函数:
是最基本的一种代码抽象的方式
传数、调用、不定长参数
return
缺省参数和不定长参数
IDE:集成开发环境
单行注释:#
快捷键ctrl+/
多行注释:'''或者""",开始结束都需要
对于之前版本的python,有两种特殊的注释
1. 指定python解析器的路径:
#!/isr/bin/python3
2. 指定编码格式:
#-*-coding=utf-8 -*-
进入python环境:win+R,在输入框内输入“Python”
退出python交互式环境:exit()或者quit()
在cmd节目快速获得当前文件夹路径:选中文件夹地址,然后输入“cmd”再按回车
执行python文件:声明一个".py"结尾的文件,可以保存python代码,打开命令提示符,进入要执行文件的本地目录,然后在命令行后面直接输入python 文件的名字.py
从cmd进入所在文件夹(D盘为例),基本的dos命令:
输入“d:”回车
输入“cd 所在文件夹名称”回车(cd:进入目录)
公有方法的操作:
相加操作
strA='人生苦短'
strB='我用python'
strA+strB
listA+listB
元组也可以
复制,用*
print(strA*3)
判断某元素是否在某个数据集中,用in
print('生’ in strA)
True
字典查找key
字典不是序列
字典dict是Python中的一种数据类型,可以存储任意对象。字典是以键值对的形式创建的{'key':'value'}利用大括号包裹;
通常使用键来访问数据,支持增、该、删
在字典中查找某个元素时,是根据键、值。字典的每个元素都由:键、值2个部分组成。
访问值的安全方式get方法,在我们不确定字典中是否存在某个键而又想获取其值时,可以使用get方法,还可以设置默认值;
特点:
1、不是序列类型,没有下标概念,是一个无序的键值集合,是内置的高级数据类型;
2、用{}表示字典对象,每个键值对用逗号分隔
3、键必须是不可变的类型(元组、字符串)
4、每个键是唯一的,如果出现重复的键,后者会覆盖前者。
注意点:
1、字典的键(key)不能重复,值(value) 可以重复。
2、字典的键(key)只能是不可变类型,如数字、字符串、元组。
字典的常用方法:
修改元素(字典中的值是可以修改的,通过键找到对应值修改)
新增元素(如果在使用变量名['键']=数据时,这个键在字典中,如果不存在就会新增这个元素;
删除元素:del删除指定元素clear清空字典
获取键:keys:python3返回一个包含字典所有key值的dict keys对象,用for循环取出每个key值。
获取键值对:python3返回一个包含所有(键,值)元组的列表dict items对象;
统计个数:len()可以查看字典中有几个键值对
获取值values:python3版本中试用values返回一个包含所有值(value)的dict values对象
删除指定键:pop(‘键’)删除指定键
dictA={}空字典
dictA['name']='李易峰'
{'name':'李易峰‘}
获取所有的键:
print(dictA.keys())
获取所有的值:
print(dictA.values())
获取所有的键和值:
print(dictA.items())
输出键值对
for key,value in dictA.items():
print('%s==%s'%(key,value))
dictA.update({'age':32})更新(增加)
如何对字典排序
sorted()排序
按照键来排,
sorted(dictA.items(),key=lambda d:d[0])
按照值来排
sorted(dictA.items(),key=lambda d:d[1])
元组tuple:元组是用小括号来声明的,通过下标访问其中的元素;元组中的元素不能修改(列表可以)。
元组的创建很简单,只要在括号中添加元素,用逗号分隔就可以;
元组的内置方法count,计算元素在元祖中出现的次数。
元组的内置方法index查找指定元素在元祖中的下标索引。
元组是不可变的序列,创建后不能修改
当元组中只有一个元素时,要加上逗号,不然,以后解释器会当做整型来处理
支持切片操作
内容可以是任何数据类型
print(tupleA[::-2])从右往左各两个取一个;负号代表方向,从哪个方向取,数字代表步长(2的意思就是每两个取一个);
可以对元组中的列表进行修改;
列表list: python中非常重要的护具结构,有序的数据集合
1、增加增删改查
2、列表中的数据是可以变化的(内存地址不会变化)
3、用中括号表示列表类型,数据项之间用逗号分割;注意:数据项可以是任何数据类型
4、支持索引
定义列表用中括号[]
li=[]
append():在列表后面追加元素
count():统计元素出现的次数;
extend():扩展,相当于批量添加;将多个列表融合为一个
index(): 获取指定元素索引号,查找索引的下标值括号内写元素内容
insert(): 在指定位置插入,insert(位置,插入内容)
len() 获取列表中的元素个数(长度)
pop():删除最后一个元素;参数是索引值
remove(): 移除指定的元素()写指定的元素,不是索引号;
reverse():反转列表
sort():列表排序
reverse()=True
倒序
list() 强制转换成列表型对象
修改,直接用下标修改元素,list[n]=x
del:删除
批量删除:del list[1:3]
序列:在python的中,序列就是一组按照顺序排列的值(数据集合)
在python中存在3中内置的序列类型
字符串
列表
元组
序列的优点:支持索引和切片的操作
特征:第一个正索引为0,指向的是左端;第一个索引为负数的时候,指向的是右端
切片:指截取字符串中的一段内容。切片使用语法:(起始下表:结束下表:步长(默认为1))切片截取的内容不包含结束下标对应的数据,步长是指哥几个字符截取。
id函数可以查看一个对象的内存地址
index()如果没有找到对应的数据,便会报异常;
find()函数不会
slice[start:end:step]
【
while的使用:适用于对未知的循环次数(对循环的次数不确定)根据条件动态控制循环是否结束
for使用:适用于某个数据容器,遍历某个容器,循环次数相对确定,通过已知边界确定,对可迭代对象的遍历。也有计数功能
for ...else的结构
只要for循环里面出现了break,下面的else就不会执行)
for 循环格式:
for 临时变量 in 字符串
语法特点:遍历操作,一次的取集合容器中的每个值;
for 临时变量 in 容器
执行代码
字符串类型本身就是一个字符类型的集合;
range 此函数可以生成一个数据集合列表
range(起始值,结束值, 步长(不能为0)),数据是左包含,右不包含;
break 退出循环;代表结束,满足条件直接的结束本层循环
continue:跳过本次循环
结束本次循环,继续的进行下次循环(当continue的条件满足时,本次循环剩下的语句将不再执行,后面的循环继续走;
这两个循环只能用在循环中