Skip to content

Python 数据类型转换

在编程过程中,我们经常需要在不同的数据类型之间进行转换。例如,从用户输入(总是字符串)中获取数字,或者将数字拼接到文本中。Python 提供了一系列内置函数来执行这些类型转换操作。

这种由程序员明确指定的类型转换称为显式类型转换

常用转换函数

转换为整数: int()

int() 函数可以从浮点数或数字字符串创建一个整数。

  • 从浮点数转换:会直接截断小数部分,而不是四舍五入。

    python
    x = int(3.14)
    print(x)  # 输出: 3
    
    y = int(-5.9)
    print(y) # 输出: -5
  • 从字符串转换:字符串必须只包含整数数字。

    python
    age_str = "25"
    age_int = int(age_str)
    print(age_int)  # 输出: 25
    
    # int("25.5")  # 会引发 ValueError,因为包含小数点
    # int("hello")   # 会引发 ValueError,因为包含非数字字符

转换为浮点数: float()

float() 函数可以从整数或数字字符串创建一个浮点数。

python
print(float(10))      # 输出: 10.0
print(float("123.45")) # 输出: 123.45
print(float("-5"))     # 输出: -5.0

# float("abc") # 会引发 ValueError

转换为字符串: str()

str() 函数可以将几乎任何其他数据类型的对象转换为其字符串表示形式。

python
num = 100
pi = 3.14
my_list = [1, 2, 3]

print(str(num))    # 输出: '100'
print(str(pi))     # 输出: '3.14'
print(str(my_list))# 输出: '[1, 2, 3]'

# 常见用途:拼接字符串和数字
message = "My age is " + str(25)
print(message) # 输出: My age is 25

转换为序列类型

转换为列表: list()

list() 函数可以将一个可迭代对象(如字符串、元组、集合)转换为列表。

python
my_str = "hello"
print(list(my_str))  # 输出: ['h', 'e', 'l', 'l', 'o']

my_tuple = (1, 2, 3)
print(list(my_tuple)) # 输出: [1, 2, 3]

my_set = {1, 2, 3}
print(list(my_set))   # 输出: [1, 2, 3] (顺序可能不同)

转换为元组: tuple()

tuple() 函数可以将一个可迭代对象转换为元组。

python
my_list = [1, 2, 3]
print(tuple(my_list)) # 输出: (1, 2, 3)

转换为集合: set()

set() 函数可以将一个可迭代对象转换为集合。注意,集合会自动去除重复的元素。

python
my_list = [1, 2, 2, 3, 3, 3]
print(set(my_list)) # 输出: {1, 2, 3}

隐式类型转换

除了显式转换,Python 也会在某些情况下自动进行隐式类型转换。这通常发生在不同数字类型的运算中,Python 会将较低精度的类型“提升”为较高精度的类型,以避免数据丢失。

python
int_val = 5
float_val = 2.5

result = int_val + float_val  # Python 自动将 int_val 转换为 float

print(result)       # 输出: 7.5
print(type(result)) # 输出: <class 'float'>

本站内容仅供学习和研究使用。