pyhton:
3个双引号或单引号注释 #是单行注释
字符串用双引号单引号都可以。例:print(“hello world”) 与 print(‘hello world’)相同
note:打印的内容中有双引号时可以用单引号括起来,如果有单引号用双引号括起来,如果都有可以用\加在要打印的引号前,(转义符)代表这个引号没有意义
import导入
三引号是长字符串
python是一个解释型语言。python会自动判断变量类型。
a= 31
print(‘%o,%d’ %(a,a))#用八进制与十进制打印出变量a
输出结果为 37,31
o代表八进制输出,
random模块中randint(a,b)函数可以生成一个ab之间的整数,使用之前可以用import加入random模块
random默认采用当前操作系统的系统时间作为随机数种子,可以用random.getstate()来获取随机数种子加工之后随机数内部生成器的状态。然后用setstate来破解这个随机数
数字类型
1、整数
python中整数长度不受限制,拥有无限大的精度,因此随时可以进行大数运算
2、浮点数
python 与C一样使用IEEE754标准菜存储浮点数,所以产生一定精度的误差
因为浮点数精确度有限所以得到的结果尽量不用来比较
用decimal模块来进行精确的浮点数运算
3、复数
实部虚部组成
x= 1+2j x.real 获取实部数值 x.imag获取虚部数值获取到的为浮点数
数字运算
地板除值保证结果为整数,不是整数就向下取整(取比目标结果小 的整数)如果3//2为1,-3//2结果为-2
int()会把浮点数小数部分直接扔掉而不是四舍五入
pow有第三个参数
pow(2,3,5)相当于2的 3次方对5取余
布尔类型
false true
bool()函数可以用来判断布尔类型
定义为false的对象:None和Flase
值为零的数字类型:0,0.0,0j Decimal(0) Fraction(0,1)
空的序列和集合:()set() range(0)
and or not 与或非
and 和or 的短路逻辑,从左往右只有第一个操作数的值无法确定逻辑结果时,才会对第二个操作数求值
运算符优先级
分支和循环
分支结构:
条件:if 加表达式 加:else后也要加:
elif语句,再次判断,如判断成绩,减少无效判断
条件成立时执行的语句+if+条件语句+else+不成立时的语句 这时不用加冒号
例:
if a<b :
small = a
else:
small = b
变为
small = a if a<b else small = b
好处是将多条变为一条
循环结构:
while加表达式:也要加冒号
不使用大括号而是用缩进来区分开
break 跳出一层循环体
continue 跳出本次循环,到此次循环开头
循环中可以用else,当循环语句不为真时,else才会被执行
如果被中断,则不会执行else里的语句
for循环
for 变量 in 可迭代对象:
range函数
range(stop)
range(start,stop)
range(start,stop,steps)
列表
类似数组,因为python 没有数据类型
1、创建普通列表
列表名 = [‘变量’,‘变量’,‘变量’]
2、创建混合列表
列表名 = [1,‘哈喽’,2。1,[1,2,3]]
3、创建一个空列表
列表名 = []
列表名.append(变量名) 添加列表项的函数,只能添加一个项
列表名.extend(列表名) 把一个列表里的所有项添加到前面列表的后面
列表名.insert(编号,变量) 把一个变量放到列表的几号中
列表名.remove(变量) 删除列表中的一个变量
del 列表名【N】 删除列表中的第N号元素,只加列表名就删除整个列表
列表名.pop() 不带参数则认为是最后一个元素,参数可以是编号
也可以用于赋值,n= 列表名.pop()
列表分片
列表名【1:3】 左边是开始的下标,右边是结束的下表,但是不包含结束的那个会拷贝出一个新的列表,左参数没有就从第一个开始,右参数没有则到结尾结束(此时包含最后一个元素)
列表操作符
< >只辨别第一 个元素。
+可以拼接列表(字符串也可以拼接)
号可以把列表赋值3份。类似字符串的
列表名.count(变量) 检测该变量在列表中出现了多少次
列表名.index(变量,3,7) 显示该变量的位置,后面两个参数是检测范围
列表名.reverse 把列表名翻转过来
列表名.sort 把列表中的变量从小到大排队。
如果要拷贝列表还是用分片不要用等于,否则两个指向的则是同一个列表而不是创建出了新的列表
元组 元组不可改变,但是使用和列表很相似
创建元组用小括号
元组名 =()
元组的分片(拷贝)展示等都与列表一样
字符串
字符串函数
字符串名.函数
字符串格式化
fomat()函数 位置参数,或者关键字参数
“{0} love {1}”,format(“I”,“you”)
结果为:’I love you‘
“{a} love {b}”,format(a=“I”,b=“you”)
结果为:’I love you‘
0后面:就是格式化的内容操作
序列
list ()把一个可迭代对象转换成列表,无参数默认生成一个空列表
可以把元组,字符串等变成列表
tuple()把列表转为元组
max()返回一个序列或参数集合中的最大值
min()返回最小值 字符串也可以
但必须是相同的数据类型
sum(,star) 求参数里的和,有一个可选参数star。如果就把前面参数的和加上star 的值输出
sorted() 从小到大排列
reversed()翻转,返回的是一个迭代器对象,可以用list转换成列表
enumerate()枚举,返回的也是对象。把对象的编号的值生成元组
zip()效果如下,返回的也是迭代器对象
函数
用def创建函数,
def myfunction():格式,注意要冒号
返回值也可以用return
双下横线是默认属性,特殊属性,双下划线开始双下划线结束
可以用函数.__doc__来看函数的默认属性(定义函数时双引号或单引号里的内容)
关键字参数:
例
a= xx就是关键词
默认值参数:
在定义时给出参数默认只。调用时不给参数就采用默认值
收集参数:
不知道函数到底需要多少个参数时
用星号加形参做成收集参数,即可传入任意参数
如果收集参数后面还有别的参数,后面其他的参数就要用关键词参数,否则都会被归到收集参数;
局部变量与全局变量 local variable global variable
在函数内部修改全局变量时,函数会新建一个局部变量与这个全局变量名称相同
解决方法:从函数中用global 声明一下变量在进行修改
如
global count
count = 10
内嵌函数和闭包
从函数中定义的函数外部是不可调用的
闭包
一个函数内返回内嵌函数,如果给一个值返回的是一个函数类型,必须给两个值才会返回结构如上图
不能在外部对内部函数进行调用
在内部函数中只能对外部函数的局部变量进行访问,不能修改
可以用列表进行修改,或者使用nonlocal声明不是外部变量
lambda表达式
匿名函数
不用后系统会自动清理,前面是参数,冒号后面是返回值,用lambda 直接生成一个简单函数
python 写一些执行脚本时,使用lambda就可以省下定义函数的过程,比如只写一个简单的脚本来管理服务器时间,我们就不需要专门定义一个h函数然后再写调用,使用lambda就可以使得代码更加简单,
对于一些比较抽象且整个程序执行下来只使用一两次的函数,用lambda就可以省去起名的麻烦
简化代码的可读性,可以跳过去读开头def的过程
实用 的内置函数
filter()过滤器函数
有两个参数,第一个参数可以是个函数也可以是个none 第二个参数是个可迭代数据,如果第一个参数是函数则把后面可迭代数据的每个元素作为函数的参数进行计算
把返回true的值筛选出来变成一个列表。如果第一个参数位none 则把后面true 的元素返回出来
map()(映射)
将第二个参数序列的每一个元素用参数一的函数加工,将加工完毕的序列返回
递归
在函数内部调用自己或其他课件函数
默认递归深度位100
import sys
sys.setrecursionlimit()
这样可以修改递归深度括号没填需要的深度
字典
用{}表示是字典(()表示元组,【】表示列表)
dict1= {‘李宁’:一切皆有可能}中间用冒号隔开。冒号前面是KEY, 后面是value
使用时dict1【‘李宁’】 就会返回value
dict()生成一个字典,只有一个参数,返回一个字典
可以用元组或者列表把所有的映射关系伪装成一个参数
也可以用关键字创立
关键字创建会根据首字母排序,并且key不能加引号。
可以进行修改,用【】中括号
如果是一个里面没有的key 和value 就会添加一个新的项目
内置函数 使用方法:字典名.fromkeys()
fromkeys()两个参数第一个参数是key值,第二个参数是value 值,如果不给第二个参数则默认是none 要用元组输入
keys() values()显示keys值或者显示values值,不需要参数
items() 把每一个项用元组的形式打印出来
get() 参数是key值,返回key对应的value get后面也可以多个参数,如果没有这个key则打印第二个参数,如果有这个key则打印对应的value
clear()清空字典
copy前拷贝 拷贝一个字典给别的变量,地址不同, 直接用=地址相同
setdefault()增加一个项,第一个参数为key第二个参数为value
update()参数是一个字典,用参数的字典来更新调用的字典
集合
用花括号括起来一堆数字并且数字没有映射关系时,这个就是一个集合
不支持index(索引)
或者用set()函数 参数可以是元组,列表或者字符串 重复的会被删除
不可变集合 frozen冰冻的
frozenset()参数鱼set相同
文件
使用open()函数打开文件
open(file, mode=‘r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
第一个参数是文件名 如果不带路径则会在当前文件夹中找并打开、
第二个参数是打开模式
python会缓存写入内容,所以写入完文件后要关闭文件
read如果不带参数则会直接全部取出来,文件指针指到末尾
readline 是读取一行。读到换行符\n
文件系统