python中的不同数据类型的转换-整数型(int)

在 Python 中,将其他数据类型转换为整型(int)主要通过 int() 函数实现。以下是详细的原理、用法和可执行代码示例:


转换原理

  1. 底层机制int() 调用对象的 __int__() 方法实现转换。
  2. 支持类型:可以转换 floatbool、符合格式的 str(如 "123")、bytes(需可解码为数字)等类型。
  3. 失败条件:若数据无法转换为整数(如 "abc" 字符串),会抛出 ValueError

基本用法

1. 从浮点数转换(截断小数,不四舍五入)
num_float = 3.9
num_int = int(num_float)  # 结果为 3(直接丢弃小数部分)
print(num_int)  # 输出: 3

输出:
在这里插入图片描述

2. 从布尔值转换
bool_true = True
bool_false = False
print(int(bool_true))   # 输出: 1
print(int(bool_false))  # 输出: 0

输出:
在这里插入图片描述

3. 从字符串转换(需为整数格式)
str_num = "123"
num = int(str_num)
print(num + 1)  # 输出: 124

# 若字符串包含非数字字符会报错
# int("123.5")  # ValueError

输出:
在这里插入图片描述

4. 从其他进制字符串转换
binary_str = "1010"  # 二进制
hex_str = "1a"       # 十六进制(a 表示 10)
print(int(binary_str, 2))  # 输出: 10
print(int(hex_str, 16))    # 输出: 26

输出:
在这里插入图片描述


错误处理

使用 try-except 捕获无效输入
user_input = input("请输入一个整数:")
try:
    num = int(user_input)
    print("转换成功:", num)
except ValueError:
    print("错误:输入内容不是有效整数!")

# 示例执行:
# 输入 "42" → 输出 "转换成功: 42"
# 输入 "3.14" → 输出 "错误:输入内容不是有效整数!"

输出:
在这里插入图片描述


进阶用法

1. 混合转换(浮点数字符串 → 整数)
# 先将字符串转为浮点数,再转为整数
str_float = "123.45"
num = int(float(str_float))  # 分两步转换
print(num)  # 输出: 123

输出:
在这里插入图片描述

2. 处理科学计数法字符串
sci_str = "2e3"  # 表示 2×10^3 = 2000
num = int(float(sci_str))  # 先转浮点数,再转整数
print(num)  # 输出: 2000

输出:
在这里插入图片描述

3. 转换字节类型(bytes)
byte_data = b"123"  # bytes 类型的数字
num = int(byte_data.decode())  # 先解码为字符串,再转换
print(num)  # 输出: 123

输出:
在这里插入图片描述


完整示例代码

# 示例1:浮点数转整数
price = 99.95
discount = int(price)  # 结果为 99
print("折扣价:", discount)

# 示例2:处理用户输入
while True:
    user_input = input("请输入一个整数:")
    if user_input.strip() == "":
        print("输入不能为空!")
        continue
    try:
        num = int(user_input)
        print(f"转换结果: {num}")
        break
    except ValueError:
        print("输入无效,请重试!")

# 示例3:多进制转换
binary = "1101"
decimal = int(binary, 2)
print(f"二进制 {binary} 转十进制: {decimal}")  # 输出: 13

hex_num = "ff"
decimal = int(hex_num, 16)
print(f"十六进制 {hex_num} 转十进制: {decimal}")  # 输出: 255

输出:
在这里插入图片描述
在这里插入图片描述


注意事项

  1. 浮点精度问题
    print(int(2.9999999999999999))  # 输出 3(浮点数精度极限导致)
    
  2. 大数处理
    Python 的 int 无大小限制,但超出系统内存的数值会导致崩溃。

通过合理使用 int() 函数和错误处理,可以安全地将多种数据类型转换为整数,适用于用户输入处理、数据清洗、数学计算等场景。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ztxlearning

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值