12、Python整数全解:进制转换、类型转型与科学计算优势

适合人群:零基础自学者 | 编程小白快速入门
阅读时长:约6分钟

一、问题:为什么Python3的整数任意大?

1、例子1:生活化比喻:数学家的草稿纸

比喻解析

  • Python3的整数就像无限延伸的草稿纸,可以写下任意大的数字
  • 对比其他语言(如Java)的整数是固定大小的便签纸,超过范围就会溢出
# Python超大整数计算演示
a = 10 ** 100
print(a)

#打印:10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
// Java整数溢出示例(对比Python)
public class IntOverflow {
    public static void main(String[] args) {
        int maxInt = 2147483647; // int最大正值
        System.out.println("最大值 +1:" + (maxInt + 1)); 
    }
}

/*
最大值 +1:-2147483648
Java的int范围:-2,147,483,648 ~ 2,147,483,647。
溢出现象:当超过最大值时,会循环到最小值(类似汽车里程表归零)
*/

2、答案:

(1)Python3的整数可以任意大

在这里插入图片描述

  1. Python2中,int 是32位,可以储存从-21474836482147483647 的整数(约±21亿)。Long 类型是64位,可以储存 -2^632^63-1 之间的数值。
  2. Python3中,int可以储存任意大小的整数,Long 类型被取消。Python3中可以做超大数的计算,而不会造成“整数溢出”,这也是Python特别适合科学计算的特点。

二、问题:Python的不同进制表示整数?

1、例子1:进制转换实战

# Python不同进制整数表示示例

# 十进制(日常使用的数字)
num1 = 10  
print(num1)  # 输出:10

# 二进制(以0b开头)
num2 = 0b1010  # 二进制1010 → 十进制10  
print(num2)    # 输出:10

# 八进制(以0o开头)
num3 = 0o12    # 八进制12 → 十进制10  
print(num3)    # 输出:10

# 十六进制(以0x开头)
num4 = 0xA     # 十六进制A → 十进制10  
print(num4)    # 输出:10

# 混合计算(自动转十进制)
result = 0b1010 + 0o12 + 0xA  
print(result)  # 输出:30 (10+10+10)

2、答案:

(1)二进制/八进制/十六进制表示整数

Python中,除了十进制,还有其他三种进制:这三种进制可以非常方便的进行“位运算”操作。位运算后续将会介绍。

  1. 二进制,0b0B:0,1
  2. 八进制,0o0O:0,1,2,3,4,5,6,7
  3. 十六进制,0x0X:0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f

三、问题:Python的其他类型转成整数?

1、例子1:其他类型转成整数

# Python其他类型转成整数的简单示例

# 示例1:浮点数转整数   
price = 3.99  
print(int(price))  # 输出:3 → 直接舍弃小数部分  

# 示例2:布尔值转整数
is_available = True  
is_open = False  
print(int(is_available))  # 输出:1(True转1)  
print(int(is_open))        # 输出:0(False转0)  

# 示例3:数字字符串转整数
year_str = "2024"  
print(int(year_str))  # 输出:2024 → 有效整数格式  
# 错误案例  
invalid_str = "3.14元"  
# print(int(invalid_str))  # 触发ValueError  

# 示例4:自动转型规则
result = 5 + 2.0  
print(result)         # 输出:7.0 → 自动转为浮点数  
print(type(result))    # <class 'float'>  

2、答案:

(1)使用int()方法实现类型转换

  1. 浮点数直接舍去小数部分。如:int(9.9) 的结果是:9
  2. 布尔值 True 转为 1False 转为 0 。如:int(True) 结果是 1
  3. 字符串值,符合整数格式(浮点数格式不行),则直接转成对应整数,否则报错。
  4. 自动转型:整数和浮点数混合运算时,表达式结果会自动转为浮点数。比如:2+8.0 的结果是 10.0

四、动手试一试

  1. 进制转换验证。
# 将下列数值转换为十进制并打印结果  
binary_num = 0b1101    # 二进制 → 十进制  
octal_num = 0o27       # 八进制 → 十进制  
hex_num = 0x1F         # 十六进制 → 十进制  

print("二进制转十进制:", binary_num)  
print("八进制转十进制:", octal_num)  
print("十六进制转十进制:", hex_num)  

参考答案:
二进制转十进制: 13
八进制转十进制: 23
十六进制转十进制: 31

  1. 类型转换实践。
# 将以下数据转换为整数  
float_num = 9.99  
bool_value = False  
str_num = "1024"  

print(int(float_num))    # 输出:_____  
print(int(bool_value))   # 输出:_____  
print(int(str_num))      # 输出:_____  

# 尝试转换会报错的数据(注释掉避免程序终止)  
# error_str = "3.14元"  
# print(int(error_str))  

参考答案:9 0 1024


📢 互动区
👉 遇到问题?在评论区:

  1. 描述问题(带代码截图更好)
  2. 分享学习心得
  3. 给文章提建议

支持作者:点赞 | 收藏 | 关注
你的三连是我更新的最大动力!


👉 下篇预告
13、Python浮点数与增强运算符详解:从精度处理到实战应用
→ 浮点数精度问题与精确计算方案
→ 增强运算符在游戏开发中的实战应用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值