Python 入门必看:彻底搞懂数据类型、进制转换与类型转换
前言
各位大佬,大家早中晚上好喵~
Python 作为一门简洁、强大且易于学习的编程语言,其灵活的数据类型系统是初学者入门和开发者高效编程的基石。理解 Python 的基本数据类型、掌握不同进制整数的表示与转换方法,以及熟练运用数据类型转换函数,是编写健壮、清晰代码的关键步骤。
本文旨在系统性地梳理这三个核心知识点,通过清晰的分类、实用的代码示例和关键注意事项,帮助您构建扎实的 Python 基础。无论您是刚刚接触 Python,还是希望巩固相关知识,都能从中获得清晰的指引和实用的参考。
一、Python 基本数据类型
Python 作为一门动态类型语言,其数据类型是构建程序的基础。本章聚焦最核心的基本 5 种数据类型以及与之配套的基础函数,帮助初学者快速建立清晰的知识框架。
1.1 数字
- int(整数):没有小数部分的数字,支持多种进制表示:
- 十进制:如
10、-5、0 - 二进制:以
0b开头,如0b1010 - 十六进制:以
0x开头,如0xFF - 八进制:以
0o开头,如0o10
- 十进制:如
- float(浮点数):带有小数部分的数字,如
3.14、2.0、-0.001。
1.2 字符串 str
- 由字符组成的不可变序列,使用单引号或双引号包裹,如
"Hello"、'Python'。
1.3 布尔值 bool
- 表示逻辑真或假,只有两个值:
- True:表示真
- False:表示假
1.4 空值 None
- None:表示空值或无值,是
NoneType的唯一值。
1.5 基础函数
以下是与上述基本数据类型紧密相关的基础函数,在日常编程中频繁使用:
input():接收用户输入,返回字符串。print():输出内容到控制台。type():查看对象的类型。int():将值转换为整数。float():将值转换为浮点数。bool():将值转换为布尔值。str():将值转换为字符串。bin():将整数转换为二进制字符串(带0b前缀)。oct():将整数转换为八进制字符串(带0o前缀)。hex():将整数转换为十六进制字符串(带0x前缀)。
二、Python 整数进制转换
Python 支持十进制、二进制、八进制和十六进制整数的表示与相互转换。
2.1 不同进制的字面量表示
运行结果示例:
注:type()代码可以查看变量的数据类型。
2.2 进制转换函数
十进制数可通过特定的代码转换为其他各进制字符串,如下:
bin(x):将整数转换为二进制字符串(带0b前缀)。oct(x):将整数转换为八进制字符串(带0o前缀)。hex(x):将整数转换为十六进制字符串(带0x前缀)。
同时其他各进制字符串也可以反向转换为十进制:
int(x, base=2):将字符串x按二进制转换为十进制整数。int(x, base=8):将字符串x按八进制转换为十进制整数。int(x, base=16):将字符串x按十六转换为十进制整数。
注意:字符串x需要是对应进制的字符串,例如想要二进制转换为十进制,x的值应为1010。
另外,如果想要自己计算各个进制转十进制的话,有一个万能公式:
同样举一个示例,假如想要计算二级制数值1010为十进制的话,那么转换的一个思路就是,从右往左数发现第二个和第四个位置分别有m=1,那么第四个位置n=4,是几进制底数就为几,那么就是1*2的4-1次方,得出8,然后再算第二个位置的n,就是1*2的2-1次方,得2,相加即得出最终答案10。
2.3 进制转换示例
运行结果示例:
可以看到,bin,oct,hex函数在转换进制之后会在对应数值前方带上进制独有的缩写,例如:
二进制为0b,八进制为0o,十六进制为0x。
三、Python 数据类型转换函数
在 Python 中,不同数据类型之间可以通过内置函数进行显式转换。本章围绕int、float、bool、str四种核心转换函数展开,结合具体的代码示例,帮助大家快速掌握类型转换的用法和常见"坑点"。
3.1 int() —— 转换为整数
int()可以将数字类型的字符串、浮点数或布尔值转换为整数。
- 将数字字符串转换为整数:
int("10")返回10。如果字符串表示的是其他进制数字,可以通过base参数指定,如int("10abcd", base=16)会按十六进制解析 "10abcd" 并返回对应的十进制整数。 - 将浮点数转换为整数:
int(3.99)返回3,转换时会直接截断小数部分(不是四舍五入,而是向下取整)。 - 将布尔值转换为整数:
int(True)返回1,int(False)返回0。
示例代码:
运行结果:
3.2 float() —— 转换为浮点数
float()可以将数字类型的字符串(最多包含一个小数点)、整数或布尔值转换为浮点数。
- 将数字字符串转换为浮点数:
float("111")返回111.0。 - 将整数转换为浮点数:
float(777)返回777.0。 - 将布尔值转换为浮点数:
float(True)返回1.0,float(False)返回0.0。
示例代码:
运行结果:
3.3 bool() —— 转换为布尔值
bool()可以将任意类型的值转换为布尔值。转换规则如下:几乎所有值在转换为布尔值时,只有0、0.0、""(空字符串)、None、空列表[]、空元组()、空字典{}等"空"值为False,其余非空值都为True。
示例代码:
运行结果:
3.4 str() —— 转换为字符串
转换为字符串与转换为布尔值用着相似的规则,同样是所有类型都能转换为字符串,甚至在某些方面我认为比布尔值更“自由”,因为万物皆能为字符串嘛。这边就不再粘贴字符串相关的代码截图了。
3.5 转换注意事项
- 转换可能引发异常,如
int("abc")会抛出ValueError,因为"abc"不是合法的数字字符串。 - 浮点数转整数时截断小数部分(向下取整),不会四舍五入。
- 并非所有类型之间都能直接转换,转换前需确保操作是合理且有定义的。
- 使用
int()配合base参数时,字符串中的字符必须符合对应进制的表示规则。
结语:小A在这里祝各位大佬无论是学习还是工作中的大佬都能心想事成,步步升高!
关注小A喵,关注小A谢谢喵~