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


前言

很多刚接触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入门系列干货,欢迎点赞收藏、评论交流问题。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐