系列文章目录
提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 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()转 |
以为True和1是两回事 | bool是int的子类,True==1是真的 |
以为str()有些类型不能转 | 任何类型都能转字符串,包括None |
以为八进制是0b开头 | 八进制是0o,二进制才是0b |
三、最深刻的三个体会
体会一:type()是最好的老师
遇到不确定的类型,print(type(x))一下立刻清楚。这个习惯能避免 80% 的类型错误。
体会二:转换前先想"能不能转"
不是所有类型都能互相转。int(None)会报错、int("abc")也会报错。转换前问自己三个问题:
源类型是什么?
目标类型接受什么?
中间需要桥梁吗?
体会三:进制转换的本质是"翻译"
不同进制只是同一数字的不同表达方式。189、0b10111101、0o275、0xbd本质是同一个数。掌握int(s, base)这一个函数,就能打通所有进制的转换。
四、仍然存在的疑问
浮点数精度问题在实际项目中怎么优雅处理?
自定义类如何支持
int()、str()等类型转换?is和==除了None判断,还有哪些场景必须区分?
五、下一步学习计划
深入学习容器类型:列表、元组、字典、集合
理解可变类型与不可变类型的区别
练习更多类型转换的实战场景
一句话总结这次学习:数据类型是 Python 的地基,地基打牢了,后面盖楼才稳。type()常在手,str()解千愁,转换之前先思考,进制桥梁记心头。