一、Python的基本数据类型1Python中有5种基本数据类型int整数、float浮点数、str字符串、bool布尔值和None空值。1. int整数整数是不带小数部分的数字可以是正数、负数或零。# 整数示例age25count-10zero0large_number10000002. float浮点数浮点数是带有小数部分的数字用于表示实数。# 浮点数示例price19.99pi3.14159temperature-5.5scientific1.23e-4# 科学计数法0.0001233. str字符串字符串是由字符组成的序列用于表示文本数据用单引号、双引号或三引号包裹。# 字符串示例name张三greetingHello, World!multiline这是一个 多行字符串4. bool布尔值布尔值只有两个值True真和False假用于逻辑判断。# 布尔值示例is_activeTruehas_permissionFalseresult105# 结果为True5. None空值None表示空值或没有值是Python中的一个特殊常量。# None示例resultNoneuser_inputNone# 表示用户尚未输入数据类型检查与转换可以使用type()函数检查变量的数据类型# 类型检查print(type(42))# class intprint(type(3.14))# class floatprint(type(hello))# class strprint(type(True))# class boolprint(type(None))# class NoneType数据类型之间可以相互转换# 类型转换示例num_str123num_intint(num_str)# 字符串转整数123num_floatfloat(num_str)# 字符串转浮点数123.0bool_valbool(0)# 整数转布尔值Falsestr_valstr(3.14)# 浮点数转字符串3.14二、Python整数进制转换在Python中整数int不仅支持十进制表示还支持二进制、八进制和十六进制表示。进制转换是编程中常见的操作特别是在处理底层数据、网络协议或硬件交互时。1. 不同进制的表示方法Python支持以下进制表示法# 十进制默认decimal_num42# 二进制以0b或0B开头binary_num0b101010# 等于十进制的42# 八进制以0o或0O开头octal_num0o52# 等于十进制的42# 十六进制以0x或0X开头hex_num0x2A# 等于十进制的422. 进制转换函数Python提供了内置函数进行进制转换# 十进制转其他进制num42# 十进制转二进制字符串bin_strbin(num)# 0b101010print(bin_str)# 十进制转八进制字符串oct_stroct(num)# 0o52print(oct_str)# 十进制转十六进制字符串hex_strhex(num)# 0x2aprint(hex_str)# 去掉前缀print(bin(num)[2:])# 101010print(oct(num)[2:])# 52print(hex(num)[2:])# 2a3. 其他进制转十进制使用int()函数的第二个参数可以指定进制# 二进制字符串转十进制binary_str101010decimal_from_binint(binary_str,2)# 42print(f二进制{binary_str} 十进制{decimal_from_bin})# 八进制字符串转十进制octal_str52decimal_from_octint(octal_str,8)# 42print(f八进制{octal_str} 十进制{decimal_from_oct})# 十六进制字符串转十进制hex_str2Adecimal_from_hexint(hex_str,16)# 42print(f十六进制{hex_str} 十进制{decimal_from_hex})# 带前缀的字符串也可以转换print(int(0b101010,0))# 420表示自动检测前缀print(int(0o52,0))# 42print(int(0x2A,0))# 424. 格式化输出使用格式化字符串可以控制进制输出num42# 格式化输出print(f十进制{num})# 十进制42print(f二进制{num:b})# 二进制101010print(f八进制{num:o})# 八进制52print(f十六进制小写{num:x})# 十六进制小写2aprint(f十六进制大写{num:X})# 十六进制大写2A# 带前缀的格式化print(f二进制带前缀{num:#b})# 二进制带前缀0b101010print(f八进制带前缀{num:#o})# 八进制带前缀0o52print(f十六进制带前缀{num:#x})# 十六进制带前缀0x2a5. 实际应用示例# 示例1IP地址转换ip_decimal3232235777# 192.168.1.1的十进制表示ip_hexhex(ip_decimal)print(fIP地址192.168.1.1的十六进制表示{ip_hex})# 0xc0a80101# 示例2权限掩码Linux文件权限permission0o755# rwxr-xr-xprint(f八进制权限{oct(permission)})# 0o755print(f二进制权限{bin(permission)})# 0b111101101# 示例3颜色值转换color_hex0xFF5733# 橙色color_r(color_hex16)0xFF# 红色分量color_g(color_hex8)0xFF# 绿色分量color_bcolor_hex0xFF# 蓝色分量print(f颜色0xFF5733的RGB值({color_r},{color_g},{color_b}))6. 注意事项进制前缀二进制0b、八进制0o、十六进制0x是Python的语法要求大小写敏感十六进制中0x2A和0x2a表示相同的值负数表示负数也可以用其他进制表示如-0b101010表示十进制的-42int()函数的base参数可以是0或2-36之间的整数0表示自动检测前缀# 负数示例negative_num-42print(bin(negative_num))# -0b101010print(hex(negative_num))# -0x2a# 大数支持large_num10**100# 10的100次方print(f大数的十六进制{hex(large_num)[:50]}...)掌握整数进制转换对于理解计算机底层原理、处理二进制数据、进行位运算等高级编程技巧非常重要。这5种基本数据类型构成了Python编程的基础int处理整数计算float处理小数和实数str处理文本信息bool进行逻辑判断None表示空值或缺失值掌握这些数据类型是学习Python编程的第一步后续的列表、元组、字典等复合数据类型都是基于这些基本类型构建的。三、Python数据类型转换函数Python提供了丰富的内置函数用于数据类型之间的转换这些函数在处理数据输入、格式转换和类型兼容性时非常有用。常用类型转换函数int() - 转换为整数# 将字符串、浮点数转换为整数num1int(123)# 字符串转整数123num2int(3.99)# 浮点数转整数3向下取整num3int(True)# 布尔值转整数True→1, False→0num4int(1010,2)# 二进制字符串转整数10num5int(FF,16)# 十六进制字符串转整数255print(fint(123) {num1})print(fint(3.99) {num2})print(fint(True) {num3})print(fint(1010, 2) {num4})print(fint(FF, 16) {num5})float() - 转换为浮点数# 将字符串、整数转换为浮点数f1float(3.14)# 字符串转浮点数3.14f2float(42)# 整数转浮点数42.0f3float(1.23e-4)# 科学计数法字符串0.000123f4float(True)# 布尔值转浮点数True→1.0, False→0.0print(ffloat(3.14) {f1})print(ffloat(42) {f2})print(ffloat(1.23e-4) {f3})print(ffloat(True) {f4})str() - 转换为字符串# 将任意类型转换为字符串s1str(123)# 整数转字符串123s2str(3.14159)# 浮点数转字符串3.14159s3str(True)# 布尔值转字符串Trues4str([1,2,3])# 列表转字符串[1, 2, 3]s5str({name:张三})# 字典转字符串{name: 张三}print(fstr(123) {s1})print(fstr(3.14159) {s2})print(fstr(True) {s3})print(fstr([1,2,3]) {s4})print(fstr({{name:张三}}) {s5})bool() - 转换为布尔值# 将任意类型转换为布尔值b1bool(0)# 0转换为Falseb2bool(1)# 非零整数转换为Trueb3bool(0.0)# 0.0转换为Falseb4bool()# 空字符串转换为Falseb5bool(Hello)# 非空字符串转换为Trueb6bool([])# 空列表转换为Falseb7bool([1,2])# 非空列表转换为Trueb8bool(None)# None转换为Falseprint(fbool(0) {b1})print(fbool(1) {b2})print(fbool(0.0) {b3})print(fbool() {b4})print(fbool(Hello) {b5})print(fbool([]) {b6})print(fbool([1,2]) {b7})print(fbool(None) {b8})