Python数据类型判断,数据类型转换

2016-08-06

无论编写的程序是用于数据处理还是科学计算,在程序中使用合适类型的数据都十分重要。这包括两件事:第一,查询使用的数据是否为想要的类型;第二,如果查询不是合适的类型如何将之转换为需要的数据类型。

1. Python数据类型判断

判断变量是什么类型,常用的有type()isinstance()两种方法。

  • type()是最基本,最常用的方法,可以用来查询Python的基本数据类型。实例代码如下:
    >>> a = 1.0
    >>> b = 'hello'
    >>> type(a)
    <class 'float'>
    >>> type(b)
    <class 'str'>
    
  • isinstance()方法也非常方便,而且应用范围更广。在面向对象编程中,type()对subclass的查询结果与isinstance()不同。所以这时候应该用isinstance()。 实例代码如下:
    class A:
        pass
    class B(A):
        pass
    isinstance(A(), A)  # returns True
    type(A()) == A      # returns True
    isinstance(B(), A)    # returns True
    type(B()) == A        # returns False
    

2. Python数据类型转换

常见的数据类型转换可以通过与类型名字相同的函数完成,函数返回的就是目标类型的数据。常见的转换方法总结如下表。

函数 描述

int(x [,base])

x转换为一个整数

long(x [,base] )

x转换为一个长整数(Python2x)

float(x)

将x转换到一个浮点数

complex(real [,imag])

得到一个复数

str(x)

对象 x 转换为字符串

repr(x)

对象 x 转换为表达式字符串

eval(str)

计算字符串中的有效Python表达式,并返回一个对象

tuple(s)

将序列 s 转换为一个元组

list(s)

将序列 s 转换为一个列表

set(s)

转换为可变集合

dict(d)

创建一个字典。d 必须是一个序列 (key,value)元组。

frozenset(s)

转换为不可变集合

chr(x)

将一个整数转换为一个字符

unichr(x)

将一个整数转换为Unicode字符

ord(x)

将一个字符转换为它的整数值

hex(x)

将一个整数转换为一个十六进制字符串

oct(x)

将一个整数转换为一个八进制字符串

细节备忘

  • 不能把数字无关的类型转成整数,空字符串也不行,会返回异常。
    >>> int("100 people")
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: invalid literal for int() with base 10: '100 people'
    >>> int('')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: invalid literal for int() with base 10: ''
    


思想果(www.sixiangguo.net)原创,作者:无梨教主。转载注明作者 和 本文链接: http://www.sixiangguo.net/archives/413.html

发表评论