龙听期货论坛's Archiver

龙听 发表于 2024-3-10 16:02

Python基础知识 -【Python数据类型转换】

Python数据类型转换

有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可,在下一章节 Python3 数据类型转换 会具体介绍。

以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。

[img]http://p.algo2.net/2024/0310/994c9ddede5f6.png[/img]

龙听 发表于 2024-3-10 16:04

Python int() 函数

描述

int() 函数用于将一个字符串或数字转换为整型。
语法

以下是 int() 方法的语法:

[code]class int(x, base=10)[/code]

参数

    x -- 字符串或数字。
    base -- 进制数,默认十进制。

返回值

返回整型数据。

实例

以下展示了使用 int() 方法的实例:[code]>>>int()               # 不传入参数时,得到结果0
0
>>> int(3)
3
>>> int(3.6)
3
>>> int('12',16)        # 如果是带参数base的话,12要以字符串的形式进行输入,12 为 16进制
18
>>> int('0xa',16)  
10  
>>> int('10',8)  
8[/code]

龙听 发表于 2024-3-10 16:05

Python str() 函数

描述

str() 函数将对象转化为适于人阅读的形式。

语法

以下是 str() 方法的语法:[code]class str(object='')[/code]参数

    object -- 对象。

返回值

返回一个对象的string格式。
实例

以下展示了使用 str() 方法的实例:[code]>>>s = 'RUNOOB'
>>> str(s)
'RUNOOB'
>>> dict = {'runoob': 'runoob.com', 'google': 'google.com'};
>>> str(dict)
"{'google': 'google.com', 'runoob': 'runoob.com'}"
>>>[/code]

龙听 发表于 2024-3-10 16:08

Python repr() 函数

描述

repr() 函数将对象转化为供解释器读取的形式。
语法

以下是 repr() 方法的语法:[code]repr(object)[/code]参数

    object -- 对象。

返回值

返回一个对象的 string 格式。
实例

以下展示了使用 repr() 方法的实例:[code]>>> s = 'RUNOOB'
>>> repr(s)
"'RUNOOB'"
>>> dict = {'runoob': 'runoob.com', 'google': 'google.com'};
>>> repr(dict)
"{'google': 'google.com', 'runoob': 'runoob.com'}"
>>>
[/code]

龙听 发表于 2024-3-10 16:09

Python3 tuple 函数

描述

tuple 函数将可迭代系列(如列表)转换为元组。

语法

以下是 tuple 的语法:[code]tuple( iterable )
[/code]参数

    iterable -- 要转换为元组的可迭代序列。

返回值

返回元组。
实例

以下展示了使用 tuple 的实例:[code]>>>list1= ['Google', 'Taobao', 'Runoob', 'Baidu']
>>> tuple1=tuple(list1)
>>> tuple1
('Google', 'Taobao', 'Runoob', 'Baidu')[/code]

龙听 发表于 2024-3-10 16:11

Python3 List list()方法

描述

list() 方法用于将元组或字符串转换为列表。

注:元组与列表是非常类似的,区别在于元组的元素值不能修改,元组是放在括号中,列表是放于方括号中。
语法

list()方法语法:[code]list( seq )[/code]参数

    seq -- 要转换为列表的元组或字符串。

返回值

返回列表。
实例

以下实例展示了 list()函数的使用方法:[code]#!/usr/bin/python3

aTuple = (123, 'Google', 'Runoob', 'Taobao')
list1 = list(aTuple)
print ("列表元素 : ", list1)

str="Hello World"
list2=list(str)
print ("列表元素 : ", list2)[/code]以上实例输出结果如下:[code]列表元素 :  [123, 'Google', 'Runoob', 'Taobao']
列表元素 :  ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd'][/code]

龙听 发表于 2024-3-10 16:14

Python set() 函数

描述

set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。
语法

set 语法:[code]class set([iterable])[/code]参数说明:

    iterable -- 可迭代对象对象;

返回值

返回新的集合对象。
实例

以下实例展示了 set 的使用方法:[code]>>>x = set('runoob')
>>> y = set('google')
>>> x, y
(set(['b', 'r', 'u', 'o', 'n']), set(['e', 'o', 'g', 'l']))   # 重复的被删除
>>> x & y         # 交集
set(['o'])
>>> x | y         # 并集
set(['b', 'e', 'g', 'l', 'o', 'n', 'r', 'u'])
>>> x - y         # 差集
set(['r', 'b', 'u', 'n'])
>>>[/code]

龙听 发表于 2024-3-10 16:20

Python dict() 函数

描述

dict() 函数用于创建一个字典。
语法

dict 语法:[code]class dict(**kwarg)
class dict(mapping, **kwarg)
class dict(iterable, **kwarg)[/code]参数说明:

    **kwargs -- 关键字。
    mapping -- 元素的容器,映射类型(Mapping Types)是一种关联式的容器类型,它存储了对象与对象之间的映射关系。
    iterable -- 可迭代对象。

返回值

返回一个字典。
实例

以下实例展示了 dict 的使用方法:[code]>>>dict()                        # 创建空字典
{}
>>> dict(a='a', b='b', t='t')     # 传入关键字
{'a': 'a', 'b': 'b', 't': 't'}
>>> dict(zip(['one', 'two', 'three'], [1, 2, 3]))   # 映射函数方式来构造字典
{'three': 3, 'two': 2, 'one': 1}
>>> dict([('one', 1), ('two', 2), ('three', 3)])    # 可迭代对象方式来构造字典
{'three': 3, 'two': 2, 'one': 1}
>>>[/code]只使用关键字参数创建字典

实例[code]numbers = dict(x=5, y=0)
print('numbers =', numbers)
print(type(numbers))

empty = dict()
print('empty =', empty)
print(type(empty))[/code]以上实例输出结果为:[code]numbers = {'y': 0, 'x': 5}
<class 'dict'>
empty = {}
<class 'dict'>[/code]使用可迭代对象创建字典

实例[code]# 没有设置关键字参数
numbers1 = dict([('x', 5), ('y', -5)])
print('numbers1 =',numbers1)

# 设置关键字参数
numbers2 = dict([('x', 5), ('y', -5)], z=8)
print('numbers2 =',numbers2)

# zip() 创建可迭代对象
numbers3 = dict(dict(zip(['x', 'y', 'z'], [1, 2, 3])))
print('numbers3 =',numbers3)[/code]以上实例输出结果为:[code]numbers1 = {'y': -5, 'x': 5}
numbers2 = {'z': 8, 'y': -5, 'x': 5}
numbers3 = {'z': 3, 'y': 2, 'x': 1}[/code]使用映射来创建字典

映射类型(Mapping Types)是一种关联式的容器类型,它存储了对象与对象之间的映射关系。

实例[code]numbers1 = dict({'x': 4, 'y': 5})
print('numbers1 =',numbers1)

# 以下代码不需要使用 dict()
numbers2 = {'x': 4, 'y': 5}
print('numbers2 =',numbers2)

# 关键字参数会被传递
numbers3 = dict({'x': 4, 'y': 5}, z=8)
print('numbers3 =',numbers3)[/code]以上实例输出结果为:[code]numbers1 = {'x': 4, 'y': 5}
numbers2 = {'x': 4, 'y': 5}
numbers3 = {'x': 4, 'z': 8, 'y': 5}[/code]

龙听 发表于 2024-3-10 16:27

Python chr() 函数

描述

chr() 用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符。
语法

以下是 chr() 方法的语法:[code]chr(i)[/code]参数

    i -- 可以是10进制也可以是16进制的形式的数字。

返回值

返回值是当前整数对应的 ASCII 字符。
实例

以下展示了使用 chr() 方法的实例:[code]>>>print chr(0x30), chr(0x31), chr(0x61)   # 十六进制
0 1 a
>>> print chr(48), chr(49), chr(97)         # 十进制
0 1 a[/code]

龙听 发表于 2024-3-10 16:32

Python3 数据类型转换

有时候,我们需要对数据内置的类型进行转换,数据类型的转换,一般情况下你只需要将数据类型作为函数名即可。

Python 数据类型转换可以分为两种:

    隐式类型转换 - 自动完成
    显式类型转换 - 需要使用类型函数来转换

隐式类型转换

在隐式类型转换中,Python 会自动将一种数据类型转换为另一种数据类型,不需要我们去干预。

以下实例中,我们对两种不同类型的数据进行运算,较低数据类型(整数)就会转换为较高数据类型(浮点数)以避免数据丢失。

实例[code]num_int = 123
num_flo = 1.23

num_new = num_int + num_flo

print("num_int 数据类型为:",type(num_int))
print("num_flo 数据类型为:",type(num_flo))

print("num_new 值为:",num_new)
print("num_new 数据类型为:",type(num_new))[/code]以上实例输出结果为:[code]num_int 数据类型为: <class 'int'>
num_flo 数据类型为: <class 'float'>
num_new: 值为: 124.23
num_new 数据类型为: <class 'float'>[/code]代码解析:

    实例中我们对两个不同数据类型的变量 num_int 和 num_flo 进行相加运算,并存储在变量 num_new 中。
    然后查看三个变量的数据类型。
    在输出结果中,我们看到 num_int 是 整型(integer) , num_flo 是 浮点型(float)。
    同样,新的变量 num_new 是 浮点型(float),这是因为 Python 会将较小的数据类型转换为较大的数据类型,以避免数据丢失。

我们再看一个实例,整型数据与字符串类型的数据进行相加:

实例[code]num_int = 123
num_str = "456"

print("num_int 数据类型为:",type(num_int))
print("num_str 数据类型为:",type(num_str))

print(num_int+num_str)[/code]以上实例输出结果为:[code]num_int 数据类型为: <class 'int'>
num_str 数据类型为: <class 'str'>
Traceback (most recent call last):
  File "/runoob-test/test.py", line 7, in <module>
    print(num_int+num_str)
TypeError: unsupported operand type(s) for +: 'int' and 'str'[/code]从输出中可以看出,整型和字符串类型运算结果会报错,输出 TypeError。 Python 在这种情况下无法使用隐式转换。

但是,Python 为这些类型的情况提供了一种解决方案,称为显式转换。
显式类型转换

在显式类型转换中,用户将对象的数据类型转换为所需的数据类型。 我们使用 int()、float()、str() 等预定义函数来执行显式类型转换。

int() 强制转换为整型:

实例[code]x = int(1)   # x 输出结果为 1
y = int(2.8) # y 输出结果为 2
z = int("3") # z 输出结果为 3[/code]float() 强制转换为浮点型:

实例[code]x = float(1)     # x 输出结果为 1.0
y = float(2.8)   # y 输出结果为 2.8
z = float("3")   # z 输出结果为 3.0
w = float("4.2") # w 输出结果为 4.2[/code]str() 强制转换为字符串类型:

实例[code]x = str("s1") # x 输出结果为 's1'
y = str(2)    # y 输出结果为 '2'
z = str(3.0)  # z 输出结果为 '3.0'[/code]整型和字符串类型进行运算,就可以用强制类型转换来完成:

实例[code]num_int = 123
num_str = "456"

print("num_int 数据类型为:",type(num_int))
print("类型转换前,num_str 数据类型为:",type(num_str))

num_str = int(num_str)    # 强制转换为整型
print("类型转换后,num_str 数据类型为:",type(num_str))

num_sum = num_int + num_str

print("num_int 与 num_str 相加结果为:",num_sum)
print("sum 数据类型为:",type(num_sum))[/code]以上实例输出结果为:[code]num_int 数据类型为: <class 'int'>
类型转换前,num_str 数据类型为: <class 'str'>
类型转换后,num_str 数据类型为: <class 'int'>
num_int 与 num_str 相加结果为: 579
sum 数据类型为: <class 'int'>[/code]

页: [1]