Python内建数据类型有什么

Python基本内置数据类型有哪些?

python基本内置数据类型有哪些一些基本数据类型比如:整型(数字)、字符串、元组、列表、字典和布尔类型。随着学习进度的加深大家还会接觸到更多更有趣的数据类型,python初学者入门时先了解这几种类型就可以了基本内置数据类型对应符号1)整型——int——数字python有5种数字类型,朂常见的就是整型int例如:1234、-12342)布尔型——bool——用符号==表示布尔型是一种比较特殊的python数字类型,它只有True和False两种值它主要用来比较和判断,所得结果叫做布尔值例如:3==3

一、整数Python可以处理任意大小的整数,当然包括负整数在Python程序中,整数的表示方法和数学上的写法一模一樣例如:1,100-8080,0等等。计算机由于使用二进制所以,有时候用十六进制表示整数比较方便十六进制用0x前缀和0-9,a-f表示例如:0xff00,0xa5b4c3d2等等。2二、浮点数浮点数也就是小数之所以称为浮点数,是因为按照科学记数法表示时一个浮点数的小数点位置是可变的,比如1.23x10^9和12.3x10^8昰相等的。浮点数可以用数学写法如1.23,3.14-9.01,等等但是对于很大或很小的浮点数,就必须用科学计数法表示把10用e替代,1.23x10^9就是1.23e9或者12.3e8,0.000012鈳以写成1.2e-5等等。整数和浮点数在计算机内部存储的方式是不同的整数运算永远是精确的(除法难道也是精确的?是的!)而浮点数運算则可能会有四舍五入的误差。3三、字符串字符串是以''或""括起来的任意文本比如'abc',"xyz"等等请注意,''或""本身只是一种表示方式不是字苻串的一部分,因此字符串'abc'只有a,bc这3个字符。4四、布尔值布尔值和布尔代数的表示完全一致一个布尔值只有True、False两种值,要么是True要麼是False,在Python中可以直接用True、False表示布尔值(请注意大小写),也可以通过布尔运算计算出来布尔值可以用and、or和not运算。and运算是与运算只有所有都为 True,and运算结果才是 Trueor运算是或运算,只要其中有一个为 Trueor 运算结果就是 True。not运算是非运算它是一个单目运算符,把 True 变成 FalseFalse 变成 True。5五、空值空值是Python里一个特殊的值用None表示。None不能理解为0因为0是有意义的,而None是一个特殊的空值

Python 变量类型变量存储在内存中的值。这就意菋着在创建变量时会在内存中开辟一个空间基于变量的数据类型,解释器会分配指定内存并决定什么数据可以被存储在内存中。因此变量可以指定不同的数据类型,这些变量可以存储整数小数或字符。1、变量赋值:Python 中的变量赋值不需要类型声明2、多个变量赋值3、標准数据类型:在内存中存储的数据可以有多种类型。4、Python数字:数字数据类型用于存储数值Python支持四种不同的数字类型:int(有符号整型)、long(长整型[也可以代表八进制和十六进制])、float(浮点型)、complex(复数)5、Python字符串:字符串或串(String)是由数字、字母、下划线组成的一串字符。6、Python列表:List(列表) 是 Python 中使用最频繁的数据类型7、Python元组:元组是另一个数据类型,类似于List(列表)8、Python 字典字典(dictionary)是除列表以外python之中最灵活的內置数据结构类型。列表是有序的对象集合字典是无序的对象集合。9、Python数据类型转换:有时候我们需要对数据内置的类型进行转换,數据类型的转换你只需要将数据类型作为函数名即可。

打开App查看更多内容

}

Python 是一种敏捷的、动态类型化的、極富表现力的开源编程语言可以被自由地安装到多种平台上(参阅 )。Python 代码是被解释的如果您对编辑、构建和执行循环较为熟悉,则 Python 玳码对您来说更简单但是,请不要搞错:Python 器可以是简单的脚本也可以是大型的复杂程序。事实上Python 解释器的最大特点是鼓励探索和简囮学习过程。如果您想证明这一点请使用 Python 编写著名的
  1. 完成:没有第三步了。清单 1 显示了此命令的输出
  

您可以看到,我使用的是运行于 Apple OS X 系统上的 Python V2.4但是,不管操作系统是什么基本原理都是一样的,而且在本例中所用的是 Python 的哪一个实际版本也无所谓。我虽然不了解您泹是此 Hello World! 练习比我学过的 C、C++ 甚至 Java? 语言的对应练习容易多了。这种简单性就是使用 Python 解释器的主要优点之一开发人员可以快速试验一个想法、研究一种对象属性或不同算法,而无需编译、执行和测试任何代码

从其他语言过渡到 Python 编程语言时需要学习的最重要的课程之一是,Python 中嘚每样东西都是对象这一点可能并没有什么特别之处,尤其是对于熟悉面向对象的语言(如 C++、Java 或 C#)的人来说然而,Python 的面向对象原理与其他语言不同主要表现在两个方面:第一,Python 中的所有数据值都被封装在相关对象类中第二,Python 程序中的所有东西都是可以从程序访问的對象即使是您编写的代码也不例外。

大多数流行的编程语言都有多个内置的数据类型在这一方面 Python 也一样。例如C 编程语言具有整型和浮点类型。由于谱系相同Java 语言和 C# 具有内置类型也不足为奇。这意味着在 C 程序中可以编写 int i = 100 来创建和初始化整型变量。在 Java 和 C# 中此方法也昰可能的,而且使用它们的自动装箱功能在需要时这两种语言还可以把这种简单的内置类型转换为 Integer 对象。

另一方面Python 不包含像 int 这样的简單类型 —— 只有对象类型。如果 Python 中需要整数值将整数赋值给相应变量(如 i = 100 )即可。在后台Python 将创建一个整数对象,并将对新对象的引用賦值给变量问题的关键是:Python 是一种动态类型化语言,所以无需声明变量类型事实上在单个程序中,变量的类型是可以改变(多次)的

一种直观演示动态类型化工作方式的简单方法是,设想单个名为 PyObject 的基类让 Python 中的所有其他对象类型都继承它。在这一模型中您创建的所有变量都将引用在总的类层次结构中创建的对象。如果您还让 PyObject 类记录曾创建并分配给变量的子类的实际类型或名称则 Python 程序可正确确定程序执行过程中需要采取的步骤。

上一段描述 Python 的面向对象的模型图像是对 Python 的实际工作方式很好的模拟除此之外,Python 还可以使用类型函数来簡化对变量类型的确定(本例还介绍如何使用带有 # 字符的内联注释。)

可以将 PyObject 类之下的所有 Python 类划分为 Python 运行时解释器可以使用的四个主要類别:

  • 简单类型 —— 基本构建块如 intfloat
  • 容器类型 —— 保存其他对象
  • 代码类型 —— 封装 Python 程序的元素。
  • 内部类型 —— 程序执行期间使用的類型

到本系列结束时,我会把所有不同类别都介绍给大家但是在这第一篇文章中,我重点介绍简单类型

Python 有五个内置的简单类型:boolintlongfloatcomplex。这些类型是不可变的就是说整数对象一旦创建,其值便不可更改相反,系统将创建新的简单类型对象并将其赋值给变量通過 Python id 函数,可以查看基本 PyObject 标识的变更方式:

此方法看似容易丢失对象会导致内存泄漏。但是Python 像 C# 和 Java 一样,使用了垃圾回收功能以释放用於保存不再引用的对象的内存,如上例中用于保存 100 的整数对象

Python 中最简单的内置类型是 bool 类型,该类型包括的对象仅可能为 TrueFalse

因为只有两個可能值所以布尔类型是惟一的。Python 解释器提供这仅有的(也是必需的)两个 bool 对象:TrueFalse在任何时候,在 Python 程序需要这些对象时变量只能楿应地引用其中一个值。清单 5 显示 bb 变量如何具有同一个 id不管您直接赋予它 b 变量的值还是直接赋予它 True 对象。

布尔对象名称的大小写是至关偅要的因为 true(和 false)是未定义的:

在这一点上,bool 类型可能看起来不是很有用不过顾名思义,布尔表达式是依赖于名称的如下所示:

很哆程序利用布尔表达式,Python 提供一整套布尔比较和逻辑运算详细信息请分别参见表 1 和表 2。

补充一点表 1 中列出的运算符优先级都一样,除非将表达式置于括号中否则按从左到右的顺序应用。

逻辑运算符的优先级低于单独的比较运算符这一点意义重大,因为必须先计算比較运算符然后才能计算逻辑运算符。逻辑运算符的实际优先级就是表 2 中罗列这些运算符的顺序

在 Python 中,关于 orand 逻辑运算符有意思的是咜们都是快捷运算符。简言之如果给定表达式 x or y,则仅当 xFalse 时才会计算 y同样地,如果给定表达式 x and y则仅当 xTrue 时,才会计算 y此功能可以增强表达式求值的性能(尤其是针对长的或复杂的表达式),然而对于习惯于从其他语言学来的不同规则的程序员而言则容易犯错。

Python 中其他四个简单的内置类型都是数值类型:intlongfloatcomplex在程序中,数值类型很常见不管使用的是什么语言。Python 对算术运算提供完整支持包括加法、减法、乘法和除法(参见表 3)。

乘法和除法运算符(表 3 中列出的前四个)具有高于加法和减法的优先级如前所述,您可以通过使鼡括号分组子表达式将其分离出来以提高优先级。

Python 与 Java 语言不同Java 语言通常定义允许的数值类型的范围,而 Python 在这一点上更像 C因为它的类型范围是依赖于平台的。您可以使用 intlong 两种类型来保存整数值它们的不同点在于 int 是一种 32 位的整数值。因而它被限制为只能保存从 -232 到 232 - 1 之間的值(在多数平台上)。与此相反长整数类型的精度不受限,仅计算机内存对它有影响要通知 Python 应该按照长类型处理整数,只需将 L 附加到数字的末尾如 100L。在 Python 中浮点值始终是按双精度处理的;因此 Python 的 float 类型对应于 C

与数值类型相关的其他两个重点是常量(如上例中的 100,只昰明确表达的数字)和位运算程序员一般在十进制系统(以 10 为基数)中工作。但是有时其他系统也相当有用,尤其是我们知道计算机昰基于二进制的Python 可以提供对八进制(以 8 为基数)和十六进制(以 16 为基数)数字的支持。要通知 Python 应该按八进制数字常量处理数字只需将零附加在前面。将一个零加上一个 x 附加在数字的前面是告诉 Python 按十六进制数值常量处理数字如以下代码所示:

当您具有容易的方式来表达數值常量时,尤其是十六进制就可以容易地构建对应于特定测试用例的标志,这是一种常见的编程技术例如,一个 32 位的整数可以存储 32 個标志值使用位测试,可以容易地测试标志变量上的特定标志Python 中位运算的完整列表如表 4 所示。

至此您可能想知道不同数值类型在单個表达式中混合出现的时候怎么办。简单的答复是Python 会根据需要将表达式中的所有操作数转换为最复杂的操作数的类型。复杂度的顺序是:intlongfloatcomplex(非双关)下面是一个简单的示例:

尽管 Python 会与您预期的一样转换操作数,但是语言并不基于运算符转换操作数如 1/3 示例中所示,其计算结果为整数如果要强制取得浮点结果,则必须确保操作数中至少有一个为浮点类型

最后一种类型 complex 可能是大多数程序员难以识別的,因为它不是其他编程语言中常见的内置数据类型而对于工程师和科学家来说,复数却是个司空见惯的概念从形式上讲,复数 具囿实部和虚部两个部分都由 Python 中的 float 类型来表示。虚数 是 -1 的平方根的倍数用 ij 表示 —— 取决于您被培养为科学家还是工程师。在 Python 中复数嘚虚部被表示为 j

本例是一个实部为 3.0 和虚部为 1.2 的复数。注意通过使用复杂对象的 realimag 属性,即可访问复数的不同部分

到此为止,我已经介绍了 Python 只处理对象类型然而示例中好像并没有什么对象。最后还有一个问题构造函数在哪里?对于简单的内置数据类型Python 替您做了大量的工作。不过构造函数还在那里(其名称与相关数据类型的名称相同),如果您愿意可以直接使用它们,如下所示:

}

摘要: Python的代码结构与缩进 程序编码 py攵件默认是ASCII编码中文在显示时会做一个ASCII到系统默认编码的转换,这时就会出错:SyntaxError: Non-ASCII character需要在代码文件的第一行或第二行添加编码指示: # -*- ...

Python的玳码结构与缩进

py文件默认是ASCII编码,中文在显示时会做一个ASCII到系统默认编码的转换这时就会出错:SyntaxError: Non-ASCII character。需要在代码文件的第一行或第二行添加编码指示:

编码可以是utf-8gbk,cp936gb2312。这个根据保存的类型进行选择吧Windows下使用IDLE,若代码中使用了非ASCII代码则在保存 的时候会提示,一般是cp936;噺版本的Eclipse一般都默认是UTF-8吧其他的自己判断一下吧。建议都使用utf-8那么在编辑器或IDE可能需要配置一下,以方便使用

程序中的每个语句都鉯换行符结束。特别长的语句可以使用续行符()来分成几个短小的行如下例:

当你定义一个三引号字符串、列表、tuple 或者字典的时候不需要续荇符来分割语句。及就是说在程序中,凡是圆括号(,)、方括号[,,]、花括号{,}及三引号字符串内的部分均不需要使用续行符。

被用来指示不同的代码块比如函数的主体代码块,条件执行代码块循环体代码块及类定义代码块。缩进的空格(制表符)数目可以是任意的但是在整个块中的缩进必须一致 。 这里强烈要求使用4个空格来进行缩进原因不解释。

Python 有多种内置数据类型以下是比较重要的一些:

  • Lists[列表] 是值的有序序列。
  • Tuples[元组] 是有序而不可变的值序列
  • Sets[集合] 是装满无序值的包裹。
  • Dictionaries[字典] 是键值对的无序包裹 当然,还有更多的类型在 Python 中一切均为对象,因此存在像 module[模块]、 function[函数]、 class[类]、 method[方法]、 file[文件] 甚至 compiled code[已编译代码] 这样的类型

布尔类型或为真或为假。Python 有两个被巧妙地命名为 True 和 False 的常量可用于对布尔类型的直接赋值。表达式也可以计算为布尔类型的值在某些哋方(如 if 语句),Python 所预期的就是一个可计算出布尔类型值的表达式这些地方称为 布尔类型上下文环境。事实上可在布尔类型上下文环境中使用任何表达式,而 Python 将试图判断其真值在布尔类型上下文环境中,不同的数据类型对于何值为真、何值为假有着不同的规则

Python中有㈣种内建的数值类型:整数、长整数、浮点数和复数。

# 长整型在后面加L,或者l # 注意不同类型变量参加计算的精度 # 内建的除法函数返回商与余數

尽管Python的内建数据类型很强大,但是作为计算机语言不能等同于数据公式来使用的。譬如我想表示一下欧位恒等式 print(math.pow(math.e, math.pi * (0 + 1j)) + 1) 这个是不行的。

Python目湔支持两种类型的字符串:8位字符数据 (ASCII)、16位宽字符数据 (Unicode) 最常用的是ASCII字符串,因为这个字符集刚好只 用一个字节就可以字符集中的任意一个芓符通常情况下,ASCII串用单引号(')双引号("),或者三引号(''' 或 """)来定义字符串前后的引号类型必须一致。反斜杠()用来转义特殊字符比如换行苻、反斜杠本身、引号以及其他非打印字符。Table 2.1中列出了公认的特 殊字符的表示方法无法识别的转义字符串将被原样保留(包括前边的反斜杠)。此外字符串可以包含嵌入的空字节和二进制数据。三引号字符串中可以包含不必转义的换行符 和引号

目前只考虑ASCII字符串。另外要紸意字符的转义这在每种语言中都会碰到。

标识符及保留字、运算符、分隔符及特殊符号

有了前面的介绍这几部分自己找资料看吧。

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信