📜  如何在 Python 中转换变量? - Python (1)

📅  最后修改于: 2023-12-03 15:38:24.345000             🧑  作者: Mango

如何在 Python 中转换变量

Python 是一种动态弱类型语言,在开发中,经常需要将一个变量的类型转换为另一个类型。本文将介绍 Python 中转换变量类型的方法。

转为字符串(str)

变量类型为数字、布尔、列表、元组、字典等类型时,可以使用 str() 函数将其转换为字符串类型。

num = 1
str_num = str(num)
print(type(str_num), str_num) # <class 'str'> '1'

list_data = [1, 2, 3]
str_list_data = str(list_data)
print(type(str_list_data), str_list_data) # <class 'str'> '[1, 2, 3]'

dict_data = {"name": "John", "age": 26}
str_dict_data = str(dict_data)
print(type(str_dict_data), str_dict_data) # <class 'str'> "{'name': 'John', 'age': 26}"

当然,也可以使用字符串拼接的方式将不同类型转换成字符串类型。

num = 1
str_num = "num is " + str(num)
print(type(str_num), str_num) # <class 'str'> 'num is 1'
转为整型(int)

变量类型为字符串、浮点数等类型时,可以使用 int() 函数将其转换为整型类型。当字符串变量不能转换为整型时,会抛出 ValueError 异常。

num_str = "1"
int_num_str = int(num_str)
print(type(int_num_str), int_num_str) # <class 'int'> 1

float_num = 1.5
int_float_num = int(float_num)
print(type(int_float_num), int_float_num) # <class 'int'> 1

not_int_str = "abc"
try:
    not_int_int = int(not_int_str)
except ValueError as ve:
    print(f"Cann't convert {not_int_str} to int: {ve}")
# Cann't convert abc to int: invalid literal for int() with base 10: 'abc'
转为浮点型(float)

变量类型为整型、字符串等类型时,可以使用 float() 函数将其转换为浮点型类型。当字符串变量不能转换为浮点型时,会抛出 ValueError 异常。

int_num = 1
float_int_num = float(int_num)
print(type(float_int_num), float_int_num) # <class 'float'> 1.0

num_str = "1.5"
float_num_str = float(num_str)
print(type(float_num_str), float_num_str) # <class 'float'> 1.5

not_float_str = "abc"
try:
    not_float_num = float(not_float_str)
except ValueError as ve:
    print(f"Cann't convert {not_float_str} to float: {ve}")
# Cann't convert abc to float: could not convert string to float: 'abc'
转为布尔型(bool)

在 Python 中,有一些值被认为是 False,如 False、None、0 或空序列([]、()、“”),其它任何值都被认为是 True。因此,可以使用 bool() 函数将其它类型转换为布尔型。

str_data = "abc"
bool_str_data = bool(str_data)
print(type(bool_str_data), bool_str_data) # <class 'bool'> True

empty_list = []
bool_empty_list = bool(empty_list)
print(type(bool_empty_list), bool_empty_list) # <class 'bool'> False
转为列表(list)

变量类型为元组、字符串等类型时,可以使用 list() 函数将其转换为列表类型。

tuple_data = (1, 2, 3)
list_tuple_data = list(tuple_data)
print(type(list_tuple_data), list_tuple_data) # <class 'list'> [1, 2, 3]

str_data = "abc"
list_str_data = list(str_data)
print(type(list_str_data), list_str_data) # <class 'list'> ['a', 'b', 'c']
转为元组(tuple)

变量类型为列表、字符串等类型时,可以使用 tuple() 函数将其转换为元组类型。

list_data = [1, 2, 3]
tuple_list_data = tuple(list_data)
print(type(tuple_list_data), tuple_list_data) # <class 'tuple'> (1, 2, 3)

str_data = "abc"
tuple_str_data = tuple(str_data)
print(type(tuple_str_data), tuple_str_data) # <class 'tuple'> ('a', 'b', 'c')
转为集合(set)

变量类型为列表、元组、字符串等类型时,可以使用 set() 函数将其转换为集合类型。

list_data = [1, 2, 3]
set_list_data = set(list_data)
print(type(set_list_data), set_list_data) # <class 'set'> {1, 2, 3}

tuple_data = (1, 2, 2, 3)
set_tuple_data = set(tuple_data)
print(type(set_tuple_data), set_tuple_data) # <class 'set'> {1, 2, 3}

str_data = "abc"
set_str_data = set(str_data)
print(type(set_str_data), set_str_data) # <class 'set'> {'a', 'b', 'c'}
转为字典(dict)

变量类型为列表、元组等类型时,可以使用 zip() 函数将其转换为字典类型。

keys = ["name", "age", "gender"]
values = ["John", 26, "male"]
dict_data = dict(zip(keys, values))
print(type(dict_data), dict_data) # <class 'dict'> {'name': 'John', 'age': 26, 'gender': 'male'}
结论

本文介绍了 Python 中转换变量类型的方法,包括转为字符串(str)、整型(int)、浮点型(float)、布尔型(bool)、列表(list)、元组(tuple)、集合(set)、字典(dict)等。为了确保程序的稳定性,建议在类型转换时使用异常处理。