数值
使用最多的为整数和浮点,大致和数学使用相同。
整形 int
数据大小限制,依靠硬件条件
在整形数据的运算中,大部和数学运算相同,但存在进制问题,在没用特殊指明进制时为10进制,(0b)表示2进制,(0o)表示8进制,(0x)表好似16进制,而十进制向各个进制的转化函数如下
Bin() 转为2进制
oct() 转为8进制
hex() 转为16进制
布尔型 boolean
python中存在特殊一类,布尔型,由Ture和Flase组成,是特殊的整数类型,其实际意义为1和0,较多用于判断最后产生的结果。
浮点型 float
和数学使用的小数类似
使用格式化占位符规定小数类型
```ruby
{0:.2f}’.format(20)
意义:第一个数字 为2位小数
注意除法
在python中,存在 \ 和 \ \ ,二者代表意思不同。\为除法,保留小数单位,\ \为地板除,最终输出数据为最大的小于除法结果的整数,需要进行四舍五入保留结果的方法是round()
Decimal类
和其他语言一样,在遇到浮点类型运算时,精度可能产生问题,如下:
IN [41]: 1.2+1.33
Out[42]: 2.5300000000000002
python中提供了一个包,Decimal,可以使得数据精度及计算过程精度得以保证
使用:
Decimal(1)
注意:可以传递给Decimal整型或者字符串参数,但不能是浮点数据,因为浮点数据本身就不准确
from decimal import *
Decimal.from_float(12.222)
Decimal
('12.2219999999999995310417943983338773250579833984375')
设定有效数字
from decimal import *
getcontext().prec = 6
Decimal(1)/Decimal(7)
# 结果为Decimal('0.142857'),六个有效数字
保留小数位数
from decimal import *
Decimal('50.5679').quantize(Decimal('0.00'))
#结果为Decimal('50.57'),结果四舍五入保留了两位小数
结果转化
from decimal import *
str(Decimal('3.40').quantize(Decimal('0.0')))
#结果为'3.4',字符串类型
字符串
在python中使用 “ ” 进行字符串的定义,字符串属于序列的一类。可通过字符串完成缩影等操作,但是字符串无法修改对象,智能创建新对象。同时字符串不能原位操作,即不能对其内部字母进行修改
常用函数:
s.replace(‘com’,’co’) 相当于新建立一个对象
s=s.join(a) 将字符串s和a相连
s.spilt(‘,’) 按,切割成列表
s.startwith(“url’) 以…为开头
s.endwith 以…为结尾
s.find(“a”) 找某个字符的位置
len(s) 获取s的长度
转义字符
为了处理无法通过字符实现的操作,通过转义字符实现
\\ 单斜杠
\’ 单引号
\’’ 双引号
\n 换行
\b删除一格
\t 空格
注意,在处理路径问题时,\的存在有其他含义,容易和转义字符成矛盾,此时一般使用\表示下一级或者在路径前方加 r
Path=r ’c:\abc\xas.txt’
格式化字符串
使用{}进行操作
“{NAME}={SALARY}”.FORMAT(NAME=”TOM,SALARY=””MOM)
字符串的加减乘操作
字符串支持加乘操作具体如下:
a="abc"
b=a*3
b
Out: 'abcabcabc'
a="abc"
b=“cbd”
c=a+b
c
Out: 'abccbd'
列表
任意对象集合,可变长度,可变序列
列表的定义:
通过函数list ( ) 或者 [ ] 进行定义
常见函数 :
l.append() 添加1个元素
l.extend([ ]) 将原序列尾部添加一个序列中的元素
l.sort() 排序 正
i.reverse() 排序 反
l.pop() 弹出最后1个元素并删除
i.index() 返回序列值
i.count() 统计某种元素的个数
del 删除
注意:
(1) 指定对象是否一致
l1=[1,2,3]
l2=l1
l1[0]=2
在执行完此操作后,l2中的元素也发生变化,如果需l2的元素不发生变化,l2获得的应该是l1的副本。可使用l1.copy()或者l1[:]获取
(2)切片操作
l1[a:b:c]
此中的a表示l1切片的起始位置(包括),b表示l1切片的终止位置(不包括),c表示步长
(3)广播
在序列的运算中,如果运算对象时整个序列,那么序列中的每个元素都会受到影响
(4)当索引不存在时,无法添加数据,会出现错误
l1=[1,2,3]
l1*3
[3,6,9]
字典
一种键值对类型数据,又称哈希表,其特点为数据顺序随机
字典的定义:
通过函数dict ( ) 或者 [ ] 进行定义
常用函数
d.get(“prive”,0.0) 获取对应值,如果没有 不会抛出异常并写入
emp =dice(name=20,age=20) 通过函数声明,不需要引号
emp.update(dep) 将dep更新至字典
emp.pop(“a”) 弹出键为a的键值并删除
emp,keys() 获取键
emp.values() 获取值
注意:
(1)字典结构存贮的数据并无顺序一说,可人为对键进行排序
(2)键名:不能使用可变的值,如序列等
(3)存在双重字典表:
emp={"name":{"first":'nmm',"second":"nbb"}}
emp.get('name').get('first') #第一张获取方法
emp['name'][firsr] #第二章获取方法
(4)当键值对不存在时,可以直接添加
(5)定义字典模型
from collections import namedtuple
dep=namedtuple("name",["a","b"])
a=dep('bb', b="dnakd") #第一个默认第一个,后面的需要指出
元组
任意类型任意嵌套但不可变,位置固定。通过()进行定义
文件数据处理
1 常用函数
fire=open("文件地址") #打开或创建文件
f.read() # 以字符串形式读出文件,注意是以指针形式记录,下次读出为空
f.readline() #按行读出
f.readline() #将类容以行为划分成序列
f.close() #关闭文件
2 open 函数详解
open函数后常有2个参数,第一个为目标文件的地址位置,第二个参数为文件的打开类型,包括
- r 读文件,文件只可以读取,无法修改
- w 写文件,对文件进行编写并删除之前类容
- a 追加,文件原先内容不变,对其进行添加
- b二进制文件 文件为2进制未见
3 注意
1)中文问题
在文件中直接田间中文会造成乱码,可在打开文件时
使用以下格式,避免乱码
ff=open("course.txt",'w',encoding="utf8")
2)Pickle类 :文件保存数据类型
在文件保存时,对需要临时保存的数据需要保存数据类似时,使用pickle,使用方法如下:、
Pickle
import pickle
f=open("datafile.pkl","wb")
d={"a":1,"b":2}
pickle.dump(d,f) #将类型导入文件'
f.close()
f=open("datafile.pkl",'rb')
f.read
Out[38]: b'\x80\x03}q\x00(X\x01\x00\x00\x00aq\x01K\x01X\x01\x00\x00\x00bq\x02K\x02u.'
data=pickle.load(f) #载入信息并导出
3)文件打开的一般格式:
在日常操作中,打开文件后需要及时关闭不然会产生很多问题。python提供一种方法可以避免此类问题,使用with
With opne(“dada”) as f
在with结束后自动关闭文件