Python数据分析——基础

Python数据分析——基础

数据类型

  • Python中的对象引用不包含附属类型。
a = 5
type(a) 
# int

a = 'foo'
type(a) 
# str
  • Python是强类型语言,每个对象都有明确的类型(或类)。类型转换只会发生在特定的情况下。
'5'+ 5
# 会出现错误,字符类型不能和数值类型相加。

a = 4
b = 2.5
print('a is {0}, b is {1}'.format(type(a), type(b)))
# a is <class 'int'>, b is <class 'float'>
  • isinstance()函数检查对象是否是某个类型的实例。
a = 1; b = 1.2
isinstance(a, int)
#True
isinstance(b, float)
#True
isinstance(a, bool)
#False

属性和方法

Python的对象通常都有属性(其他存储在对象内部的Python对象)和方法(对象的附属函数可以访问对象的内部数据)。

  • obj.attribute_name访问属性和方法
a = 'str'
dir(a)
# 查看a对象的属性和方法
  • getattr()通过名字访问属性和方法。
getattr(a, 'format')
# <function str.format>

访问对象的名字通常称作反射

鸭子类型

不关心对象的类型,只关心对象是否有过某些方法或用途。通常被称为鸭子类型

走起路来像鸭子,叫起来像鸭子,那么它就是鸭子。

检验对象是否是列表(或是numpy数组),如果不是的话,将其转变成列表

def isiterable(obj):
  try:
    iter(obj)
    return True
  except TypeError:
    return False
if not isinstance(x, list) and isiterable(x):
  x = list(x)

运算符

  • 判断两个引用是否指向同一个对象,可以使用is 方法,is not可以判断两个对象是不同的。
  • isis not可以判断一个变量是否为None
a = [1,2,3]
b = a  
c = list(a) # 新创建一个list

a is b
# True
a is not c
# True
a == c
# True

d = None
d is None
# True

可变与不可变对象

  • Python中列表、字典、numpy数组和用户定义的类型(类),都是可变的。这些对象或包含的值是可以被修改的。
  • Python中的字符串和元组是不可以变的。

猜你喜欢

转载自www.cnblogs.com/mephisto03/p/12293220.html