新手初学Python总报错?根源全在数据类型、进制与类型转换
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
很多刚接触Python的同学,写代码时总遇到莫名其妙的报错:字符串转数字失败、进制写法混乱、 int() 转换浮点数结果和预想不一样……
其实根源就是没吃透Python基础数据类型、整数进制规则、强制类型转换底层逻辑。
本篇文章结合完整可运行代码,从零拆解Python五大基础数据类型、四种进制定义、全套进制转换函数与类型转换规则,看完就能上手,非常适合零基础入门、期末复习、课后作业参考。
一.Python五大基础数据类型
Pyrhon是一门动态类型语言,变量无需提前声明。
1.整数int
用于存储正负整数,0,int没有数值上大小的限制

2.浮点型float
用于存储小数,科学计数法数值,存在浮点精度误差。

3.字符串str
用来储存文本内容。有三种引号定义方式:
(1)单引号‘ ’(双引号“ ” 与下图同理)

(2)多行换行字符串

(3)单双嵌套无需定义

4布尔型bool
仅有两个固定值: True (真,等价整数1)、 False (假,等价整数0),多用于条件判断、循环判断。

5空值 NoneType
None 代表空对象,表示变量不存储任何有效数据,是独立的数据类型,不等于0、空字符串。

二.Python整数进制表示与进制转换
整数支持十进制、二进制、八进制、十六进制四种写法,所有进制最终在内存中都以二进制存储。
1. 四种进制字面量定义
进制 前缀 组成规则 示例
十进制 无前缀 0~9, 逢十进一 i = 0
二进制 0b 开头 仅0、1, 逢二进一 b = 0b100011
八进制 0o 开头 0~7, 逢八进一 o = 0o17
十六进制 0x 开头 0~9、a~f, 逢十六进一 h = 0xfa
# 十进制
i = 0
print(i, type(i)) # 0 <class 'int'>
![]()
# 二进制 0b开头
b = 0b100011
print(b, type(b)) # 35 <class 'int'>
![]()
# 十六进制 0x开头
h = 0xfa
print(h, type(h)) # 250 <class 'int'>
![]()
2. 核心进制转换函数
(1)任意进制字符串 → 十进制: int(进制字符串, base=底数)
base代表传入字符串属于几进制,返回十进制整数。
print(int("20", base=10)) # 十进制字符串转十进制:20
print(int("101", base=2)) # 二进制字符串转十进制:5
print(int("17", base=8)) # 八进制字符串转十进制:15
print(int("fa", base=16)) # 十六进制字符串转十进制:250
(2)十进制 → 其他进制字符串
bin(十进制数) :转为二进制字符串,自带 0b 前缀
oct(十进制数) :转为八进制字符串,自带 0o 前缀
hex(十进制数) :转为十六进制字符串,自带 0x 前缀
print(bin(10)) # 0b1010 十进制转二进制
print(oct(10)) # 0o12 十进制转八进制
print(hex(10)) # 0xa 十进制转十六进制

三.常用强制类型转换函数详解
1. int():转为整数
1. 指定base,可以将十六进制字符串(包含字母)转为整数
2. 转换浮点数时,直接截断小数部分,不会四舍五入
3. 布尔值转换: True → 1 , False → 0

2. float():转为浮点数
整数、数字字符串、布尔值都可以转为浮点数, True→1.0 , False→0.0

3. bool():转为布尔值
判定规则:只有假值会返回False,其余全部为True
假值集合: 0、0.0、空字符串""、None、空列表[]、空元组()、空字典{}

4. str():万能转字符串
所有基础数据类型都可以通过str()转为对应的文本字符串,常用于字符串拼接、日志输出。

四.新手高频易错点总结
1. int(浮点数) 仅截断小数,不会四舍五入,需要四舍五入请使用 round() 函数;
2. 普通非数字字符串(如 "12a3" )直接调用 int() 会抛出 ValueError ,只有传入base进制参数时,才能解析对应进制的字母;
3. None 是独立的空类型,和数字0、空字符串完全不相等;
4. 浮点数运算存在精度误差,金融、精密计算需要使用 decimal 模块;
5. 隐式类型转换优先级: bool < int < float ,混合运算时精度低的类型会自动转为高精度类型。
五.代码
# 声明整数int
num = 0
print(num, type(num))
# 声明浮点数float
f1 = -3.1415926
f1_type = type(f1)
print(f1,f1_type)
# 单行字符串str
s1 ="hello world"
print(s1,type(s1))
s2 = 'hello porld'
print(s2,type(s2))
# 三引号换行字符串
s3 = """hello
world"""
print(s3,type(s3))
s4 = '''hello
world'''
print(s4,type(s4))
# 单双引号嵌套字符串
s5 = 'he"llo world@#####$$$^%%^&^%%^^'
print(s5,type(s5))
s6 = "he'llo world@@@####%$^^&%*&^&(%&"
print(s6,type(s6))
# 布尔bool
s7 = True
print(s7,type(s7))
s8 = False
print(s8,type(s8))
# 空值NoneType
s9 = None
print(s9,type(s9))
# 十进制变量
i = 0
print(i,type(i))
# 二进制 0b开头
b = 0b100011
print(b,type(b))
# 十六进制 0x开头
h = 0xfa
print(h,type(h))
# 任意进制字符串转十进制
print(int("20",base=10))
print(int("101",base=2))
print(int("17",base=8))
print(int("fa",base=16))
# 十进制转其他进制
print(bin(10))
print(oct(10))
print(hex(10))
# int强制转换
v = int("10abcdef",base=16)
print(v,type(v))
v2 = int(3.1415)
print(v2,type(v2))
v3 = int(True)
v4 = int (False)
print(v3,v4)
# float强制转换
f1 = float("10")
print(f1,type(f1))
f2 = float(True)
print(f2,type(f2))
f3 = float(10)
print(f3,type(f3))
# bool强制转换
b1 = bool(10)
print(b1,type(b1))
b2 = bool(3.14)
print(b2,type(b2))
b3 = bool("10ad")
print(b3,type(b3))
b4 = bool(None)
print(b4,type(b4))
# str强制转换
s1 = str(123)
print(s1,type(s1))
s2 = str(3.14)
print(s2,type(s2))
s3 = str(True)
print(s3,type(s3))
s4 = str(None)
print (s4,type(s4))
总结
本文完整覆盖了Python入门最核心的三块知识点:基础数据类型、整数进制转换、强制类型转换。这部分是后续列表、字典、函数、面向对象的地基,建议新手亲手运行每一段代码,吃透转换规则,避开入门高频报错。后续会持续更新Python入门系列干货,欢迎点赞收藏、评论交流问题。
更多推荐


所有评论(0)