python 余数定义 a=k*b+r_Day02.python概念,数据类型(数字、字符串、列表、元组、字典、文件等),Day02python...

python基础七大标准数据类型

声明

1)该文章整理自网上的大牛无私奉献的资料,具体引用的资料请看参考文献。

2)本文仅供本人学习记录,非商用。所以每一部分具体的参考资料并没有详细对应。如果某部分不小心侵犯了大家的利益,还望海涵,并联系博主删除。

3)博主才疏学浅,文中如有不当之处,请各位指出,共同进步,谢谢。

七大标准数据类型

在内存中存储的数据可以有多种类型。

例如, 一个人的名字可以用字符来存储, 年龄可以用数字来存储, 爱好可以用集合来存储等等。

Python有五个标准的数据类型:

Numbers(数字)

String(字符串)

List(列表)

Tuple(元组)

Dictionary(字典)

文件

其中属于集合类型的数据类型有 列表、元组及字典。

0x00. 数字(Numbers)

数字数据类型用于存储数值。

他们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。

当你指定一个值时,Number对象就会被创建:

var1 = 1

var2 = 2

del语句删除一些对象的引用,其语法是:

del var1[,var2[,var3[....,varN]]]]

通过使用del语句可以删除单个或多个对象的引用。例如:

del var1

del var1, var2

** 四种不同的数字类型:**

int(有符号整型)

long(长整型[也可以代表八进制和十六进制])

float(浮点型)

complex(复数)

a. int(整型)

在32位机器上,整数的位数为32位,取值范围为-2

31~2

31-1,即-2147483648~2147483647

在64位系统上,整数的位数为64位,取值范围为-2

63~2

63-1,即-9223372036854775808~9223372036854775807

b. long(长整型)

跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,长整数数值不可能无限大。

注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。

c. float(浮点型)

浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。

d. complex(复数)

复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。

注:Python中存在小数字池:-5 ~ 257

小整数对象——小整型对象池

在实际编程中,数值比较小的整数,比如1,2,29等,可能会非常频繁的出现。而在python中,所有的对象都存在于系统堆上。想想?如果某个小整数出现的次数非常多,那么Python将会出现大量的malloc/free操作,这样大大降低了运行效率,而且会造成大量的内存碎片,严重影响Python的整体性能。

在Python2.5乃至3.3中,将小整数位于[-5,257)之间的数,缓存在小整型对象池中。

0x01. 字符串(String)

字符串或串(String)是由数字、字母、下划线组成的一串字符。

它是编程语言中表示文本的数据类型。

Python的字串列表有2种取值顺序:

从左到右索引默认0开始的,最大范围是字符串长度少1

从右到左索引默认-1开始的,最大范围是字符串开头

如果你要实现从字符串中获取一段子字符串的话,可以使用变量 [头下标:尾下标],就可以截取相应的字符串,其中下标是从 0 开始算起,可以是正数或负数,下标可以为空表示取到头或尾。

比如:

s = 'i love python'

s[2:6]的结果是love。(顾头不顾尾,或左闭右开)

操作实例:

str = 'Hello World'

print(str) #输出完整字符串

print(str[0]) #输出字符串中的第一个字符

print(str[2:5]) #输出字符串中第三个至第五个之间的字符

print(str[2:]) #输出从第三个开始到最后的字符串

print(str*2) #输出字符串两次

print('say: ' + str) #输出连接的字符串

0x02. 列表(List)

List(列表) 是 Python 中使用最频繁的数据类型。

列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(所谓嵌套)。

操作实例:

print('say: ' + str) #输出连接的字符串

list = ['apple', 'jack', 798, 2.22, 36]

otherlist = [123, 'xiaohong']

print(list) #输出完整列表

print(list[0]) #输出列表第一个元素

print(list[1:3]) #输出列表第二个至第三个元素

print(list[2:]) #输出列表第三个开始至末尾的所有元素

print(otherlist * 2) #输出列表两次

print(list + otherlist) #输出拼接列表

0x03. 元祖(Tuple)

元组是另一个数据类型,类似于List(列表)。

元组用"()"标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。

操作实例与列表相似

0x04. 字典(Dictionary)

字典(dictionary)是除列表以外Python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。

两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

字典用"{ }"标识。字典由索引(key)和它对应的值value组成。

操作实例:

dict = {}

dict['one'] = 'This is one'

dict[2] = 'This is two'

tinydict = {'name':'john','code':5762,'dept':'sales'}

print(dict['one']) #输出键为'one'的值

print(dict[2]) #输出键为2的值

print(tinydict) #输出完整的字典

print(tinydict.keys()) #输出所有键

print(tinydict.values()) #输出所有值

字典的声明:

# 字面量形式声明数组

d = {'name':'Tom', 'salary':9000.00, 'age':20)

# 构造函数形式声明数组

d = dict(name=Tom, salary=9000.00, age =20)

字典的操作:

# 查找

d['name'] # 直接按key查找,查找不存在的键值会抛出异常

d.get(name) # 以get方法查找,查找不存在的会返回None

d.get(name, 0) # 第二个形参表示查找不到返回的默认值

# 修改

d['age'] = 30 # 如果键值不存在会直接增添

# 增加

d.update(字典)

# 删除

d.pop('name')

# 查看所有键值

d.keys() # 注:返回的不是列表,需要列表操作需要list()转换一下

# 查看所有的值

d.values() # 注:返回的不是列表,需要列表操作需要list()转换一下

# 查看所有键和值

d.items()

# 拆分键和值

for k,v in d.items():

print('{} ===> {}'.format(k,v)

# 字典可以嵌套

d = {'name':{'firstname':'Jon','lastname':'Tom'}}

查看时采用d['name']['firstname']

# 排序列表,字典是乱序的,如果想按照顺序打印可以先转换成列表在排序,也可以使用全局方法sorted

# 第一种方法

ks = list(d.keys())

ks.sort()

for k in ks:

print(k,d.get(k))

# 第二种方法

ks = d.keys()

for k in sorted(ks):

很多种数据类型都可以放入字典表中,但链表不可以作为键值,因为链表可以原位改变,键值可以是字符串,元组,或数值。

6.元组(tuple)

特征:元组是任意对象的有序集合,可以通过下标访问元素,属于不可变类型。元组长度固定,任意类型,任意嵌套。

元组的声明:

# 以字面量形式声明

t = (1,2)

# 但要注意如果声明只有一个元素的元组时,需要在元素后加逗号,如

t = (1,)

元组的操作:

# 相加

(1,2) + (3,4) = (1,2,3,4)

# 遍历

for c in t:

# 查找

t.index()

# 统计

t.count()

# 列表,元组和字典的比较是指包含关系

{1,2} <= {2,1} 就是包含关系,true

{1,2} <= {1,2,3} 就是包含关系,true

{1,2} <= {2,3,4} 就不是包含关系,false

namedtuple模块

from collections import namedtuple

# 构造模板

Employee = namedtuple('Employee',['name', 'age'])

# 创建实例

jerry = Employee('Jerry',age=30)

# 查看元素

jerry.name

3.文件

使用open()与本机对象进行交互

文件操作:

# 打开文件

file = open('文件名', 模式, [编码形式])

fie=le = open('data.txt', 'r','utf8')

# 其中编码模式可选 r——读、w——写、a——追加、b——二进制文件、+ 既可读又可写

# 向文件中写入

file.wirte("内容")

# 从文件中读取

file.read() # 读取所有信息,返回为字符串

file.readline() # 读取一行

file.readlines() # 按行读取全部文件,返回值为列表

# 关闭文件

file.close()

上下文管理器:使用with可以不写关闭文件语句

with open('文件','模式') as f:

f.write()

f.read()

使用pickle存取Python对象

import pickle

f = open('datafile.pkl', 'wb')

d = {'a':1, 'b':2}

pickle.dump(d,f) # 存储信息

pickle.load(f) # 读取信息

总结框架

eae170a3b7827690cb427a6366e79fae.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值