bool:True或的布尔值False。逻辑运算,如and,or,not可以针对布尔值进行。
x or y # 如果x为False,则y否则为x x and y # 如果x为False,则x否则为y not x # 如果x为True,则为False,否则为True
在Python2.x和Python 3.x中,布尔值也是int。该bool类型是一个子int类型,True并且False是其唯一的实例:
issubclass(bool, int) # 真正 isinstance(True, bool) # 真正 isinstance(False, bool) # 真正
如果布尔值用于算术运算,则将使用它们的整数值(1和0forTrue和False)返回整数结果:
True + False == 1 # 1 + 0 == 1 True * True == 1 # 1 * 1 == 1
int:整数
a = 2
b = 100
c = 123456789
d = 38563846326424324
Python中的整数具有任意大小。
注意:在旧版本的Python中,提供了一种long类型,该类型不同于int。两者已经统一。
float:浮点数;精度取决于实现和系统体系结构,对于CPython,float数据类型对应于C double。
a = 2.0
b = 100.e0
c = 123456789.e1
complex:复数
a = 2 + 1j
b = 100 + 10j
的<,<=,>和>=运营商将提高一个TypeError当任何操作数是复数例外。
str:一个unicode字符串。的类型'hello'
bytes:一个字节字符串。的类型b'hello'
str:一个字节字符串。的类型'hello'
bytes:的同义词 str
unicode:一个unicode字符串。的类型u'hello'
Python区分有序序列和无序集合(例如set和dict)。
字符串(str,bytes,unicode)是这样的序列
reversed:str具有reversed功能的倒序
a = reversed('hello')
tuple:n任何类型(n >= 0)的值的有序集合。
a = (1, 2, 3)
b = ('a', 1, 'python', (1, 2))
b[2] = 'something else' # 返回TypeError
支持索引;一成不变 如果所有成员都是可哈希的,则可哈希
list:n值的有序集合(n >= 0)
a = [1, 2, 3]
b = ['a', 1, 'python', (1, 2), [1, 2]]
b[2] = 'something else' # 允许的
不可散列;易变的。
set:唯一值的无序集合。项目必须是可哈希的。
a = {1, 2, 'a'}
dict:唯一键值对的无序集合;键必须是可哈希的。
a = {1: 'one',
2: 'two'}
b = {'a': [1, 2, 3],
'b': 'a string'}
如果对象的哈希值在其生命周期内从未改变(需要一个__hash__()方法),并且可以与其他对象(需要一个__eq__()方法)进行比较,则该对象是可哈希的。比较相等性的可哈希对象必须具有相同的哈希值。
结合内置数据类型,内置名称空间中有少量内置常量:
True:内置类型的真实值 bool
False:内置类型的假值 bool
None:用于表示信号不存在的单例对象。
Ellipsis或...:在任何地方的Python3 +核心中使用,在Python2.7 +中作为数组符号的一部分使用有限。numpy并且相关的软件包将其用作数组中的“包括所有内容”的引用。
NotImplemented:用于向Python表示特殊方法不支持特定参数的单例,Python会尝试其他替代方法(如果有)。
a = None #没有值将被分配。以后可以分配任何有效的数据类型
None没有任何自然顺序。使用排序比较操作符(<,<=,>=,>)不再被支持,将引发TypeError。
None始终小于任何数字(None < -32计算为True)。
在python中,我们可以使用内置函数来检查对象的数据类型type。
a = '123' print(type(a)) # Out: <class 'str'> b = 123 print(type(b)) # Out: <class 'int'>
在条件语句中,可以使用来测试数据类型isinstance。但是,通常不鼓励依赖变量的类型。
i = 7 if isinstance(i, int): i += 1 elif isinstance(i, str): i = int(i) i += 1
有关type()和之间的区别的信息,isinstance()请参见:Python中isinstance和类型之间的区别
测试是否属于NoneType:
x = None if x is None: print('Not a surprise, I just defined x as None.')
您可以执行显式数据类型转换。
例如,“ 123”是str类型,可以使用int函数将其转换为整数。
a = '123' b = int(a)
可以使用float函数从浮点字符串(例如“ 123.456”)进行转换。
a = '123.456' b = float(a) c = int(a) # ValueError:int()的无效文字,基数为10:“ 123.456” d = int(b) # 123
您还可以转换序列或集合类型
a = 'hello' list(a) # ['你好'] set(a) # {'o','e','l','h'} tuple(a) # ('你好')
在引号前面有一个字母标签,您可以知道要定义的字符串类型。
b'foo bar':bytes在Python 3中产生结果,str在Python 2中产生结果
u'foo bar':str在Python 3中产生结果,unicode在Python 2中产生结果
'foo bar':结果 str
r'foo bar':结果即所谓的原始字符串,其中无需转义特殊字符,输入时一切都按原样进行
normal = 'foo\nbar' # 富 # 酒吧 escaped = 'foo\\nbar' # 富\nbar raw = r'foo\nbar' # 富\nbar
如果可以更改对象,则称为可变对象。例如,当您将列表传递给某个函数时,可以更改列表:
def f(m): m.append(3) #在列表中添加一个数字。这是一个突变。 x = [1, 2] f(x) x == [1, 2] # 现在为假,因为已将一项添加到列表中
如果无法以任何方式更改对象,则称为不可变对象。例如,整数是不可变的,因为无法更改它们:
def bar(): x = (1, 2) g(x) x == (1, 2) # 永远为True,因为没有函数可以更改对象(1、2)
请注意,变量本身是可变的,因此我们可以重新分配变量 x,但这不会更改x先前指向的对象。它只是x指向一个新对象。
实例可变的数据类型称为可变数据类型,对于不可变的对象和数据类型也类似。
不可变数据类型的示例:
int,long,float,complex
str
bytes
tuple
frozenset
可变数据类型的示例:
bytearray
list
dict
标准数据类型 Python3 中有六个标准的数据类型: Number(数字) int bool float complex(复数) String(字符串) List(列表) Tuple(元组) Sets(集合) Dictionary(字典) (1) Number(数字) Python3 支持 int、float、bool、complex(复数)。 在Python 3里,只有一种整数类型 int,表
虽然 Python 是弱类型编程语言,不需要像 Java 或 C 语言那样还要在使用变量前声明变量的类型,但在一些特定场景中,仍然需要用到类型转换。 比如说,我们想通过使用 print() 函数输出信息“您的身高:”以及浮点类型 height 的值,如果在交互式解释器中执行如下代码: >>> height = 70.0 >>> print("您的身高"+height) Traceback (mos
前面已经洋洋洒洒地介绍了不少数据类型。不能再不顾一切地向前冲了,应当总结一下。这样让看官能够从总体上对这些数据类型有所了解,如果能够有一览众山小的感觉,就太好了。 下面的表格中列出了已经学习过的数据类型,也是python的核心数据类型之一部分,这些都被称之为内置对象。 对象,就是你面对的所有东西都是对象,看官要逐渐熟悉这个称呼。所有的数据类型,就是一种对象。英文单词是object,直接的汉语意思是
我创建了这样一个熊猫系列:
我正在尝试从数据帧中获取列数据类型 下面是一个示例代码: 上面的代码打印如下图所示:结构类型(列表(结构字段(id,长类型,真),结构字段(文本,字符串类型,真),结构字段(标签,双类型,真)))字段 [结构字段(id,长型,真),结构字段(文本,字符串类型,真),结构字段(标签,双类型,真)]名称 ['id', '文本', 标签'] 但是如何获取标签列的数据类型?非常感谢您的时间。 问候
问题内容: 所以我做了一些测试,结果很奇怪。 码: 为什么float16这么慢?为什么float32这么快?它通常比整数运算要快。 如果您有任何相关的性能提示,我将很高兴听到它们。 这是Windows 8 64bit上的python 2.6.6 32bit。Numpy 1.6的数字与Numpy 1.7相似。现在将测试MKL优化版本:http : //www.lfd.uci.edu/~gohlke/