当前位置: 首页 > news >正文

Python 类型转换详解

文章目录

  • Python 类型转换详解
    • 基本类型转换函数
      • 1. 转换为整数 (`int()`)
      • 2. 转换为浮点数 (`float()`)
      • 3. 转换为字符串 (`str()`)
      • 4. 转换为布尔值 (`bool()`)
    • 容器类型转换
      • 1. 转换为列表 (`list()`)
      • 2. 转换为元组 (`tuple()`)
      • 3. 转换为集合 (`set()`)
      • 4. 转换为字典 (`dict()`)
    • 特殊类型转换
      • 1. ASCII码转换
      • 2. 进制转换
    • 类型转换注意事项

Python 类型转换详解

类型转换是将一个数据类型的值转换为另一个数据类型的过程。Python提供了多种内置函数来实现不同类型之间的转换。

基本类型转换函数

1. 转换为整数 (int())

int(3.14)       # 浮点转整数 → 3
int("100")      # 字符串转整数 → 100
int(True)       # 布尔转整数 → 1
int("1010", 2)  # 二进制字符串转整数 → 10

2. 转换为浮点数 (float())

float(10)       # 整数转浮点 → 10.0
float("3.14")   # 字符串转浮点 → 3.14
float(True)     # 布尔转浮点 → 1.0

3. 转换为字符串 (str())

str(100)        # 整数转字符串 → "100"
str(3.14)       # 浮点转字符串 → "3.14"
str(True)       # 布尔转字符串 → "True"

4. 转换为布尔值 (bool())

bool(0)         # → False
bool(1)         # → True
bool("")        # 空字符串 → False
bool("Hello")   # 非空字符串 → True
bool([])        # 空列表 → False
bool([1, 2])    # 非空列表 → True

容器类型转换

1. 转换为列表 (list())

list("abc")     # 字符串转列表 → ['a', 'b', 'c']
list((1, 2, 3)) # 元组转列表 → [1, 2, 3]
list({1, 2, 3}) # 集合转列表 → [1, 2, 3]

2. 转换为元组 (tuple())

tuple([1, 2, 3])    # 列表转元组 → (1, 2, 3)
tuple("abc")        # 字符串转元组 → ('a', 'b', 'c')

3. 转换为集合 (set())

set([1, 2, 2, 3])   # 列表转集合 → {1, 2, 3}
set("hello")        # 字符串转集合 → {'h', 'e', 'l', 'o'}

4. 转换为字典 (dict())

dict([(1, 'a'), (2, 'b')])  # 元组列表转字典 → {1: 'a', 2: 'b'}
dict(zip([1, 2], ['a', 'b']))  # zip对象转字典 → {1: 'a', 2: 'b'}

特殊类型转换

1. ASCII码转换

ord('A')        # 字符转ASCII码 → 65
chr(65)         # ASCII码转字符 → 'A'

2. 进制转换

hex(255)        # 转十六进制字符串 → '0xff'
oct(64)         # 转八进制字符串 → '0o100'
bin(10)         # 转二进制字符串 → '0b1010'

类型转换注意事项

  1. 兼容性检查:转换前应确保数据可以合法转换

    int("123abc")  # 会引发 ValueError
    
  2. 精度损失:浮点转整数会截断小数部分

    int(3.99)  # → 3 (不是四舍五入)
    
  3. 隐式转换:某些操作会自动进行类型转换

    3 + 4.5  # 整数3自动转为浮点数 → 7.5
    
  4. 容器转换特性

    • 字典转列表/元组/集合时,只会保留键
    • 集合转换会去除重复元素
http://www.dtcms.com/a/125496.html

相关文章:

  • C++在嵌入式中表现如何?
  • springboot 处理编码的格式为opus的音频数据解决方案【java8】
  • AICon 2024年全球人工智能与大模型开发与应用大会(脱敏)PPT汇总(36份).zip
  • 用HTML和CSS绘制佩奇:我不是佩奇
  • 当气象水文遇见R语言——破解时空数据的“达芬奇密码“
  • NotebookLM:基于 Gemini 2.0 的个性化 AI 研究助手
  • 助力用户增长数据可视化分析:天玑个性化数据大盘
  • linux网络环境配置
  • 蓝桥杯算法题3
  • oracle 表空间(Tablespace)
  • APT攻击阶段划分,每个阶段分区方法
  • 文件IO5(JPEG图像原理与应用)
  • 【数学建模】(智能优化算法)鲸鱼优化算法(Whale Optimization Algorithm)详解与应用
  • Java实现安卓手机模拟操作
  • 深入解析SLAM中的状态估计问题:从理论到C++实现
  • 一些简单但常用的算法记录(python)
  • C++算法之代码随想录(链表)——基础知识
  • 解决opencv中文路径问题
  • 力扣热题100刷题day63|49.字母异位词分组
  • Windows 图形显示驱动开发-WDDM 1.2功能_WDDM 1.2 和 Windows 8
  • Uniapp Vue 实现当前日期到给定日期的倒计时组件开发
  • 8.4 容器2
  • 尼日利亚拉各斯云服务器和VPS的综合分析,涵盖其优势、价格、推荐服务商及选择建议
  • 大模型论文:Language Models are Unsupervised Multitask Learners(GPT2)
  • netstat 查看端口占用、杀死进程
  • JAVA实现在H5页面中点击链接直接进入微信小程序
  • 课堂总结。
  • edge 更新到135后,Clash 打开后,正常网页也会自动跳转
  • 微服务拆分的原则、时机、方法以及常见问题
  • C++中stack函数的用法示例