python数据类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python数据类型相关的知识,希望对你有一定的参考价值。

1.浮点型

1.1浮点数定义

技术图片

浮点数是属于有理数中某特定子集的数的集合,在计算机中泳衣近>似表示任意某个实数。
具体的说,这个实数有一个整数或定点数(即尾数)乘以某个特定>的基数的整数次幂得到(10**4,10为基数),这种表示方法类似于基数为10的科学计数法。

1.2有理数

数学上,有理数是一个整数a和一个非0整数的比,例如:3/8,也称为分数,0也是有理数,有理数是整数和分数的集合,整数也可看做是分母为1的分数。
有理数的小数部分是有限或无限循环的数

1.3无理数

无理数,也称为无限不循环小数,不能写成分数形式。常见的无理数有非完全平方数的平方根,圆周率

1.4实数

实数是有理数和无理数的总称

技术图片

1.5科学计数法

科学计数法是指把一个数表示成a10的n次幂的形式(1<a<10,n为正整数)。例如:199714000000=1.9971410^11。计算器或电脑表达10的幂是使用E或e,也就是199714000000=1.99714*E11,用幂的形式可以表达一些较大的数。

1.6复数

复数是指能写成a+bi,这里a和b是实数,i是虚数单位

1.7浮点精度

整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的,而浮点数运算则可能会有四舍五入的误差
Python默认是17位精度,也就是小数后面16位,尽管有16位,但是这个精度却是越往后越不准。这个问题不止存在与Python中,其他语言也是一样,原因与浮点数存储结构有关。

 # 通过Decimal的方式来设置,推荐这种方式,在java中对于小数的处理也是使用Decimal来计算的,可设置保留的小数位数
 >>> from decimal import *
>>> getcontext().prec = 50
>>> a = Decimal(1)/Decimal(3)
>>> print(a)
0.33333333333333333333333333333333333333333333333333
# 自行设置保留的小数位数,不推荐,后面的小数位数是不准确的
>>> a = ("%.30f" % (1.0/3))
>>> a
‘0.333333333333333314829616256247‘

>>> a=1/3
>>> print(a)
0.3333333333333333
>>> a=0.901239329312313123123123123213131313131312321313121111111
>>> print(a)
0.9012393293123131

2.列表

列表是一个数据的集合,集合内可以放任何数据类型,可对集合进行方便的增删改查操作
列表是有序的,因为有索引

2.1创建

 L1 = []  # 定义空列表
L2 = [‘a‘, 2, ‘3‘, ‘b‘]  # 存四个值,索引为0-3
L3 = [‘abc‘, [‘ww‘, ‘ee‘]]  # 嵌套列表
L4 = list()
msg="""
L1 = %s
L2 = %s
L3 = %s
L4 = %s
""" % (L1, L2, L3, L4)
print(msg)

E:PythonProjectpython-testvenvP3Scriptspython.exe E:/PythonProject/python-test/BasicGrammer/test.py

L1 = []
L2 = [‘a‘, 2, ‘3‘, ‘b‘]
L3 = [‘abc‘, [‘ww‘, ‘ee‘]]
L4 = []

2.2查询

 >>> L2 = [‘a‘, ‘b‘, ‘c‘, ‘a‘, 1, 2]
>>> L2[2]
‘c‘
>>> L2[-1]
2
>>> L2[-2]
1
>>> L2.index(‘a‘)
0
>>> L2.count(‘a‘)
2
>>>

2.3切片

包头不包尾

 >>> L2[0:3]  # 返回从索引0到3的元素
[‘a‘, ‘b‘, ‘c‘]
>>> L2[0:-1]  # 返回从索引0到最后一个值,不包含最后一个值
[‘a‘, ‘b‘, ‘c‘, ‘a‘, 1]
>>> L2[2:4]  # 返回从索引2到4的值,不包含索引为4的值
[‘c‘, ‘a‘]
>>> L2[3:]  # 返回从索引值为3到最后一个值
[‘a‘, 1, 2]
>>> L2[:3]  # 返回从开头到索引为值为3,但不包含索引为3的值
[‘a‘, ‘b‘, ‘c‘]
>>> L2[1:5:2]  # 返回从索引值为1到第5的值,但步进为2(隔一个取一个值)
[‘b‘, ‘a‘]
>>> L2[:]  # 返回所有值
[‘a‘, ‘b‘, ‘c‘, ‘a‘, 1, 2]
>>> L2[::2]  # 按步长为2,返回所有值
[‘a‘, ‘c‘, 1]
>>>

2.4增加

 >>> L2.append(‘A‘)  #列表后追加A
>>> L2
[‘a‘, ‘b‘, ‘c‘, ‘a‘, 1, 2, ‘A‘]
>>> L2.insert(3,‘B‘)  #索引为3处插入B
>>> L2
[‘a‘, ‘b‘, ‘c‘, ‘B‘, ‘a‘, 1, 2, ‘A‘]

2.5修改

 >>> L2
[‘a‘, ‘b‘, ‘c‘, ‘B‘, ‘a‘, 1, 2, ‘A‘]
>>> L2[3] = ‘C‘  # 索引为3处修改为C
>>> L2
[‘a‘, ‘b‘, ‘c‘, ‘C‘, ‘a‘, 1, 2, ‘A‘]
>>> L2[0:3] = ‘ABCDE‘  # 索引为0-3修改为‘ABCDE‘
>>> L2
[‘A‘, ‘B‘, ‘C‘, ‘D‘, ‘E‘, ‘C‘, ‘a‘, 1, 2, ‘A‘]

2.6删除

 >>> L2.pop()  # 删除最后一个元素,并返回最后一个元素
‘A‘
>>> L2
[‘A‘, ‘B‘, ‘C‘, ‘D‘, ‘E‘, ‘C‘, ‘a‘, 1, 2] 
>>> L2.remove(‘C‘)  # 左边开始,第一个匹配的字符
>>> L2
[‘A‘, ‘B‘, ‘D‘, ‘E‘, ‘C‘, ‘a‘, 1, 2]
>>> del L2[2]  # 删除索引为2的字符
>>> L2
[‘A‘, ‘B‘, ‘E‘, ‘C‘, ‘a‘, 1, 2]
>>> del L2[0:1]  # 删除索引从0开始,到索引为1的字符,不包含索引为1的字符
>>> L2
[‘B‘, ‘E‘, ‘C‘, ‘a‘, 1, 2]

2.7循环

 for i in range(10):
    print(i)
for循环是不能死循环的
while循环是能够死循环的
while True:
    print("hello")
L2 = [‘B‘, ‘E‘, ‘C‘, ‘a‘, 1, 2]
for i in L2:
    print(i)

E:PythonProjectpython-testvenvP3Scriptspython.exe E:/PythonProject/python-test/BasicGrammer/test.py
B
E
C
a
1
2

2.8排序

 #按照ASCII码排序
python2
>>> L2 = [‘B‘, ‘#‘, ‘C‘, ‘!‘, 1, 2]
>>> L2.sort()
>>> L2
[1, 2, ‘!‘, ‘#‘, ‘B‘, ‘C‘]
>>> L2.reverse()
>>> L2
[‘C‘, ‘B‘, ‘#‘, ‘!‘, 2, 1]
>>>
python3
>>> L2 = [‘B‘, ‘#‘, ‘C‘, ‘!‘, 1, 2]
>>> L2.sort()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: ‘<‘ not supported between instances of ‘int‘ and ‘str‘

2.9其他用法

 >>> L2
[‘C‘, ‘B‘, ‘#‘, ‘!‘, 2, 1]
>>> L2.extend([‘a‘, ‘b‘, ‘c‘])  # 扩展列表
>>> L2
[‘C‘, ‘B‘, ‘#‘, ‘!‘, 2, 1, ‘a‘, ‘b‘, ‘c‘]
>>> L2[2] = [‘name‘,‘vita‘]  # 设置嵌套列表
>>> L2
[‘C‘, ‘B‘, [‘name‘, ‘vita‘], ‘!‘, 2, 1, ‘a‘, ‘b‘, ‘c‘]
>>> L2[2][1]  # 取出嵌套列表中的值
‘vita‘
>>> L2.clear()  # 清空列表
>>> L2
[]
python2中,无clear方法
>>> L2.clear()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: ‘list‘ object has no attribute ‘clear‘

以上是关于python数据类型的主要内容,如果未能解决你的问题,请参考以下文章

13 个非常有用的 Python 代码片段

在python 3.6中处理自定义编码时遇到类型错误

在代码片段中包含类型转换

常用python日期日志获取内容循环的代码片段

python 有用的Python代码片段

Python 向 Postman 请求代码片段