一. 简介
前面一篇文章简单学习了 python中一些常用的数据类型转换方法,文章如下:
python中常用到的数据类型转换-CSDN博客
本文介绍 python中内置的一些其他数据类型转换方法。
二. python中一些内置的数据类型转换方法
下面来介绍 Python中一些内置的数据类型转换方法。
以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换后的值。
函数 | 描述 |
int(x, base) | 将x转换为一个整数,其中,x为待转换的类型,base为进制数,默认为十进制 |
float(x) | 将 x 转换到一个浮点数 |
complex(real,imag) | 创建一个复数,其中,real -- int, long, float或字符串;imag -- int, long, float; |
str(x) | 将对象 x 转换为字符串 |
repr(x) | 将对象 x 转换为表达式字符串,返回一个对象的 string 格式。 |
eval(express, globals, locals) | eval() 函数用来执行一个字符串表达式,并返回表达式的值。字符串表达式可以包含变量、函数调用、运算符和其他 Python 语法元素。 eval() 函数将字符串 expression 解析为 Python 表达式,并在指定的命名空间中执行它。 |
tuple(x) | 将序列 s 转换为一个元组 |
list(x) | 将序列 s 转换为 一个列表 |
set(x) | 转化为可变集合 |
dict(x) | 创建一个字典。d 必须是一个 (key, value)元组序列。 |
frozenset(x) | 转换为不可变集合 |
chr(x) | 将一个整数转化为一个字符 |
ord(x) | 将一个字符转换为它的整数值 |
hex(x) | 将一个整数转换为一个十六进制字符串 |
oct(x) | 将一个整数转换为一个八进制字符串 |
三. 举例说明
1. complex(real, imag)方法
complex(real, imag)方法创建一个复数。其中参数:
real -- int, long, float或字符串;
imag -- int, long, float;
举例说明:
complex_data1 = complex(1) #输出 1j
complex_data2 = complex("1") #输出 1j
complex_data3 = complex(1, 2) #输出 (1+2j)# 注意:这个地方在"+"号两边不能有空格,也就是不能写成"1 + 2j",应该是"1+2j",否则会报错
complex_data4 = complex("1+3j") #输出 (1+3j)
2. repr(x) 方法
repr(x) 方法将对象 x 转换为表达式字符串,返回一个对象的 string 格式。
>>> s = 'python'
>>> repr(s)
"'python'"
>>> dict = {'name': 'amy', 'net': 'python.com'}
>>> repr(dict)
{'name': 'amy', 'net': 'python.com'}
3. eval(express, globals, locals)方法
eval() 函数将字符串转换为相应的对象,并返回表达式的结果。
字符串表达式可以包含变量、函数调用、运算符和其他 Python 语法元素。参数如下:
expression -- 表达式
globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
eval(express, globals, locals) 函数将字符串 expression 解析为 Python 表达式,并在指定的命名空间中执行它。下面来举例说明:
x = 2
z = eval("3 * x")
print(z) #输出 6
注意: eval() 函数执行的代码具有潜在的安全风险。如果使用不受信任的字符串作为表达式,则可能导致代码注入漏洞,因此,应谨慎使用 eval() 函数,并确保仅执行可信任的字符串表达式。
4. chr(x) 方法
chr(x) 方法将一个整数转换为一个字符。chr()方法用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符。
其中,x -- 可以是10进制也可以是16进制的形式的数字。返回值是当前整数对应的 ASCII 字符。
ch1 = chr(97) #十进制数
ch2 = chr(0x31) #十六进制数
print(ch1) #输出 a
print(ch2) #输出 1
其他方法在使用上其实都差不多。