1、为什么要进行数据类型转换

使用Python处理数据时,不可避免的要使用数据类型之间的转换。如intfloatstring之间的转换。

例如:

问:通过input()函数接收用户输入的数据都是字符串类型,如果用户输入1,想得到整型该如何操作?

答:转换数据类型即可,即将字符串类型转换成整型。

2、数据类型转换本质

  • 所谓的类型转换,将一个类型的对象转换为其他对象。
  • 类型转换不是改变对象本身的数据类型,而是根据当前对象的值创建一个新对象,因为intfloatstring变量的数据类型是不会改变的,需要把这个新创建的数据对象,赋值给当前对象的引用变量,那么变量的数据类型才会发生改变。

3、数据类型转换用到的函数

下面是我们常用到的一个数据类型转换函数的列表。

函数 说明
int(x [,base])(常用) 将x转换为一个整数
float(x)(常用) 将x转换为一个浮点数
complex(real [,imag]) 创建一个复数,real为实部,imag为虚部
str(x)(常用) 将对象x 转换为字符串
repr(x) 将对象x 转换为表达式字符串
eval(str)(常用) 用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s)(常用) 将序列 s 转换为一个元组
list(s)(常用) 将序列 s 转换为一个列表
chr(x) 将一个整数转换为一个Unicode字符
ord(x) 将一个字符转换为它的ASCII整数值
hex(x) 将一个整数转换为一个十六进制字符串
oct(x) 将一个整数转换为一个八进制字符串
bin(x) 将一个整数转换为一个二进制字符串

我们下面对标识有常用的方法进行说明,其他的函数,我们用到的话自己按照文档练习一下就可以会用。

4、常用数据类型转换的函数

(1)int()函数

int()函数可以用来将其他的对象数据类型转换为整型。

示例

# 1、布尔值转换为整型:True -> 1   False -> 0
a = True
"""
调用int()来将a转换为整型。
int()函数不会对原来的变量a产生影响,
int()函数是将对象转换为指定的数据类型,并将其作为返回值返回。
如果希望修改原来的变量,则需要对变量进行重新赋值
这里很重要,一定要理解。
"""
# 调用int()来将a转换为整型。
int(a)
# int()函数不会对原来的变量a产生影响,打印结果可以看出。
print(type(a)) # <class 'bool'>
# 如果希望修改原来的变量,则需要对变量进行重新赋值
a = int(a)
print(type(a)) # <class 'int'> # 2、浮点数:直接取整,省略小数点后的内容。
i = 123.456
# 变量没有重新赋值,原变量数据没有任何改变
int(i)
print(i) # 123.456
print(type(i)) # <class 'float'>
# 变量重新赋值后,数值和类型都发生了改变。
i = int(i)
print(i) # 123
print(type(i)) # <class 'int'> """
# 3、字符串:合法的整数字符串,直接转换为对应的数字
如果不是一个合法的整数字符串,则报错:
ValueError: invalid literal for int() with base 10: '数值'。
对于其他不可转换为整型的对象,直接抛出异常 TypeError。
(如果出现TypeError的报错,说明类型转换异常了,换句话说就是该类型不能这么转换)
"""
# 合法的整数字符串
i = "123456"
i = int(i)
print(i) # 123456
print(type(i)) # <class 'int'> # 合法的整数字符串
j = "123.456"
j = int(j)
print(j)
print(type(j))
# 在第二行,数据类型转换的时候就会报错
# ValueError: invalid literal for int() with base 10: '123.456' # 对于其他不可转换为整型的对象,直接抛出异常 ValueError。
# 如:None
k = None
k = int(k)
# 报出异常:TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'

(2)float()函数

float()函数可以用来将其他的对象数据类型转换为小数。

示例

"""
float()函数和int()函数的用法基本一致,不同的是它会将对象转换为浮点数。
1、布尔值:True -> 1.0 False -> 0.0。
2、整型:整数后边直接加上.0,如:15.0。
3、字符串:合法的数字(整数,小数)字符串,直接转换为对应的数字。
4、对于其他不可转换为整型的对象,直接抛出异常 TypeError
(如果出现TypeError的报错,说明类型转换异常了,换句话说就是该类型不能这么转换))
"""
# 简单练习,整型
i = 15
i = float(i)
print(i) # 15.0
print(type(i)) # <class 'float'> # 简单练习,字符串
i = "15"
i = float(i)
print(i) # 15.0
print(type(i)) # <class 'float'> j = "15.12312"
j = float(j)
print(j) # 15.12312
print(type(j)) # <class 'float'> # 简单练习,None
# 同int()函数

(3)str()函数

str()函数可以用来将其他的对象数据类型转换为字符串。

示例

"""
1、布尔值:True -> 'True' False -> 'False'
2、数值型直接原样转换成字符串
3、对于None类型,转换成字符串时,并没有报错。
(可能没学到的类型数据也不会报错)
"""
# 简单练习,float
i = 15.1231
i = str(i)
print(i) # 15.1231
print(type(i)) # <class 'str'> # 对于None类型,转换成字符串时,并没有报错。
k = None
k = str(k)
print(k) # None
print(type(k)) # <class 'str'>

(4)bool()函数

bool()函数可以将对象转换为布尔值,任何对象都可以转换为布尔值。

示例

"""
规则:
对于所有表示空性的对象都会转换为False,其余的转换为True
哪些表示的空性:0 、 None 、 ''(空串) 。其他的可变对象学后再说。 """
# 简单练习,非空性
i = 15.1231
i = bool(i)
print(i) # True
print(type(i)) # <class 'bool'> # 简单练习,非空性
j = "python"
j = bool(j)
print(j) # True
print(type(j)) # <class 'bool'> # 简单练习,非空性
k = None
k = bool(k)
print(k) # False
print(type(k)) # <class 'bool'>

(5)eval()函数

  • eval()函数是Python中的一个内置函数。
  • 一般我们会这样描述evel()函数,把字符串里边的数据转换成他原本的类型。
  • eval()函数用法也是非常的灵活,我们主要说明通过eval()函数把字符串转换成其他对象数据类型。

示例

str1 = 'True'
str2 = '1'
str3 = '1.1'
str4 = '(1000, 2000, 3000)'
str5 = '[1000, 2000, 3000]'
print(type(eval(str1))) # <class 'bool'>
print(type(eval(str2))) # <class 'int'>
print(type(eval(str3))) # <class 'float'>
print(type(eval(str4))) # <class 'tuple'>
print(type(eval(str5))) # <class 'list'>

提示:Pyhton中数据类型转换的函数有很多,以后可以慢慢积累不同函数的使用方法。

『无为则无心』Python基础 — 11、Python中的数据类型转换的更多相关文章

  1. 『无为则无心』Python基础 — 10、Python字符串的格式化输出

    目录 1.什么是格式化输出 2.Python格式化输出的五种方式 方式一:字符串之间用+号拼接 方式二:print()函数可同时输出多个字符串 方式三:占位符方式 方式四:f格式化方式(推荐) 方式五 ...

  2. 『无为则无心』Python基础 — 12、Python运算符详细介绍

    目录 1.表达式介绍 2.运算符 (1)运算符的分类 (2)算数运算符 (3)赋值运算符 (4)复合赋值运算符 (5)比较运算符 3.逻辑运算符 拓展1:数字之间的逻辑运算 拓展2:Python中逻辑 ...

  3. 『无为则无心』Python基础 — 63、Python中的生成器

    目录 1.为什么要有生成器 2.创建生成器 (1)简单创建生成器 (2)生成器的使用 3.yield关键词 (1)yield关键词说明 (2)send()方法说明 4.使用yield实现斐波那契数列 ...

  4. 『无为则无心』Python基础 — 3、搭建Python开发环境

    目录 1.Python开发环境介绍 2.Python解释器的分类 3.下载Python解释器 4.安装Python解释器 5.Python解释器验证 1.Python开发环境介绍 所谓"工欲 ...

  5. 『无为则无心』Python基础 — 4、Python代码常用调试工具

    目录 1.Python的交互模式 2.IDLE工具使用说明 3.Sublime3工具的安装与配置 (1)Sublime3的安装 (2)Sublime3的配置 4.使用Sublime编写并调试Pytho ...

  6. 『无为则无心』Python基础 — 6、Python的注释

    目录 1.注释的作用 2.注释的分类 单行注释 多行注释 3.注释的注意事项 4.什么时候需要使用注释 5.总结 提示:完成了前面的准备工作,之后的文章开始介绍Python的基本语法了. Python ...

  7. 『无为则无心』Python基础 — 7、Python的变量

    目录 1.变量的定义 2.Python变量说明 3.Python中定义变量 (1)定义语法 (2)标识符定义规则 (3)内置关键字 (4)标识符命名习惯 4.使用变量 1.变量的定义 程序中,数据都是 ...

  8. 『无为则无心』Python基础 — 44、对文件和文件夹的操作

    目录 1.os模块介绍 2.查看os模块相关文档 3.os模块常用方法 (1)文件重命名 (2)删除文件 (3)创建文件夹 (4)删除文件夹 (5)获取当前目录 (6)改变默认目录 (7)获取目录列表 ...

  9. 『无为则无心』Python序列 — 17、Python字符串操作常用API

    目录 1.字符串的查找 @1.find()方法 @2.index()方法 @3.rfind()和rindex()方法 @4.count()方法 2.字符串的修改 @1.replace()方法 @2.s ...

随机推荐

  1. QFNU 10-30 training

    7-9 特立独行的幸福 题意:见PTA 思路:其实就是遍历进行查找,利用递归函数,为了解决是特立独行,还要用一个全局数组进行存储所有满足条件的数进行去重标记,最后在输出的时候进行判断是否是只读取过一次 ...

  2. [BUAA2021软工助教]结对项目-第二阶段小结

    一.作业链接 结对项目-第二阶段 二.优秀作业推荐 本次博客作业虽然是简单总结,但是以下作业中都不乏有思考.有亮点的精彩内容,推荐给同学们阅读学习. 磨练,结对编程!(中) zzx 和 zzy 同学实 ...

  3. 【敏杰开发】Scrum Meeting 博客汇总

    敏杰开发团队 Scrum Meeting 博客汇总 项目名称:[知识路书] 一.Alpha阶段 Scrum meeting 1 2020/04/07 选题 Scrum meeting 2 2020/0 ...

  4. Java Arrays.sort()重写comparator方法

    先看一下接口 Arrays.sort(T[],Comparator<? super T> c); comparator要重写compare方法 compare方法大概长这样,返回值> ...

  5. [c++] 基本概念

    内存 栈区和堆区的管理模式有所不同:栈区内存由系统分配和释放,不受程序员控制:堆区内存完全由程序员掌控,想分配多少就分配多少,想什么时候释放就什么时候释放,非常灵活. 栈(Stack)可以存放函数参数 ...

  6. [DB] HDFS

    体系架构 NameNode HDFS主节点.管理员 接收客户端(命令行.Java程序)的请求:创建目录.上传.下载.删除数据 管理和维护HDFS的日志和元信息 日志文件(edits文件) 二进制文件, ...

  7. Maven知识点一览

    Maven 介绍和搭建 介绍 Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告,和文档的软件项目管理工具. 环境搭建 网址:https://maven.apache ...

  8. python基础之模块初识

    Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相应的Python库支持 一.time模块和datetime模块 和时间有关系的我们就要用到时间模块.在使用模 ...

  9. 11.3 free:查看系统内存信息

    free命令用于显示系统内存状态,具体包括系统物理内存.虚拟内存.共享内存和系统缓存等. free命令的参数选项及说明 -b    以Byte为单位显示内存的使用情况 -m    以MB为单位显示内存 ...

  10. 2020-1-19 2.港股打新、REITs和分拆

    1.港股打新介绍 港股打新升级版 财属目由尽握手中 港股中签率较高 A股提高中签率 港股提高中签之后的收益率 有可能破发 2.第一版港股打新 港股打新第一版 ■第一种策略:只选择低于1.5港币的 配售 ...