当前位置:首页>python>从零开始学python-数据类型转换

从零开始学python-数据类型转换

  • 2026-10-21 13:26:39
从零开始学python-数据类型转换

Hi~新朋友,记得点上面蓝字(网虫root)关注哟~

前言:

   主要分享的是Python版本为Python3的内容。

在编程过程中,经常会遇到需要将一种数据类型转换为另一种数据类型的场景。Python作为一种动态类型语言,提供了丰富的数据类型转换机制,帮助我们更灵活地处理数据。

数据类型转换主要分为两种:隐式类型转换和显式类型转换。

一、隐式类型转换

隐式类型转换是Python自动完成的类型转换,不需要我们手动干预。当Python发现不同数据类型的变量进行运算时,会自动将较低精度的数据类型转换为较高精度的数据类型,以避免数据丢失。

📝精度从低到高:int → float → complex

示例:整数与浮点数相加

num_int = 123num_flo = 1.23num_new = num_int + num_floprint("num_int 数据类型为:", type(num_int))  # <class 'int'>print("num_flo 数据类型为:", type(num_flo))  # <class 'float'>print("num_new 值为:", num_new)              # 124.23print("num_new 数据类型为:", type(num_new))  # <class 'float'>

在这个示例中,整数num_int和浮点数num_flo相加,Python自动将整数转换为浮点数,结果也是浮点数。

二、显式类型转换

显式类型转换需要我们使用Python内置的类型转换函数,手动将数据转换为指定类型。以下是一些常用的转换函数:

1. int() 函数

将数据转换为整数类型。

x = int(1)        # x = 1y = int(2.8)      # y = 2(小数部分被截断)z = int("3")      # z = 3

💡注意:如果字符串包含非数字字符,转换会失败,抛出ValueError。

2. float() 函数

将数据转换为浮点数类型。

x = float(1)      # x = 1.0y = float(2.8)    # y = 2.8z = float("3")    # z = 3.0w = float("4.2")  # w = 4.2

3. str() 函数

将数据转换为字符串类型。

x = str("s1")     # x = 's1'y = str(2)        # y = '2'z = str(3.0)      # z = '3.0'

三、常用转换函数总结

以下是一些常用的Python内置转换函数:

四、实际应用示例

示例1:整数和字符串相加

num_int = 123num_str = "456"# 将字符串转换为整数num_str = int(num_str)# 现在可以进行加法运算num_sum = num_int + num_strprint("num_int 与 num_str 相加结果为:", num_sum)  # 579print("sum 数据类型为:", type(num_sum))          # <class 'int'>

示例2:将数字转换为字符串

num = 123num_str = str(num)print("数字转换为字符串:", num_str)  # '123'print("类型:", type(num_str))       # <class 'str'>

示例3:将字符串转换为浮点数

str_num = "3.14"float_num = float(str_num)print("字符串转换为浮点数:", float_num)  # 3.14print("类型:", type(float_num))          # <class 'float'>

⚠️ 注意事项

  1. float转int会截断小数:int(9.99)的结果是9,直接舍弃小数部分,而不是四舍五入。如需四舍五入,请使用round()函数。

2. 转换可能丢失信息:将浮点数3.14转为整数3,小数部分的信息就丢失了。

3. 为复杂字符串使用eval():eval()函数可以执行字符串里有效的Python表达式,但要极其谨慎地使用,尤其是在处理不可信的输入时,因为它会带来安全风险。

4. 当尝试对不兼容的数据类型进行操作时(如整数和字符串相加),Python会抛出类型错误,无法进行隐式转换:

num_int = 123num_str = "456"print(num_int + num_str)  # 会抛出 TypeError: unsupported operand type(s) for +: 'int' and 'str'

5. 转换并非总是可行:转换能否成功,取决于数据本身是否“包含”目标类型的信息。

    ✅ 可以成功:int("42"),float(7),str([1,2])。

    ❌ 会引发错误:int("hello")(字符串不是纯数字),float([1])(列表无法直接变数字)。

6. 处理用户输入:用户通过input()函数输入的任何内容,Python都会当作字符串处理。如果需要进行数学计算,必须进行转换。

user_input = input("请输入一个数字:") # 假设输入"5"number = int(user_input) # 转换为整数5result = number * 2print(f"{number}的两倍是{result}") # 输出:5的两倍是10

【微语】不管生活还要多久才会变好,你都要把自己变好。你变优秀了,其他的事情才会跟着好起来。

网虫root

期待你的

分享

点赞

在看

最新文章

随机文章