本文目录导读:

我来通过几个实际案例来演示Python整型的实操运算。
基础运算案例
# 基本算术运算
a = 15
b = 4
print("=== 基本算术运算 ===")
print(f"{a} + {b} = {a + b}") # 加法:19
print(f"{a} - {b} = {a - b}") # 减法:11
print(f"{a} * {b} = {a * b}") # 乘法:60
print(f"{a} / {b} = {a / b}") # 除法:3.75
print(f"{a} // {b} = {a // b}") # 整除:3
print(f"{a} % {b} = {a % b}") # 取余:3
print(f"{a} ** {b} = {a ** b}") # 幂运算:50625
进制转换案例
# 不同进制的整数
print("=== 进制转换 ===")
decimal_num = 42
# 十进制转其他进制
print(f"十进制 {42} 的二进制:{bin(decimal_num)}") # 0b101010
print(f"十进制 {42} 的八进制:{oct(decimal_num)}") # 0o52
print(f"十进制 {42} 的十六进制:{hex(decimal_num)}") # 0x2a
# 其他进制转十进制
print(f"二进制 0b101010 转十进制:{int('0b101010', 2)}") # 42
print(f"八进制 0o52 转十进制:{int('0o52', 8)}") # 42
print(f"十六进制 0x2a 转十进制:{int('0x2a', 16)}") # 42
实际应用场景
1 银行利息计算
# 计算复利
principal = 10000 # 本金
rate = 0.05 # 年利率
years = 5 # 存款年数
# 复利公式:A = P(1 + r)^n
amount = principal * (1 + rate) ** years
final_amount = int(amount * 100) / 100 # 保留两位小数
print(f"本金:¥{principal}")
print(f"年利率:{rate * 100}%")
print(f"{years}年后本息合计:¥{final_amount}")
2 秒数转换
# 把秒数转换为时分秒
total_seconds = 3665
hours = total_seconds // 3600
remaining = total_seconds % 3600
minutes = remaining // 60
seconds = remaining % 60
print(f"{total_seconds}秒 = {hours}小时{minutes}分钟{seconds}秒")
# 输出:3665秒 = 1小时1分钟5秒
3 判断奇偶数
# 判断一个数是奇数还是偶数
def check_odd_even(num):
if num % 2 == 0:
return "偶数"
else:
return "奇数"
test_numbers = [7, 12, 23, 50]
for num in test_numbers:
print(f"{num} 是{check_odd_even(num)}")
4 斐波那契数列
# 生成斐波那契数列
def fibonacci(n):
fib_list = [0, 1]
for i in range(2, n):
fib_list.append(fib_list[i-1] + fib_list[i-2])
return fib_list
# 生成前10个斐波那契数
result = fibonacci(10)
print("斐波那契数列前10项:", result)
# 输出:[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
位运算案例
# 位运算操作
a = 60 # 二进制:0011 1100
b = 13 # 二进制:0000 1101
print("=== 位运算 ===")
print(f"a & b = {a & b}") # 按位与:12 (0000 1100)
print(f"a | b = {a | b}") # 按位或:61 (0011 1101)
print(f"a ^ b = {a ^ b}") # 按位异或:49 (0011 0001)
print(f"~a = {~a}") # 按位取反:-61
print(f"a << 2 = {a << 2}") # 左移2位:240 (1111 0000)
print(f"a >> 2 = {a >> 2}") # 右移2位:15 (0000 1111)
整数边界测试
# Python整型的特殊性
print("=== Python整数边界 ===")
print(f"整数类型的大小:{int.__sizeof__(0)} 字节")
# Python的整数是任意精度的
large_number = 10 ** 100 # 极大的整数
print(f"10的100次方:{large_number}")
# 负数处理
negative = -5
print(f"绝对值:{abs(negative)}") # 5
print(f"取反:{~negative}") # 4 (因为 ~(-5) = 4)
综合练习
# 实现一个简单的计算器
class IntegerCalculator:
@staticmethod
def factorial(n):
"""计算阶乘"""
if n < 0:
return "负数没有阶乘"
result = 1
for i in range(1, n + 1):
result *= i
return result
@staticmethod
def gcd(a, b):
"""计算最大公约数"""
while b:
a, b = b, a % b
return a
@staticmethod
def lcm(a, b):
"""计算最小公倍数"""
return a * b // IntegerCalculator.gcd(a, b)
# 使用计算器
calc = IntegerCalculator()
print(f"5! = {calc.factorial(5)}") # 120
print(f"12和18的最大公约数:{calc.gcd(12, 18)}") # 6
print(f"12和18的最小公倍数:{calc.lcm(12, 18)}") # 36
实用技巧
# 1. 快速交换两个数
a, b = 10, 20
a, b = b, a # 利用元组解包
print(f"交换后:a = {a}, b = {b}")
# 2. 判断是否为整数
def is_integer(value):
return isinstance(value, int)
print(f"3是整数吗?{is_integer(3)}") # True
print(f"3.0是整数吗?{is_integer(3.0)}") # False
# 3. 数字格式化
number = 1234567
print(f"带千位分隔符:{number:,}") # 1,234,567
print(f"科学计数法:{number:e}") # 1.234567e+06
这些案例涵盖了Python整型的主要操作和实际应用场景,练习时建议:
- 先从基础运算开始,理解各运算符的含义
- 结合实际场景,如金融计算、时间转换等
- 注意边界情况,特别是除法和取模操作
- 善用IDE调试,观察变量的变化过程
有什么具体的运算场景需要练习吗?