前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python每天五分钟-数据类型

Python每天五分钟-数据类型

作者头像
用户2475223
发布2019-12-17 11:09:31
5840
发布2019-12-17 11:09:31
举报
文章被收录于专栏:codersamcodersam
  • 在Python中数据类型与其他语言大同小异,分别有整型(int)、浮点型(float)、布尔型(bool)、字符串(str)、空值(None)。
  • 其中整型和浮点型都是数字类型,在Python中还有其他两个数字类型长整型(long)、复数(complex)。
  • 此外,Python还提供了字典、列表等, 还允许创建自定义数据类型 。

注意:long 类型只存在于 Python2.X 版本中,在 2.2 以后的版本中,int 类型数据溢出后会自动转为long类型。在 Python3.X 版本中 long 类型被移除,使用 int 替代


整型

整型即整数,Python可以处理任意大小的整数,其中也包括负整数。


浮点型

浮点型也就是小数,浮点数对于很大或很小的数值,计算机会以科学记数法进行存储,把10用e来代替,例:1.23e9=1.23x109或者 0.000012=1.2e-5


字符串

Python中的字符串使用""或者''包裹任意字符,比如:'abc'"abc"如果'也想当成一个字符输出的话可以使用包裹起来"I 'm Sam" 如果字符串内都包含'"可以使用\转义字符来标识,例:'I\'m \"Sam\"!'

代码语言:javascript
复制
\n # 表示换行
\t # 表示制表符
r'' # 表示默认不需要转义任何字符
# Python可以使用'''...'''来表示多行字符串
blockchain
blockchain

提示符会从>>>变成...,这表示你可以接着上一行的代码继续输入,...不是代码的一部分

获取字符串长度

代码语言:javascript
复制
>>>> a='abc'
>>>> len(a)
3

替换字符串字符

这里需要注意的是,str是变量,而'love'才是字符串对象。在使用str.replace()时,不会作用在变量str上,str.replace()作用在'love'字符串对象上,并不会改变str变量的指向。我们只需要将str.replace()返回的新的字符串对象赋值给新的变量即可。

代码语言:javascript
复制
str = 'love'
print(str.replace('l', 'L'))
print(str)
# 输出结果
# Love
# love
#######
str = 'love'
strs = str.replace('l', 'L')
print(strs)
print(str)
# 输出结果
# Love
# love

布尔型

Python中的布尔型使用True和False来表示,与布尔代数的表示完全一致,需要注意的是大小写的问题,其他语言中首字母可以是小写的,例如:PHP 布尔值可以通过逻辑运算、比较运算得到。需要注意的是,逻辑运算中x and y,如果x或y为False或0,会返回布尔值False或0,否则它会返回y的值

blockchain
blockchain

空值

空值是Python中非常特殊的值,用None表示,None不可以理解为0,因为0是有意义的,而None是一个特殊的空值。


列表

Python中内置了一种有序集合来存储数据,与php中的数组非常相似。 列表中的元素值可以是任意数据类型。

比如列出员工的姓名

代码语言:javascript
复制
>>>> staff=['李某','张某','王某','胡某']
>>>> staff
['李某','张某','王某','胡某']

变量staff就是一个列表,可以随时添加或删除列表中的元素

代码语言:javascript
复制
>>>> staff.append(567)
>>>> staff
['李某','张某','王某','胡某',567]

也可以指定下标进行添加

代码语言:javascript
复制
>>>> staff.insert(2,'周某')
>>>> staff
['李某','张某','周某','王某','胡某',567]

删除可以使用pop(),默认从末尾进行删除

代码语言:javascript
复制
>>>> staff.pop()
>>>> staff
['李某','张某','周某','王某','胡某']

也可以指定下标进行删除

代码语言:javascript
复制
>>>> staff.pop(3)
>>>> staff
['李某','张某','周某','胡某']

获取列表中的个数

代码语言:javascript
复制
>>>> len(staff)
4

对列表进行排序

代码语言:javascript
复制
l = [73, 55, 12, 89, 1002]
l.sort()
print(l)
# 输出结果
# [12, 55, 73, 89, 1002]

获取列表中的某个元素值,可以通过下标进行获取下标默认从0开始

代码语言:javascript
复制
>>>> staff[0]
'李某'

快速获取列表最后一个元素

代码语言:javascript
复制
>>>> staff[-1]
'胡某'

Python中获取元素可以进行倒叙获取

代码语言:javascript
复制
>>>> staff[-2]
'周某'
>>>> staff[-3]
'张某'
>>>> staff[-4]
'李某'

获取元素是如果下标超出范围Python会报IndexError: list index out of range的错误

给列表已设定的元素重新赋值

代码语言:javascript
复制
>>>> staff[1]=[True,89]
>>>> staff
['李某',[True,89],'周某','胡某']

Python中使用enumerate()函数获取列表下标

代码语言:javascript
复制
l = [1, 2, 3]
for i,value in enumerate(l):
	print(i, value)
# 输出结果
# 0 1
# 1 2
# 2 3

元组

元祖与列表非常相似,唯一不同的是元祖一旦定义,元祖中的元素不可修改,并且元祖也没有增加和删除元素的操作,获取元素等操作与列表一致。

代码语言:javascript
复制
>>>> lover=('周某','杨某')
>>>> lover
('周某','杨某')

如果进行修改元祖中的元素Python会报TypeError: 'tuple' object does not support item assignment错误 如果要定义一个元素的元祖,像下面这么定义的话,该变量就不是一个元祖了,因为Python中()可以代表数学公式中的小括号,又可以代表元祖,优先以数学公式的小括号进行运算

代码语言:javascript
复制
>>>> field=('abc')
>>>> field
'abc'

field是字符串

正确的定义

代码语言:javascript
复制
>>>> field=('abc',)
>>>> field
('abc',)

案例:

代码语言:javascript
复制
>>>> field=('abc',['a','b'])
>>>> field[1][0]=2
>>>> field[1][1]=3
>>>> field
('abc',[2,3])

上面的案例定义了元祖中第二个元素为['a','b']下面针对这个元素进行了修改,但是正常输出了,为什么呢? 从输出来看,元祖的内容确实变化了,可是变化的并不是元祖的元素,而是元祖中的列表,列表中的元素是可以进行增加删除修改的

字典

在Python中内置了字典(dict)数据类型,使用键和值(key:value)来存储,和php中的关联数组类似,更像是一个json字符串。

同样和其他语言也一致,key必须是唯一的,value可重复,value可以是任意数据类型。

代码语言:javascript
复制
dict = {'key1':'value1', 'key2':123, 'key3':[1,2,3]}
print(dict);
# 输出结果
# {'key1': 'value1', 'key2': 123, 'key3': [1, 2, 3]}

字典的提点

字典的查找速度特别快,为什么?举个“栗子”来说明: 就像我们差字典,知道首字符,找到对应的词后,查看页码就可以了。 dict就是根据这种机制来查找到对应的“页码”,直接取出数据,所以速度非常快。 字典和列表比较有以下几个特点:

  1. 查找和插入极快,不会随着key的增加而变慢
  2. 随着key的增加,会占用更多的内存

而列表恰恰相反

  1. 查找和插入随着元素的增加而增加
  2. 占用内存少

获取字典中的元素

代码语言:javascript
复制
dict = {'key1':'value1', 'key2':123, 'key3':[1,2,3]}
print(dict['key1']);
print(dict['key3']);
# 输出结果
# value1
# [1, 2, 3]

同样key如果不存在就会报错。

代码语言:javascript
复制
Traceback (most recent call last):
  File "dict.py", line 3, in 
    print(dict['key4']);
KeyError: 'key4'

可以通过下面这两种方式来避免。

代码语言:javascript
复制
# 方式1.
dict = {'key1':'value1', 'key2':123, 'key3':[1,2,3]}
print('key4' in dict)
# 输出结果
# False
# 方式2. 通过字典的get()方法,如果不存在会返回None,同时也可以指定一个值
print(dict.get('key4'))
# 输出结果
# None
print(dict.get('key4', 0))
# 输出结果
# 0

删除字典中的元素

字典提供了pop()方法,可以用来删除字典中的元素

代码语言:javascript
复制
dict = {'key1':'value1', 'key2':123, 'key3':[1,2,3]}
dict.pop('key1')
print(dict)
# 输出结果
# {'key2': 123, 'key3': [1, 2, 3]}

修改字典中的元素

代码语言:javascript
复制
dict = {'key1':'value1', 'key2':123, 'key3':[1,2,3]}
dict['key3'] = True
print(dict)
# 输出结果
# {'key1': 'value1', 'key2': 123, 'key3': True}

增加字典中的元素

代码语言:javascript
复制
dict = {'key1':'value1', 'key2':123, 'key3':[1,2,3]}
dict['key4'] = True
print(dict)
# 输出结果
# {'key1': 'value1', 'key2': 123, 'key3': [1, 2, 3], 'key4': True}

集合

集合和字典非常相似,但是集合不存储value,只存储key,同样key也不可重复。

创建集合

要创建一个集合需要提供一个列表。并且必须是一维的列表

代码语言:javascript
复制
l = [1, 2, 3]
s = set(l)
print(s)
# 输出结果
# {1, 2, 3}
# 如果列表中有重复的值,会被剔除掉
l = [1, 2, 3, 3, 2, 1]
s = set(l)
print(s)
# 输出结果
# {1, 2, 3}
# 如果列表是[1, 2, 3, 3, 2, 'ddd', True, [1, 2, 3, 3, 2, 'ddd']]
# 回报以下错误
Traceback (most recent call last):
  File "set.py", line 2, in 
    s = set(l)
TypeError: unhashable type: 'list'

新增集合元素

集合提供了add()方法来新增集合元素

代码语言:javascript
复制
l = [1, 2, 3, 3, 2, 'ddd', True, (1, 2, 3, 3, 2, 'ddd')]
s = set(l)
s.add('abc')
print(s)
# 输出结果
# {1, 2, 3, 'ddd', (1, 2, 3, 3, 2, 'ddd'), 'abc'}

删除集合元素

集合提供了remove()方法来新增集合元素

代码语言:javascript
复制
l = [1, 2, 3, 3, 2, 'ddd', True, (1, 2, 3, 3, 2, 'ddd')]
s = set(l)
s.remove(1)
print(s)
# 输出结果
# {2, 3, 'ddd', (1, 2, 3, 3, 2, 'ddd')}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年5月6日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 整型
  • 浮点型
  • 字符串
    • 替换字符串字符
    • 布尔型
    • 空值
    • 列表
    • 元组
    • 字典
      • 字典的提点
        • 获取字典中的元素
          • 删除字典中的元素
            • 修改字典中的元素
              • 增加字典中的元素
              • 集合
                • 创建集合
                  • 新增集合元素
                    • 删除集合元素
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档