适合人群:零基础自学者 | 编程小白快速入门
阅读时长:约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的整数可以任意大
- Python2中,
int
是32位,可以储存从-2147483648
到2147483647
的整数(约±21亿)。Long
类型是64位,可以储存-2^63
到2^63-1
之间的数值。 - 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中,除了十进制,还有其他三种进制:这三种进制可以非常方便的进行“位运算”操作。位运算后续将会介绍。
- 二进制,
0b
或0B
:0,1 - 八进制,
0o
或0O
:0,1,2,3,4,5,6,7 - 十六进制,
0x
或0X
: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()方法实现类型转换
- 浮点数直接舍去小数部分。如:
int(9.9)
的结果是:9
- 布尔值
True
转为1
,False
转为0
。如:int(True)
结果是1
- 字符串值,符合整数格式(浮点数格式不行),则直接转成对应整数,否则报错。
- 自动转型:整数和浮点数混合运算时,表达式结果会自动转为浮点数。比如:
2+8.0
的结果是10.0
四、动手试一试
- 进制转换验证。
# 将下列数值转换为十进制并打印结果
binary_num = 0b1101 # 二进制 → 十进制
octal_num = 0o27 # 八进制 → 十进制
hex_num = 0x1F # 十六进制 → 十进制
print("二进制转十进制:", binary_num)
print("八进制转十进制:", octal_num)
print("十六进制转十进制:", hex_num)
参考答案:
二进制转十进制: 13
八进制转十进制: 23
十六进制转十进制: 31
- 类型转换实践。
# 将以下数据转换为整数
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
📢 互动区
👉 遇到问题?在评论区:
- 描述问题(带代码截图更好)
- 分享学习心得
- 给文章提建议
⭐ 支持作者:点赞 | 收藏 | 关注
你的三连是我更新的最大动力!
👉 下篇预告
13、Python浮点数与增强运算符详解:从精度处理到实战应用
→ 浮点数精度问题与精确计算方案
→ 增强运算符在游戏开发中的实战应用