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中关于数值类型和序列类型的介绍了,谢谢各位观看,受于水平限制,如果有理解错误的地方,还请多多包涵。
python基础之数值类型与序列类型的更多相关文章
- 2015/9/4 Python基础(8):映射和集合类型
Python里唯一的映射类型是字典.映射类型对象里,hash值(key)和指向的对象(值)是一对多的关系.字典对象是可变的,这一点上很像列表,它也可以存储任意个数任意类型的Python对象,其中包括容 ...
- python基础--数值类型和序列类型
Python中数值类型:int(整数),float(浮点数),True/False(布尔值,首字母必须大写) int:1 #任意整数 float:2.3 #小数 python赋值: a = ...
- python数值类型与序列类型
基本运算符 / 浮点除法 //整除 x**y x的y次方 python中严格区分大小写 type(xx)/内置函数,查看变量xx的类型 id(xx)/内置函数,查看变量xx的内存地址 //----- ...
- python基础知识01-数据类型和序列类型
%,取余 //,取整,向下取整,5//2 = 2. 一.变量类型 1.变量名不能以数字开头,不能纯数字,不要用汉字,可以用下划线开头 2.数值类型(int,float,bool,complex) ...
- Python数值类型和序列类型
int.float.bool这三个数值类型和常用序列类型的定义和使用 数值类型的基本计算 序列类型的索引取值.切片.成员运算等序列类型的通用操作 complex(复数).decimal(定点数).ma ...
- Python基础:数值(布尔型、整型、长整型、浮点型、复数)
一.概述 Python中的 数值类型(Numeric Types)共有5种:布尔型(bool).整型(int).长整型(long).浮点型(float)和复数(complex). 数值类型支持的主要操 ...
- 1.8 Python基础知识 - 数值类型
一.int类型(任意精度整数) 整型类型(int)是表示整数的数据类型.与其他计算机语言有精度限制不同,Python的整数位数可以为任意长度位数(只受限制于计算机内存) 数字字符串即整型常量. pyt ...
- python基础语法_python中的布尔类型详解
转自:http://www.cnblogs.com/521yywzyzhc/p/6264885.html 我们已经了解了Python支持布尔类型的数据,布尔类型只有True和False两种值,但是 ...
- Python基础(4)_集合、布尔类型
一.集合 集合的作用一:关系运算集合的作用二:去重 定义集合:集合内的元素必须是唯一的:集合内的元素必须是可hash的,也是就不可变类型:集合是无序的 s={'egon',123,'egon','1' ...
随机推荐
- pytest文档5-参数化parametrize
pytest.mark.parametrize装饰器可以实现测试用例参数化. parametrizing 1.这里是一个实现检查一定的输入和期望输出测试功能的典型例子 # content of tes ...
- 在build中配置resources, 来防止我们资源导出失败问题
<!--在build中配置resources, 来防止我们资源导出失败问题--> <build> <resources> <resource> < ...
- liunx查看哪个ip连接最多
[root@centos6 /]# netstat -na|grep ESTABLISHED|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|so ...
- Python 单元测试 实战演练
结合实例,联系单元测试. 文件结构: |----Python_unittest |--------math_operation.py # 定义了类[class MathOperation:],类里面定 ...
- 类加载器(JVM)
一.JVM概述 JVM是java是二进制字节码的运行环境 特点: 一次编译,到处运行(跨平台) 自动内存管理 自动垃圾回收功能 常见的JVM Sun Classic VM:世界上第一款商用的java虚 ...
- 解决SpringBoot连接Nacos集群报400问题
问题描述 搭建一个Nacos集群,使用 SpringBoot 程序连接 Nacos 集群,在启动的时候报异常,程序启动失败,而后程序假死.详细控制台日志信息如下: failed to req API: ...
- JAVA多线程学习七-线程池
为什么用线程池 1.创建/销毁线程伴随着系统开销,过于频繁的创建/销毁线程,会很大程度上影响处理效率 例如: 记创建线程消耗时间T1,执行任务消耗时间T2,销毁线程消耗时间T3 如果T1+T3> ...
- 基于redis实现tomcat的session会话保持 (转)
出处:https://cloud.tencent.com/developer/article/1402997 基于redis实现tomcat的session会话保持 在实际生产中,我们经常部署应用服务 ...
- Redis-46面试题
1.什么是 Redis?简述它的优缺点? Redis 的全称是:Remote Dictionary.Server,本质上是一个 Key-Value 类型的内存数据库,很像 memcached,整个数据 ...
- 【转】Python中自定义可迭代对象
python 中内置的可迭代的对象有 list.tuple.set.dict 等,那么我们自己怎么定义一个可迭代的对象呢?先来段代码吧 import re import reprlib RE_WORD ...