学Python卡在数据类型?一张图带你打通整数、进制和类型转换的任督二脉
2026/7/9 3:50:46 网站建设 项目流程

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

系列文章目录

前言

一、Python的基本数据类型

1.1 整数

1.2 浮点数

1.3字符串

1.4布尔值

1.5空值

二、Python整数进制转换

2.1定义10进制变量

2.2定义二进制binary

2.3定义8进制变量

2.4定义16进制变量

2.5 进制转换函数

三、Python数据类型转换函数

3.1int(整数)

3.2float(浮点数)

3.3bool(布尔值)

3.4str(字符串)

总结



前言

你是不是也遇到过这些让人抓狂的情况?

👉 用 input() 获取两个数字相加,结果变成了 "53" 而不是 8?
👉 想把十进制转二进制,写了 bin("189") 直接报错?
👉 搞不清楚什么时候用 int()、float()、str()、bool()?

别急,这不是你的问题,是 Python 数据类型转换的"坑"太多!

大家好,今天这篇文章将带你一次性搞定 Python 的三大基础核心:
✅ 基本数据类型(整数、浮点数、字符串、布尔值)
✅ 整数进制转换(二进制、八进制、十进制、十六进制互转)
✅ 数据类型转换函数(int/float/str/bool 的使用和注意事项)

全程代码实战,拒绝枯燥理论,保证看完就能用!建议收藏备用💪


提示:以下是本篇文章正文内容,下面案例可供参考

一、Python的基本数据类型

基本数据类型分为整数,浮点数,字符串,布尔值,空值

1.1 整数

#整数
#声明一个整数<class'int'>
num = 10
#type返回数据类型
print(num, type(num))

num1 = -10
print(num1, type(num1))

1.2 浮点数

#浮点数
#声明一个浮点数<class'float'>
f1 = 3.14
f1_type = type(f1)
print(f1, f1_type)

f2 = -3.14
f2_type = float(f2)
print(f2, f2_type)

1.3字符串

#字符串
#声明一个字符串<class 'str'>
s1 = 'hello world'
print(s1, type(s1))
s2 = "hello world"
print(s2, type(s2))

#带有格式的字符串
s3 = """hello world"""
print(s3, type(s3))
s4 = '''hello world'''
print(s4, type(s4))

#单引号双引号交替使用
s5 = 'he"lloa;dm;al'
print(s5, type(s5))
s6 = "he'dmada./a>"
print(s6, type(s6))

1.4布尔值

#布尔值
#声明布尔值变量<class 'bool'>
b1 = True
print(b1, type(b1))
b2 = False
print(b2, type(b2))

1.5空值

#空值<class 'NoneType'>
#声明一个变量,但是又不存储任何数据
n = None
print(n, type(n))

二、Python整数进制转换

2.1定义10进制变量

#定义10进制变量
#1 2 3 4 5 6 7 8 9
#逢十进一
i = 100
print(i,type(i))

2.2定义二进制binary

#定义二进制binary
#以前缀0b开头 数字有0 1
#逢二进一
b = 0b110
print(b, type(b))

2.3定义8进制变量

#定义8进制变量
#以0o前缀 数字0-7
#逢八进一
o = 0o777
print(o, type(o))

2.4定义16进制变量

#定义16进制变量
#以0x前缀 数字0-9 字母a-f
#逢十六进一
h = 0xf11a
print(h, type(h))

2.5 进制转换函数

#进制转换函数
#int 可以转换为10进制 base表示字符串中的内容是几进制 只有int有base
print(int("20", base = 10))
print(int("110", base = 2))
print(int("17", base = 8))
print(int("e161", base = 16))

#bin函数可以将10进制转2进制
print(bin(189))

#oct函数可以将10进制转8进制
print(oct(177))

#hex函数可以将10进制转16进制
print(hex(168))

三、Python数据类型转换函数

3.1int(整数)

#int可以将数字类型的字符串转整数
v = int("12abcdef", base = 16)
print(v, type(v))

#int可以将小数转整数
v1 = int(3.14)
print(v1, type(v1))

#int可以将布尔值转整数
v2 = int(True)
v3 = int(False)
print(v2, v3, type(v2), type(v3))

3.2float(浮点数)

#float可以将整数转浮点数
f1 = float(3)
print(f1, type(f1))

#float可以将布尔值转浮点数
f2 = float( True)
f3 = float( False)
print(f2, f3, type(f2), type(f3))

#float可以将数字类型的字符串(最多有一个小数点)转成浮点数
f4 = float("1.11")
print(f4, type(f4))

3.3bool(布尔值)

#任何类型的数都能转成布尔值
b1 = bool(123)
b2 = bool(0)
b3 = bool(1.2)
b4 = bool("asjdkla")
b5 = bool("")
print(b1, b2, b3, b4, b5, type(b1),type(b2), type(b3), type(b4), type(b5))

3.4str(字符串)

#任何类型的数都能转成字符串
s1 = str(123)
s2 = str(1.1)
s3 = str(True)
s4 = str()
print(s1, s2, s3, s4, type(s1), type(s2), type(s3), type(s4)


总结

一、学到的核心知识点

通过系统学习 Python 数据类型,我梳理出三条核心脉络:

1. 五兄弟各司其职
int管整数、float管小数、str管文本、bool管真假、None管空值。看似简单,但type()一查就能区分,这是排查 bug 的第一步。

2. 进制转换有规律
所有进制在 Python 内部都是int类型,只是书写形式不同。int(s, base)是"翻译官",把各种进制"翻译"成十进制;bin/oct/hex是"转换器",把十进制"转换"成目标进制。

3. 类型转换有边界
str()是万能钥匙,什么都接;bool()规则简单——零空为假;int()float()最挑剔,None和空字符串坚决不收。


二、打破的认知误区

之前的误解学完后明白
以为input()输入数字就能直接运算input()永远返回字符串,必须int()float()转换
以为bin("189")能直接转二进制bin()要整数,字符串得先用int()
以为True1是两回事boolint的子类,True==1是真的
以为str()有些类型不能转任何类型都能转字符串,包括None
以为八进制是0b开头八进制是0o,二进制才是0b

三、最深刻的三个体会

体会一:type()是最好的老师

遇到不确定的类型,print(type(x))一下立刻清楚。这个习惯能避免 80% 的类型错误。

体会二:转换前先想"能不能转"

不是所有类型都能互相转。int(None)会报错、int("abc")也会报错。转换前问自己三个问题:

  • 源类型是什么?

  • 目标类型接受什么?

  • 中间需要桥梁吗?

体会三:进制转换的本质是"翻译"

不同进制只是同一数字的不同表达方式。1890b101111010o2750xbd本质是同一个数。掌握int(s, base)这一个函数,就能打通所有进制的转换。


四、仍然存在的疑问

  1. 浮点数精度问题在实际项目中怎么优雅处理?

  2. 自定义类如何支持int()str()等类型转换?

  3. is==除了None判断,还有哪些场景必须区分?


五、下一步学习计划

  • 深入学习容器类型:列表、元组、字典、集合

  • 理解可变类型与不可变类型的区别

  • 练习更多类型转换的实战场景


一句话总结这次学习:数据类型是 Python 的地基,地基打牢了,后面盖楼才稳。type()常在手,str()解千愁,转换之前先思考,进制桥梁记心头。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询