• 软件测试/测试开发/人工智能丨Python类型转换


    类型转换

    Python 是动态类型的语言(也称为弱类型语言),不需要像 Java 或者 C 语言一样必须在使 用变量前声明变量的类型。虽然 Python 不需要先声明变量的类型,但有时仍然需要用到类型转换。

    自动转换

    自动转换也称为隐式类型转换,程序在执行过程中自动完成,将数据精度低转换为数据精度高的类型。

    有些时候,在对不同类型的数据进行运算时,Python 会自动将它们转成同样的类型,然后再计算结果。

    n = 10 + 3.14
    print(n, type(n))
    n = False + 1
    print(n)
    print(type(n))
    
    • 1
    • 2
    • 3
    • 4
    • 5

    强制转换

    强制转换也称为显式类型转换,需要在代码中使用类型函数来转换。

    比如通过input()函数获取的数字,实际为一个数字字符串,如果需要进行计算,需要将其转换成真正的数字才能进行数据计算。

    如果我们不进行类型转换,那么可能会导致程序出现错误或者无法正常运行。

    # 此代码在执行时会报类型错误
    title = "霍格沃兹" + 666
    print(title, type(title))
    title = "霍格沃兹" + str(666)
    print(title, type(title))
    
    • 1
    • 2
    • 3
    • 4
    • 5

    Python提供了多种类型转换的函数:

    • int(x):将 x 转换为整数。如果 x 是一个字符串,那么它必须是一个表示整数的字符串,否则将会抛出异常。
    • float(x):将 x 转换为浮点数。如果 x 是一个字符串,那么它必须是一个表示浮点数的字符串,否则将会抛出异常。
    • complex(x):将 x 转换为复数。如果 x 是一个字符串,那么它必须是一个表示复数的字符串,否则将会抛出异常。
    • bool(x):将 x 转换为布尔值。如果 x 是一个空对象、0、空字符串、空列表、空元组、空字典或者 False,那么将返回 False,否则将返回 True。
    • str(x):将 x 转换为字符串。如果 x 是一个对象,那么将会调用该对象的 str()方法,将其转换为字符串。
    • chr(x): 将一个整数转换为一个字符,虽然结果是一个字符,但其本质依然是一个字符串类型。
    # 将字符串转换为整数
    x = int("123")
    print(x)
    print(type(x))
    
    # 将字符串转换为浮点数
    y = float("3.14")
    print(y)
    print(type(y))
    
    # 将数字转换为字符串
    z = str(123)
    print(z)
    print(type(z))
    
    # 将数字转换为字符串
    b = bool(123)
    print(b)
    print(type(b))
    
    # 将数字转换为字符
    c = chr(65)
    print(c)
    print(type(c))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    需要注意的是,如果在强制类型转换时,传递的转换数据不合法导致无法转换,那么将会抛出异常。

    x = int("霍格沃兹")
    
    • 1

    执行后会提示:ValueError: invalid literal for int() with base 10: ‘霍格沃兹’。

  • 相关阅读:
    抖音商家找达人带货怎么给链接?抖音带货操作方法分享
    buuctf刷题9 (反序列化逃逸&shtml-SSI远程命令执行&idna与utf-8编码漏洞)
    【.net core】yisha框架单页面双列表联动效果示例
    手把手教你编写性能测试用例
    【MySQL】(五)DML表数据操作——数据的插入、修改、删除
    智能网联汽车 自动驾驶地图数据质量规范
    js逆向基础篇-某电商网站-xx街
    【基本算法题-2022.7.30】8. 费解的开关
    微信小程序 springboot农产品在线商城系统java 助农电商
    vscode快捷键英文单词对照表
  • 原文地址:https://blog.csdn.net/Ceshiren666/article/details/134510899