python 对象类型


​ 程序在启动以后,是以进程方式存在。进程中数据(变量,函数,类,容器等)保存在内存中。

​ python中对象是什么?

​ 由于python是弱类型语言,python中一切皆对象,对象包含:变量,函数,类,容器

对象存储在内存中的值。这就意味着在创建对象时会在内存中开辟一个内存空间。

基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。

因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。

变量赋值

Python 中的变量赋值不需要类型声明。

每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。

每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

等号(=)用来给变量赋值。

等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。例如

# -*- coding: utf-8 -*-  
__author__ = 'zhougy'
__date__ = '202018/6/12 下午11:55'
​
counter = 1000  # 赋值整型变量
miles = 100.04  # 浮点型
name = "baidu"  # 字符串
​
print(counter)
print(miles)
print(name)

多个变量赋值

Python允许你同时为多个变量赋值。例如:

a = b = c = 1

以上实例,创建一个整型对象,值为1,三个变量被分配到相同的内存空间上。(通过id判断)

您也可以为多个对象指定多个变量。例如:

a, b, c = 1, 2, "sina"

以上实例,两个整型对象1和2的分配给变量 a 和 b,字符串对象 "sina" 分配给变量 c。

标准的数据类型

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

例如,一个人的年龄可以用数字来存储,他的名字可以用字符来存储。

Python 定义了一些标准类型,用于存储各种类型的数据。

对象按照类别分类:

(1)Python有基本数据类型:

  • Numbers(数字) — 基本数据类型, int,short, long, float

  • String(字符串)— 基本数据类型

  • bool (True or False)

  • None

(2)python有复合数据类型:

​ 类(class)

​ 函数

​ enum

(3)python的容器:

  • List(列表)

    —— 双向链表 有序,可变, 操作: 插入(append,insert, extend 任何位置), 删除(remove, pop,任何位置), 查找(L[index], 任何位置), 遍历(列表,下标索引)

    1 —》 2 —》 3 —》 4

    《— 《— 《---

  • Tuple(元组)

    —— 有序,不可变, 查找(T.index(value, start, end)), 遍历(列表,下标索引)

  • Dictionary(字典)

    — — key-value键值对。

​ 创建(1. mdict={'key':value}, 2.mdict=dict(key=value))

​ 插入:mdict[key] = value 获取:key获取value数据(get, pop)

​ 查找:mdict[key], mdict.get(key), 遍历(安装mdict.keys()遍历key,由mdict[key]获取value)

  • Set (集合)

    — 存储一维无序对象

​ 创建方式:set([1, 2, 3])

​ 插入:add, 删除:remove, pop

​ 判断元素是否在集合 in

​ 作用:(1)去重 (2)运算:交集(intersection),并集(union)

  • Queue (队列)

    — 存储先进先出的对象

​ 创建方式:mq = queue.Queue(maxsize=0)

​ 插入:put, put_nowait, 取数据:get, get_nowait

  • collections

    ​ Counter, defaultdict, deque, namedtuple, OrderedDict

python数字

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

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

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

var1 = 1var2 = 10

您也可以使用del语句删除一些对象的引用。

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

del vardel var_a, var_b

Python支持四种不同的数字类型:

  • int(有符号整型) 分32bit和64bit, 所占用的内存字节数不同

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

  • float(浮点型)

  • complex(复数) (复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。)

Python字符串

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

一般记为 :

s="a1a2···an" (n>=0)

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

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

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

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

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

比如:

s = 'ilovepython'
print(s[1:5])

s[1:5]的结果是love。

当使用以冒号分隔的字符串,python返回一个新的对象,结果包含了以这对偏移标识的连续的内容,左边的开始是包含了下边界。

str = 'Hello World!'
​
print(str)  # 输出完整字符串
print(str[0])  # 输出字符串中的第一个字符
print(str[2:5])  # 输出字符串中第三个至第五个之间的字符串
print(str[2:])  # 输出从第三个字符开始的字符串
print(str * 2)  # 输出字符串两次
print(str + "TEST")  # 输出连接的字符串

以上实例输出结果:

Hello World!
H
llo
llo World!
Hello World!Hello World!
Hello World!TEST

python列表

序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。

序列都可以进行的操作包括索引,切片,加,乘,检查成员。

创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:

list1 = ['physics', 'chemistry', 1997, 2000]
​
list2 = [1, 2, 3, 4, 5 ]
​
list3 = ["a", "b", "c", "d"]

与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。

(1)访问列表中的值:

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

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

列表用 [ ] 标识,是 python 最通用的复合数据类型。

列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。

加号 + 是列表连接运算符,星号 * 是重复操作。如下实例:

list = ['runoob', 786, 2.23, 'john', 70.2]
tinylist = [123, 'john']
​
print(list)  # 输出完整列表
print(list[0])  # 输出列表的第一个元素
print(list[1:3])  # 输出第二个至第三个元素
print(list[2:])  # 输出从第三个开始至列表末尾的所有元素
print(tinylist * 2)  # 输出列表两次
print(list + tinylist)  # 打印组合的列表

以上实例输出结果:

['runoob', 786, 2.23, 'john', 70.2]
runoob
[786, 2.23]
[2.23, 'john', 70.2]
[123, 'john', 123, 'john']
['runoob', 786, 2.23, 'john', 70.2, 123, 'john']

(2)更新列表

你可以对列表的数据项进行修改或更新,你也可以使用append()方法来添加列表项,如下所示:

list = []          ## 空列表
list.append('Google')   ## 使用 append() 添加元素
list.append('Runoob')
print(list)

(3) 删除列表元素

可以使用 del 语句来删除列表的元素,如下实例:

list1 = ['physics', 'chemistry', 1997, 2000]
​
print(list1)
del list1[2]
print("After deleting value at index 2 : ")
print(list1)

python元组

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

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

tuple = ('runoob', 786, 2.23, 'john', 70.2)
tinytuple = (123, 'john')
​
print(tuple)  # 输出完整元组
print(tuple[0])  # 输出元组的第一个元素
print(tuple[1:3])  # 输出第二个至第三个的元素
print(tuple[2:])  # 输出从第三个开始至列表末尾的所有元素
print(tinytuple * 2)  # 输出元组两次
print(tuple + tinytuple)  # 打印组合的元组

以下是元组无效的,因为元组是不允许更新的。而列表是允许更新的:

tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
list[2] = 1000     # 列表中是合法应用
tuple[2] = 1000    # 元组中是非法应用
print(list)

Python字典

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

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

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

dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
​
tinydict = {'name': 'john', 'code': 6734, 'dept': 'sales'}
​
print(dict['one'])  # 输出键为'one' 的值
print(dict[2])  # 输出键为 2 的值
print(tinydict)  # 输出完整的字典
print(tinydict.keys())  # 输出所有键
print(tinydict.values())  # 输出所有值

字典内置函数&方法

Python字典包含了以下内置函数:

序号函数及描述
1cmp(dict1, dict2)比较两个字典元素。
2len(dict)计算字典元素个数,即键的总数。
3str(dict)输出字典可打印的字符串表示。
4type(variable)返回输入的变量类型,如果变量是字典就返回字典类型。

Python字典包含了以下内置方法:

序号函数及描述
1dict.clear()删除字典内所有元素
2dict.copy()返回一个字典的浅复制
3[dict.fromkeys(seq, val])创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值
4dict.get(key, default=None)返回指定键的值,如果值不在字典中返回default值
5dict.has_key(key)如果键在字典dict里返回true,否则返回false
6dict.items()以列表返回可遍历的(键, 值) 元组数组
7dict.keys()以列表返回一个字典所有的键
8dict.setdefault(key, default=None)和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
9dict.update(dict2)把字典dict2的键/值对更新到dict里
10dict.values()以列表返回字典中的所有值
11[pop(key,default])删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
12popitem()随机返回并删除字典中的一对键和值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值