python基础之数值类型与序列类型
Hello大家好,我是python学习者小杨同学,已经学习python有一段时间,今天将之前学习过的内容整理一番,在这与大家分享与交流,现在开始我们的python基础知识之旅吧。
数值类型与序列类型
变量
在讲类型之前首先说说python的变量,变量是存储数据的容器,我们在python中的操作都是围绕变量来进行的。
例如:
a = 0
这里呢,定义了一个变量a ,并把0赋值给a,读作把0赋值给a
我们也可以一次性创建多个变量,并且进行多个赋值
例如:
a, b = 1, 2
这样的效果与以下写法相同
a = 1
b = 2
如果我们使用第二种写法,那么在交换变量的时候就需要创建一个新的变量来存储数值,然后再对原有变量进行交换:
a = 1
b = 2
c = a
a = b
b = c
这样就完成了一个简单的变量交换啦,但这样显得有些麻烦,我们也可以使用第一种方法来对变量进行交换,使代码更加优雅:
a,b = 1,2
a,b = 2,1
这样我们就将两个变量的值交换了过来,且少写了几句代码。
整数类型与浮点类型
a = 1
上面的代码中,我们把整数1赋值给了a,显而易见的这是一个整数类型,在python中如果如果我们想要查看一个变量是什么类型时,我们可以使用type()的方法来进行查看:
a = 1
print(type(a))
print()方法可以将结果打印到控制台中,print(type(a))就会将变量a的类型打印到控制台上:
<class 'int'>
int就是整数类型
而浮点类型讲的就是小数啦,我们也可以用同样的方法来进行查看类型:
b = 1.2
print(type(b))
<class 'float'>
通过type(b)我们得到的结果<class 'float'>,float就是浮点类型
但是浮点类型在计算中会出现精度不足的情况:
a = 1.2
b = 1.1
print(a - b)
0.09999999999999987
得出来的结果带着很长的小数,而不是0.1,那么有什么方法可以解决这样的问题呢?
这里可以用decimal模块来得到高精度的小数
import decimal
a = decimal.Decimal("1.2")
b = decimal.Decimal("1.1")
print(a - b)
0.1
这样我们就可以对小数进行高精度的运算,但是这样在性能上会有一定的损失,如果在于需要数据精确度较高的使用场景(财务结算),则损失的性能带来精度提升是值得的。
布尔类型
bool类型用两个关键字True False ,不能进行运算,只能用来判断
a = True
print(type(a))
<class 'bool'>
但是,我们在使用中可以使用不同的方法来判断条件,比如用0和1来判断False和True
或者是否为空来进行判断,这样可以提升代码运行速度
例如:
a = 0
print(bool(a))
False
上述使用0来进行布尔值的判断,返回的是False,如果a = 1,则返回True
字符串类型
str是python中的字符串类型,定义方式:
a = '123'
b = "123"
c = """123"""
上述三种写法均可以将变量定义成字符串,区别在于三个引号的方式可以使用回车换行,二前两种则不可以换行,前两种方式在pycharm中使用回车换行会补齐一个\,表示这行代码未执行完。
a = 'hello ' \
' world'
三个引号:
e = """
asdsf
asdasd
fasfs
"""
print(e)
#可以将一段很长的字符串换行写,且打印出来的结果也是
asdsf
asdasd
fasfs
列表类型
list是python中的列表类型,是一种有序的集合,可以随时在列表中添加和删除元素
定义方式:
list = [1,2,3,4,5,6]
print(list)
[1, 2, 3, 4, 5, 6]
这里定义了变量list,并在list中添加了6个元素,打印结果时将列表中的元素都打印出来
定义方式2:
a = "hello python"
li1 = list(a)
print(li1)
['h', 'e', 'l', 'l', 'o', ' ', 'p', 'y', 't', 'h', 'o', 'n']
我们也可以先定义一个字符串,再用list()的方法将字符串转换成列表,但是这样子打印出来的结果就会将字符串的每个字符都当成一个列表元素
当然我们也可以在列表中嵌套列表,列表中使用变量做为元素:
a = 'hello python'
li = [1, 2, 3, 5, 'hello', a, [5, 6, 7, 8]]
print("这是一个列表", li, type(li))
这是一个列表 [1, 2, 3, 5, 'hello', 'hello python', [5, 6, 7, 8]] <class 'list'>
元组类型
tuple是python中的元组类型,与列表相似,可以在元组中加入多个元素:
a = (1, 2, 3, 4, 5, 6)
print(type(a),a)
<class 'tuple'> (1, 2, 3, 4, 5, 6)
这就是一个简单的元组了
注意,元组中如果只有一个元素,必须在元素后面加上一个逗号,否则会被做为元素的对应类型,比如是整数就是int:
ccc = (1)
print(type(ccc))
<class 'int'>
正确方式:
ccc = (1,)
print(type(ccc))
<class 'tuple'>
元组也可以像列表一样嵌套元组,使用变量做为元素,感兴趣的小伙伴可以自己尝试
索引
有序序列中的元素都有隐藏的序号,因此可以用数字进行索引,计算机中默认0为第一个
a = ['p', 'r', 'o', 'b', 'e']
print("这是列表中第一个元素", a[0]) # 表示取 列表a中的第一个元素
这是列表中第一个元素 p
反向索引,如果需要将列表的值反向索引,可以使用负数来进行,反向索引中第一个元素的序号为-1
a = ['p', 'r', 'o', 'b', 'e']
print("这个是反向索引的-3元素", a[-1])
这个是反向索引的-1元素 e
切片
切片是对有序序列的高级索引方法,普通索引只能取出某个下标的元素,而切片可以取一个范围的对应元素
切片过程:开始索引,结束索引,步长
a = ['p', 'r', 'o', 'b', 'e']
print(a[0:4:1]) # 左闭又开,步长为1时,从0-4进行索引,每次向前取值一个元素,但不包含4
['p', 'r', 'o', 'b']
这里的开始索引和结束索引也可以不写,直接a[::1]这样会取到整个列表的元素
类型转换
python的类型之间可以进行互相转换
int() # 将其他类型转换成整数
float() # 将其他类型转换成浮点数
list() # 将其他类型转换成列表
tuple() # 将其他类型转换成元组
str() # 将其他类型转换成字符串
# 注:不建议将元组和列表转换成字符串
其实在列表中已经有涉及到将字符串转换成列表的例子了
我这里再举个栗子:
a = [1,2,3,4,5,6]
b = tuple(a)
print(b)
(1, 2, 3, 4, 5, 6)
这个栗子中我们就将一个列表转换成了元组,其他方法小伙伴们可以自行尝试(滑稽)
总结
代码看着不多,但篇幅还是挺长的,以上就是python中关于数值类型和序列类型的介绍了,谢谢各位观看,受于水平限制,如果有理解错误的地方,还请多多包涵。