Python入门必修课:基本数据类型、进制转换与类型转换函数全解析 一、Python 的基本数据类型Python是动态类型语言变量不需要提前声明类型赋值时自动推断。但这不代表类型不重要——恰恰相反理解数据类型是写出健壮代码的第一步。Python 核心基础数据类型数字 布尔 字符串 空值类型说明示例注意事项int整数任意大小无精度损失支持位运算42,-3,0,0xFF,0b1010可表示超大整数//为向下取整float浮点数3.14,-0.001,2.0,1.2e5存在精度问题如0.10.2≠0.3bool布尔值逻辑真假True,Falsebool是int的子类True1,False0str字符串Hello,Python,多行支持索引、切片、格式化NoneType空值类型表示无或未定义None全局唯一单例判断必须用is None代码示例# 1. 整数 (int) age 25 big_num 2 ** 100 # 超大整数 hex_num 0xFF # 十六进制 → 255 bin_num 0b1010 # 二进制 → 10 print(type(age)) # class int print(big_num) # 1267650600228229401496703205376 print(hex_num) # 255 print(5 // 2) # 2向下取整 print(-5 // 2) # -3注意向下取整不是向零截断 # 2. 浮点数 (float) price 99.9 pi 3.14159 scientific 1.2e5 # 科学计数法 → 120000.0 print(type(price)) # class float print(0.1 0.2) # 0.30000000000000004精度问题 # 3. 布尔值 (bool) is_student True is_graduated False print(type(is_student)) # class bool print(is_student 3) # 4True 当作 1 参与运算 print(int(True)) # 1 print(int(False)) # 0 # 常见假值在if判断中会被视为False print(bool(0)) # False print(bool(0.0)) # False print(bool()) # False print(bool(None)) # False print(bool( )) # True空格是字符非空字符串 # 4. 字符串 (str) name Alice greeting Hello multi_line 第一行 第二行 第三行 print(type(name)) # class str # 5. 空值类型 (NoneType) result None print(type(result)) # class NoneType print(result is None) # True1.整数intPython的整数与其他语言最大的不同是没有长度限制仅受内存约束理论上可以无限大。整数的内存模型pythona 42 b 2 ** 1000 # 这是一个拥有302位数字的超大整数 print(b) # 107150860718626732094842504906000181056140481170553360744375... print(type(b)) # class int在C语言中int超过范围会溢出Python则自动扩容代价是运算速度稍慢但换来的是绝对的数值安全性。整数的四种进制表示(int)日常主要用十进制但某些场景会用到其他进制dec 255 bin_ 0b11111111 # 二进制前缀 0b oct_ 0o377 # 八进制前缀 0o hex_ 0xFF # 十六进制前缀 0x 四种写法全部相等 print(dec bin_ oct_ hex_) # True2. 浮点数(float)Python的float基于IEEE 754双精度标准即C语言的double占用64位有效精度约15~17位十进制数字。浮点数的本质缺陷0.1 0.2 ≠ 0.3——这是所有使用二进制浮点数的语言的通病其根源在于计算机使用二进制基数为2来表示数字而许多十进制小数无法用有限的二进制位精确表示。Python的float类型基于IEEE 754双精度标准即C语言的double占用64位有效精度约15~17位十进制数字。这已经能满足绝大多数科学计算和工程应用的需求但在涉及精确小数运算时必须警惕其固有的舍入误差。让我们通过代码直观感受这个问题print(0.1 0.2) # 输出0.30000000000000004 print(0.1 0.2 0.3) # 输出False 更多令人惊讶的例子 print(0.3 - 0.2 0.1) # 输出False print(1.1 2.2) # 输出3.3000000000000003 print(0.7 0.1) # 输出0.7999999999999999原因分析十进制小数0.1在二进制中是一个无限循环小数0.0001100110011...就像1/3在十进制中是0.333...一样。计算机内存有限只能存储其近似值。当进行连续运算时这些微小的近似误差会累积导致最终结果与预期产生微小偏差。应对策略容忍微小误差对于大多数科学计算这种微小的误差通常在10-15量级是可以接受的。比较浮点数时应使用容差比较而非直接相等abs(a - b) 1e-9理解浮点数的这一本质缺陷是编写可靠数值计算程序的关键。它提醒我们计算机的精确是相对的选择合适的数据类型和比较方法才能避免因舍入误差导致的隐蔽错误。浮点数转整数的注意事项pythonprint(int(3.9)) # 3 向零截断不是四舍五入 print(int(-3.9)) # -3 向零截断 print(round(3.5)) # 4 四舍五入3、布尔类型bool—— 并非只有True和False这么简单bool是int的子类True和False分别对应1和0。布尔值的隐式转换在条件判断if、while、or中以下值会被视为假False分类具体值数值零0,0.0,0j空序列/集合,[],(),{}NoneNone其他所有值均为Truepythonif []: # False if : # False if : # True空格是字符4. 字符串类型str用单引号、双引号或三引号括起来的文本不可变序列。pythonname Alice greet Hello multi_line 第一行 第二行字符串的创建与引号选择pythons1 单引号 s2 双引号 # 可以包含单引号如 its s3 三单引号 # 可换行 s4 三双引号 # 同样可换行字符串与数字的相互转换陷阱pythonnum_str 123 print(int(num_str)) # 123 OK print(float(num_str)) # 123.0 OK invalid 12.3 # print(int(invalid)) # ValueError不能直接转int必须先转float print(int(float(invalid))) # 12 先转float再转int5、NoneTypeNone—— 代表空无一物None是NoneType类型的唯一实例在Python中表示没有值或空。常见使用场景python# 1. 变量初始化占位 result None二、Python 整数进制转换Python 对整数提供了便捷的进制表示法和转换函数这在网络编程、颜色处理、位运算等场景非常常用。1. 整数字面量的进制表示在代码中直接写不同进制的整数pythondec 42 # 十进制默认 bin_num 0b101010 # 二进制前缀 0b/0B oct_num 0o52 # 八进制前缀 0o/0O hex_num 0x2A # 十六进制前缀 0x/0X print(dec, bin_num, oct_num, hex_num) # 全部输出 422. 进制转换函数转为字符串函数作用示例bin(x)整数 → 二进制字符串以0b开头bin(42)→0b101010oct(x)整数 → 八进制字符串以0o开头oct(42)→0o52hex(x)整数 → 十六进制字符串以0x开头hex(42)→0x2apythonnum 255 print(bin(num)) # 0b11111111 print(oct(num)) # 0o377 print(hex(num)) # 0xff3. 将其他进制字符串转回整数使用int(string, base)其中base表示原字符串的进制2, 8, 16pythonprint(int(101010, 2)) # 42 print(int(52, 8)) # 42 print(int(2a, 16)) # 42 # 也支持带前缀的写法 print(int(0b101010, 2)) # 42三、Python 数据类型转换函数Python 提供了一系列内置函数用于在不同数据类型之间灵活转换注意转换可能导致精度丢失或报错。常用转换函数一览表函数作用示例int(x)转为整数int(3.9)→3截断int(42)→42float(x)转为浮点数float(3)→3.0float(3.14)→3.14str(x)转为字符串str(123)→123bool(x)转为布尔值空/零 →False非空非零 →True1. 字符串转数字时内容必须合法pythonint(123) # OK int(12.3) # ValueError小数点不是整数格式 float(12.3) # OK2. 浮点数转整数是截断不是四舍五入pythonint(3.9) # 3向零截断 int(-3.9) # -3向零截断3. 布尔值与其他类型互转pythonbool(0) # False bool(42) # True bool() # False bool(abc) # True int(True) # 1四、总结知识点核心要点基本数据类型数字int/float、布尔bool、字符串str、空字符NoneType整数进制转换bin()/oct()/hex()转为带前缀字符串int(s, base)转回整数类型转换函数int()/float()/str()/bool()注意合法性和精度问题掌握好数据类型就为后续的函数、类、文件操作等打下了坚实基础。