python中的运算符
基本运算符 + - * / %
特殊运算符
** 乘方 a=b**10(b的十次方,可以开方)
// 地板除
• python2与python3对除法不一样
• python2:整数/整数=整数 5/2=2
• python3:整数/整数=浮点数 5/2=2.5
整数//整数=整数 5//2=2
比较运算符
>
<
>=
<=
==
!=
运算结果均为bool型
赋值运算符
=左边必须是一个变量
复合赋值运算符
+=
print(id(a))#打印a的地址
print(hex(id(a)))#打印a的十六进制地址
逻辑运算符
and 逻辑与 A and B
or 逻辑或 A or B
not 逻辑非 not A
计算结果均为bool型
位运算符
& 按位与
| 按位或
^ 按位异或
~取反
<<左移
>>右移
成员运算符
in 判断一个对象是不是集合中的元素
not in 判断一个对象是不是不是集合中的元素
返回结果为bool型
程序流程控制
顺序
选择分支
只有if语句一种
if 条件:
代码
elif 条件:
代码
else:
代码
在if结构中,最多只有一个代码块被执行
- 特殊结构
- X if Y else Z
- 判断Y 的条件是否成立,如果成立执行X,否则执行Z
循环
for循环 ,对集合遍历
for 变量 in 集合:
循环体
1.从集合中取一个元素
集合是有序的,从下标为0的元素取
集合是无序的,取元素顺序是随机的
2.将集合中的元素赋值给变量
3.进入循环体执行,再循环体内部可以使用变量进行操作
4.循环体代码执行完成,在从集合中再取一个元素,再重复执行234
5.集合中的所有元素都被取出过,循环结束
range()方法
返回一个数值序列,生成类似于list的序列
- range(N)0==>N-1的序列,自增1
- range(n,m)n==>m-1的序列,自增1
- range(100,10)返回空列表
- range(n,m,l)返回n==>m-1之间的序列,不一定自增
- l为步长,可正可负
- 参数均为整数
print(list(range(100,1,-1)))
while循环
while 条件:
循环体
1.判断条件是否成立
2.条件成立则进入循环体
3.循环体执行完成后,再重新判断条件是否成立
4.直到条件判断不成立结束循环,执行while后面的代码
ls=[]
start=0
end=10
while start<=end:
ls.append(start)
start+=0.5
print(ls)
控制循环,可用于for或while
break
所在循环直接终止,跳出循环,
continue
结束本次循环,进入下一次循环
for:
代码
else:
代码
for后的else会在循环执行完成后执行
for i in range(10):
print(i)
else:
print('123456')
while:
代码
else:
代码
while后的else也会在循环完成执行后执行,要求是正常结束,break不会执行else,continue 会执行
Eg:求100以内的素数
i=2
for i in range(2,100):
j=2
for j in range(2,i):
if i%j==0:
break
else:
print(i)
i=2
list=[]
for i in range(2,100):
j=2
for j in range(2,i):
if i%j==0:
break
else:
list.append(i)
print(list)
python中的函数
内置函数
print()
input()
....
自定义函数
def 函数名(参数列表):
函数体
定义的函数不会自动执行
eg.
求两个数的最大值
def max(a,b):
if a>b:
return a
else:
return b
a=10
b=20
m=max(a,b)
print(m)
使用默认参数时应尽量放在必须参数的后面,默认参数出现后,其后面均需要带有默认参数
关键字参数:在调用函数时,参数的指定方式
x=100
y=200
m=max(b=x,a=y)#x传给b,y传给a
可变参数:求很多个数中最小的一个
def 函数名(*参数)#调用函数时可以传递任意多个参数,这些参数会被封装成一个元组
def min(*nums):
print(nums)
min(1)
min(1,2,3)
def min(*nums):
m = nums[0]
for i in range(1,len(nums)):
if nums[i]<m:
m = nums[i]
return m
print(min(1))
print(min(1,-2,3))
def 函数名(**参数)#调用函数时传递多个参数,可以使用关键字参数的形式设置多个参数, 这些参数被封装成字典
def print_info(**infos):
print(infos)
print_info(name='Tom',age=18,sex='男',iphone='13888888888')
函数的返回值:
可以没有返回值
可以有一个返回值
可以有多个返回值(return a,b,c,...)
def mulit_return():
return 1,2,3
res1,res2,res3=mulit_return()
print(res1)
print(res2)
print(res3)
在接受时只使用一个变量接受返回值,或者使用相同数量的变量接受返回值
模块和包
模块
.py文件就是一个模块
模块中可以写类、函数
包
package 文件夹
必须有一个__init__.py文件
如何访问其他模块或者包里的内容
import引入
import demo01 引入模块时,里面的代码会被执行一遍
demo01.xx()
特殊方法
from xxx import xxxx
只引入某一个方法
内置变量
def mulit_return():
return 1,2,3
if __name__=='__main__':
res1,res2,res3=mulit_return()
print(res1)
print(res2)
print(res3)
只有在本模块会调用下面的代码,调用时不执行。当前模块__name__的值=__main__,在其他模块中,__name__=模块名字
from 包 import *需要用__all__定义里面的内容__all__=['demo01']
- 引入时需要注意:
- 引入不具有传递性
- 引入不能嵌套