python的数据类型有哪些,python中有哪些数据类型
python的数据类型有哪些,python中有哪些数据类型详细介绍
本文目录一览: Python数据类型有哪些?Python基本数据类型介绍
Python是一门开源免费、通用型的脚本编程语言,它上手简单,功能强大,它也是互联网最热门的编程语言之一。不管是传统的Web开发、PC软件开发、Linux运维,还是大数据分析、机器学习、人工智能,Python都能胜任。对于准备自学或者想要提升Python的小伙伴来说,可能找到一套合适的课程学习往往能够事半功倍!为大家提供到了四套潮享教育金牌讲师李老师的Python入门到精通视频课程,感兴趣就可以点击了解~
Python基本数据类型介绍:
1.整数
整数是表述整数的数值,没有小数部分。在Python中,整数包括正整数、负整数和0,在Python中数值超过计算机自身的计算功能时会自动转用高精度计算。整数类型包括二进制、八进制、十进制和十六进制。
1)二进制
二进制整数比较简单,由计算机世界最重要的‘0’和‘1’组成,它的进位规则‘逢二进一’,即101+001=110
二进制转十进制的方式为每一位乘以基数的角标次方的和,我们举例来说明一下。
拿数字101011来说:
2)八进制
八进制数包含0-7,规则为‘逢八进一’,以0o开头。在Python3.x中八进制数必须以0o开头,例如0o234,0o169等。
3)十进制
十进制的应用比较广泛,大家在日常生活中大多使用的都是十进制数,例如:123,456,123456789等。
4)十六进制
十六进制进制数包含0-9和A-F,规则为‘逢十六进一’,以0x或者0X开头,例如0x36,0x169等。
2.浮点型
浮点数大家在生活中也比较常见,例如1.5,26.37这种由整数和小数两部分组成。浮点数还可以通过科学计数法表示。例如3.6e5,9.26e-2等,浮点数的数据类型为float。
3.复数(特殊的浮点型)
Python中的复数等同于我们在数学中学习到的复数,由实部和虚部构成。且由j或J构成虚部。
我们来表示一个复数,66.6+8.88j,那么66.6表示的是实部,8.88则是虚部。
本章的内容主要讲解了整数的类型,下面通过一个实例来介绍一下整数、浮点数。
代码如下(大家可以自己运行一遍)。
输出结果如下:
以上就是关于“Python数据类型有哪些?Python基本数据类型介绍”的全部内容分享了,希望小兔的精彩解答对你的Python编程学习有一定的帮助!Python计算机语言看起来很专业很难学,但是只要掌握原理逻辑,就能够逐步掌握攻破!想自学Python的小伙伴,小手点击此链接:
python中有哪些数据类型
在Python程序中,每个数据都是对像,每个对像都有自己的一个类型。不同类型有不同的操作方法,使用内置数据类型独有的操作方法,可以更快的完成很多工作。python中一些基本数据类型,比如:整型(数字)、字符串、元组、列表、字典和布尔类型。随着学习进度的加深,大家还会接触到更多更有趣的数据类型,python初学者入门时先了解这几种类型就可以了。python基本内置数据类型对应符号1.整型——int——数字python有5种数字类型,最常见的就是整型int,int python方法很实用。例如:1234、-12342.布尔型——bool——用符号==表示布尔型是一种比较特殊的python数字类型,它只有True和False两种值,它主要用来比较和判断,所得结果叫做布尔值。例如:3==3 给出True,3==5给出False3)字符串——str——用' '或" "表示例如:'www.iplaypy.com'或者"hello"4)列表——list——用[ ]符号表示例如:[1,2,3,4]5)元组——tuple——用( )符号表示例如:('d',300)6)字典——dict——用{ }符号表示例如:{'name':'coco','country':'china'}Python基本数据类型中哪些可变,哪些是不可变python可变数据类型:列表list[ ]、字典dict{ }python不可变数据类型:整型int、字符串str' '、元组tuple()
python标准数据类型有哪些
python标准数据类型有哪些?
python标准数据类型有:
Number(数字)
String(字符串)
List(列表)
Tuple(元组)
Set(集合)
Dictionary(字典)
Python3的六个标准数据类型中:
不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
相关推荐:《Python教程》以上就是小编分享的关于python标准数据类型有哪些的详细内容希望对大家有所帮助,更多有关python教程请关注环球青藤其它相关文章!
1、number
即数字类型,包含int(整型)、float(浮点型)、bool、complex(复数类型)四种基本类型,可用于存储数值;
类型转换:int()、float();
数学运算:+、-、*都与C语言相同,/表示做触发(结果一定为浮点数),//表示做除法,(结果只保留整数部分,去掉小数部分)% 表示做求余运算** 表示做幂次方运算 (注意运算次序)
2、string
即字符串类型,字符串需要用单引号’’或双引号" "括起来 三引号–注释,字符串也是一种特殊的元组。不能改变字符串中的某个元素的值;
基础操作:索引、切片、乘法-多次输出、成员资格检查、长度len()、最大值、最小值;
3、list
即列表类型,list的数据项可以是不同类型,其各个元素也可以改变,list是使用[]方括号包含各个数据项,+多个列表进行合并成一个列表*列表重复输出多次in某个项是否在列表中,可对列表项进行添加、修改、删除。
4、tuple
即元组类型,tuple 是使用( )小括号包含各个数据项,tuple与list的唯一区别是tuple的元素是不能修改,而list的元素可以修改。
5、set
即集合类型,是一个无序不重复元素的序列,使用大括号{}或者set()函数创建集合,用set()创建一个空几个,使用set也可以去重。
6、dictionary
即字典类型,字典的每个元素是键值对,无序的对象集合,是可变容器模型,且可存储任意类型对象,可以通过键来引用,键必须是唯一的且键名必须是不可改变的(即键名必须为Number、String、元组三种类型的某一种),但值则不必。
Python语言有哪些数据类型
在Python中,能够直接处理的数据类型有以下几种:一、整数Python可以处理任意大小的整数,当然包括负整数,在Python程序中,整数的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等。 (推荐学习:Python视频教程)计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如:0xff00,0xa5b4c3d2,等等。二、浮点数浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,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,等等。整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法难道也是精确的?是的!),而浮点数运算则可能会有四舍五入的误差。三、字符串字符串是以''或''括起来的任意文本,比如'abc','xyz'等等。请注意,''或''本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c这3个字符。四、布尔值布尔值和布尔代数的表示完全一致,一个布尔值只有True、False两种值,要么是True,要么是False,在Python中,可以直接用True、False表示布尔值(请注意大小写),也可以通过布尔运算计算出来。布尔值可以用and、or和not运算。and运算是与运算,只有所有都为 True,and运算结果才是 True。or运算是或运算,只要其中有一个为 True,or 运算结果就是 True。not运算是非运算,它是一个单目运算符,把 True 变成 False,False 变成 True。五、空值空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。此外,Python还提供了列表、字典等多种数据类型,还允许创建自定义数据类型。
python的数据类型——列表
1、数字型Python数字类型主要包括int(整型)、long(长整型)和float(浮点型),但是在Python3中就不再有long类型了。
2、第一种:整数python可以处理任意大小的整数,当然包含负整数,在python程序中,整数的表示方法和数学上的写法一模一样,比如:1,100,-8080,0,等。
3、python中有6种标准数据类型:number(数字),string(字符串),list(列表),tuple(元组),set(集合),dictionary(字典)。type(),dtype(),astype()的区别。
4、Python基本数据类型一般分为:数字、字符串、列表、元组、字典、集合这六种基本数据类型。
5、集合是无序的、不重复的数据集合,它本身是可以变的,但里面的元素是不可变类型。列表是Python中非常重要的数据类型,通常作为函数的返回类型。
python数据类型有哪些
一、整数
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,b,c这3个字符。
4
四、布尔值
布尔值和布尔代数的表示完全一致,一个布尔值只有True、False两种值,要么是True,要么是False,在Python中,可以直接用True、False表示布尔值(请注意大小写),也可以通过布尔运算计算出来。
布尔值可以用and、or和not运算。
and运算是与运算,只有所有都为 True,and运算结果才是 True。
or运算是或运算,只要其中有一个为 True,or 运算结果就是 True。
not运算是非运算,它是一个单目运算符,把 True 变成 False,False 变成 True。
5
五、空值
空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
1. 数字类型
Python数字类型主要包括int(整型)、long(长整型)和float(浮点型),但是在Python3中就不再有long类型了。
int(整型)
在32位机器上,整数的位数是32位,取值范围是-231~231-1,即-2147483648~214748364;在64位系统上,整数的位数为64位,取值范围为-263~263-1,即9223372036854775808~9223372036854775807。
long(长整型)
Python长整型没有指定位宽,但是由于机器内存有限,使用长的长整数数值也不可能无限大。
float(浮点型)
浮点型也就是带有小数点的数,其精度和机器有关。
complex(复数)
Python还支持复数,复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。
2. 字符串
在Python中,加了引号的字符都被认为是字符串,其声明有三种方式,分别是:单引号、双引号和三引号;Python中的字符串有两种数据类型,分别是str类型和unicode类型,str类型采用的ASCII编码,无法表示中文,unicode类型采用unicode编码,能够表示任意字符,包括中文和其他语言。
3. 布尔型
和其他编程语言一样,Python布尔类型也是用于逻辑运算,有两个值:True(真)和False(假)。
4. 列表
列表是Python中使用最频繁的数据类型,集合中可以放任何数据类型,可对集合进行创建、查找、切片、增加、修改、删除、循环和排序操作。
5. 元组
元组和列表一样,也是一种序列,与列表不同的是,元组是不可修改的,元组用”()”标识,内部元素用逗号隔开。
6. 字典
字典是一种键值对的集合,是除列表以外Python之中最灵活的内置数据结构类型,列表是有序的对象集合,字典是无序的对象集合。
7. 集合
集合是一个无序的、不重复的数据组合,它的主要作用有两个,分别是去重和关系测试。
1、数字--int类
当然对于数字,Python的数字类型有int整型、long长整型、float浮点数、complex复数、以及布尔值,这里只针对int整型进行介绍。
在python2中,整数的大小是有限制的,即当数字超过一定的范围不再是int类型,而是long长整型,而在python3中,无论整数的大小长度为多少,统称为整型int。
2、布尔值--bool类
对于布尔值,只有两种结果即True和False,其分别对应与二进制中的0和1。而对于真即True的值太多了,我们只需要了解假即Flase的值有哪些---》None、空(即 [ ]/( ) /" "/{ })、0。
3、字符串--str类
关于字符串是python中最常用的数据类型,其用途也很多,我们可以使用单引号‘’或者双引号“”来创建字符串。
字符串是不可修改的。所有关于字符我们可以从索引、切片、长度、遍历、删除、分割、清除空白、大小写转换、判断以什么开头等方面对字符串进行介绍。
4、列表--list类
列表是由一系列特定元素顺序排列的元素组成的,它的元素可以是任何数据类型即数字、字符串、列表、元组、字典、布尔值等等,同时其元素也是可修改的。
5、元组--tuple类
元组即为不可修改的列表。其于特性跟list相似。其使用圆括号而不是方括号来标识。
6、字典--dict类
字典为一系列的键-值对,每个键值对用逗号隔开,每个键都与一个值相对应,可以通过使用键来访问对应的值。无序的。
键的定义必须是不可变的,即可以是数字、字符串也可以是元组,还有布尔值等。
7、集合--set类
关于集合set的定义:在我看来集合就像一个篮子,你可以往里面存东西也可往里面取东西,但是这些东西又是无序的,你很难指定单独去取某一样东西;同时它又可以通过一定的方法筛选去获得你需要的那部分东西。故集合可以创建、增、删、关系运算。
8天深入理解python教程—python基础数据类型
Python基本数据类型一般分为:数字、字符串、列表、元组、字典、集合这六种基本数据类型。
其中数字又包含整型(整型又包括标准整型、长整型(Python2.7及之前版本有))、浮点型、复数类型、布尔型(布尔型就是只有两个值的整型)、这几种数字类型。列表、元组、字符串都是序列。
1、数字
数字类型是不可更改的对象。对变量改变数字值就是生成/创建新的对象。Python支持多种数字类型:
整型(标准整型和长整型(Python2.7及之前的有这种类型))、布尔型、双精度浮点型、十进制浮点型、复数。
2、标准整型
int,标准整型,在大多数32位机器上标准整型取值范围是-2^31到2^31-1,也就是-2147483648~2147483647,如果在64位机器使用64位编译器,那么这个系统的标准整型将是64位。
3、布尔型
bool,从Python2.3开始Python中添加了布尔类型。布尔类型有两种True和False。对于没有__nozero__方法的对象默认是True。
对于值为0的数字、空集(空列表、空元组、空字典等)在Python中的布尔类型中都是False。
>>> bool(1)True>>> bool('a')True>>> bool(0)False>>> bool('')False
4、浮点型
float,每个浮点型占8个字节(64位),完全遵守IEEE754号规范(52M/11E/1S),其中52个位用于表示底,11个位用于表示指数(可表示的范围大约是±10**308.25),剩下的一个位表示符号。这看上去相当完美,然而,实际精度依赖于机器架构和创建Python解释器的编译器。
浮点型值通常都有一个小数点和一个可选的后缀e(大写或小写,表示科学计数法)。在e和指数之间可以用正(+)或负(-)表示指数的正负(正数的话可以省略符号)。
以上是Python核心编程的对浮点型(双精度浮点型)的说明。经过Python实测浮点型默认长度是24字节如果超出这个范围会自动
5、复数类型
complex,在复数中虚数不能单独存在,它们总是和一个值为0.0的实数部分一起来构成一个复数。复数由实数部分和虚数部分构成。表示虚数的语法:real+imagj。
实数部分和虚数部分都是浮点型。虚数部分必须有后缀j或J。
写出python中6种数据类型?
Python中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。Python3中有六个标准的数据类型:Number(数字)+String(字符串)+List(列表)+Tuple(元组)+Sets(集合)+Dictionary(字典)。Number(数字)数字类型是顾名思义是用来存储数值的,需要记住的是,有点和Java的字符串味道差不多,如果改变了数字数据类型的值,将重新分配内存空间。可以使用del语句删除一些数字对象的引用delvar1[,var2[,var3[....,varN]]]]。Python支持三种不同的数值类型:1.整型(Int)-通常被称为是整型或整数,是正或负整数,不带小数点。Python3整型是没有限制大小的,可以当作Long类型使用,所以Python3没有Python2的Long类型。2.浮点型(float)-浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2=2.5x102=250)3.复((complex))-复数由实数部分和虚数部分构成,可以用a+bj,或complex(a,b)表示,复数的实部a和虚部b都是浮点型。数字类型转换1.int(x)将x转换为一个整数。4.complex(x,y)将x和y转换到一个复数,实数部分为x,虚数部分为y。x和y是数字表达式。
python中的数据类型有哪些
1、数字--int类
当然对于数字,Python的数字类型有int整型、long长整型、float浮点数、complex复数、以及布尔值,这里只针对int整型进行介绍。
在python2中,整数的大小是有限制的,即当数字超过一定的范围不再是int类型,而是long长整型,而在python3中,无论整数的大小长度为多少,统称为整型int。
2、布尔值--bool类
对于布尔值,只有两种结果即True和False,其分别对应与二进制中的0和1。而对于真即True的值太多了,我们只需要了解假即Flase的值有哪些---》None、空(即
[ ]/( ) /" "/{ })、0。
3、字符串--str类
关于字符串是python中最常用的数据类型,其用途也很多,我们可以使用单引号‘’或者双引号“”来创建字符串。
字符串是不可修改的。所有关于字符我们可以从索引、切片、长度、遍历、删除、分割、清除空白、大小写转换、判断以什么开头等方面对字符串进行介绍。
4、列表--list类
列表是由一系列特定元素顺序排列的元素组成的,它的元素可以是任何数据类型即数字、字符串、列表、元组、字典、布尔值等等,同时其元素也是可修改的。
5、元组--tuple类
元组即为不可修改的列表。其于特性跟list相似。其使用圆括号而不是方括号来标识。
6、字典--dict类
字典为一系列的键-值对,每个键值对用逗号隔开,每个键都与一个值相对应,可以通过使用键来访问对应的值。无序的。
键的定义必须是不可变的,即可以是数字、字符串也可以是元组,还有布尔值等。
7、集合--set类
关于集合set的定义:在我看来集合就像一个篮子,你可以往里面存东西也可往里面取东西,但是这些东西又是无序的,你很难指定单独去取某一样东西;同时它又可以通过一定的方法筛选去获得你需要的那部分东西。故集合可以创建、增、删、关系运算。
python中的数据类型有9种,分别是1、字符串2、布尔类型3、整数4、浮点数5、数字6、列表7、元组8、字典9、日期。1、字符串1.1、如何在Python中使用字符串a、使用单引号(')用单引号括起来表示字符串,例如:str='this is string';print str;b、使用双引号(")双引号中的字符串与单引号中的字符串用法完全相同,例如:str="this is string";print str;c、使用三引号(''')利用三引号,表示多行的字符串,可以在三引号中自由的使用单引号和双引号,例如:str='''this is stringthis is pythod stringthis is string'''print str;2、布尔类型bool=False;print bool;bool=True;print bool;3、整数int=20;print int;4、浮点数float=2.3;print float;5、数字包括整数、浮点数。5.1、删除数字对象引用,例如:a=1;b=2;c=3;del a;del b, c;#print a; #删除a变量后,再调用a变量会报错5.2、数字类型转换int(x [,base]) 将x转换为一个整数 float(x ) 将x转换到一个浮点数 complex(real [,imag]) 创建一个复数 str(x) 将对象x转换为字符串 repr(x) 将对象x转换为表达式字符串 eval(str) 用来计算在字符串中的有效Python表达式,并返回一个对象 tuple(s) 将序列s转换为一个元组 list(s) 将序列s转换为一个列表 chr(x) 将一个整数转换为一个字符 unichr(x) 将一个整数转换为Unicode字符 ord(x) 将一个字符转换为它的整数值 hex(x) 将一个整数转换为一个十六进制字符串 oct(x) 将一个整数转换为一个八进制字符串5.3、数学函数abs(x) 返回数字的绝对值,如abs(-10) 返回 10ceil(x) 返回数字的上入整数,如math.ceil(4.1) 返回 5cmp(x, y) 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1exp(x) 返回e的x次幂(ex),如math.exp(1) 返回2.713800045fabs(x) 返回数字的绝对值,如math.fabs(-10) 返回10.0floor(x) 返回数字的下舍整数,如math.floor(4.9)返回 4log(x) 如math.log(math.e)返回1.0,math.log(100,10)返回2.0log10(x) 返回以10为基数的x的对数,如math.log10(100)返回 2.0max(x1, x2,...) 返回给定参数的最大值,参数可以为序列。min(x1, x2,...) 返回给定参数的最小值,参数可以为序列。modf(x) 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。pow(x, y) x**y 运算后的值。round(x [,n]) 返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。sqrt(x) 返回数字x的平方根,数字可以为负数,返回类型为实数,如math.sqrt(4)返回 2+0j6、列表6.1、初始化列表,例如:list=['physics', 'chemistry', 1997, 2000];nums=[1, 3, 5, 7, 8, 13, 20];6.2、访问列表中的值,例如:'''nums[0]: 1'''print "nums[0]:", nums[0]'''nums[2:5]: [5, 7, 8] 从下标为2的元素切割到下标为5的元素,但不包含下标为5的元素'''print "nums[2:5]:", nums[2:5]'''nums[1:]: [3, 5, 7, 8, 13, 20] 从下标为1切割到最后一个元素'''print "nums[1:]:", nums[1:]'''nums[:-3]: [1, 3, 5, 7] 从最开始的元素一直切割到倒数第3个元素,但不包含倒数第三个元素'''print "nums[:-3]:", nums[:-3]'''nums[:]: [1, 3, 5, 7, 8, 13, 20] 返回所有元素'''print "nums[:]:", nums[:]6.3、更新列表,例如:nums[0]="ljq";print nums[0];6.4、删除列表元素del nums[0];'''nums[:]: [3, 5, 7, 8, 13, 20]'''print "nums[:]:", nums[:];6.5、列表脚本操作符列表对+和*的操作符与字符串相似。+号用于组合列表,*号用于重复列表,例如:print len([1, 2, 3]); #3print [1, 2, 3] + [4, 5, 6]; #[1, 2, 3, 4, 5, 6]print ['Hi!'] * 4; #['Hi!', 'Hi!', 'Hi!', 'Hi!']print 3 in [1, 2, 3] #Truefor x in [1, 2, 3]: print x, #1 2 36.6、列表截取L=['spam', 'Spam', 'SPAM!'];print L[2]; #'SPAM!'print L[-2]; #'Spam'print L[1:]; #['Spam', 'SPAM!']6.7、列表函数&方法list.append(obj) 在列表末尾添加新的对象list.count(obj) 统计某个元素在列表中出现的次数list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)list.index(obj) 从列表中找出某个值第一个匹配项的索引位置,索引从0开始list.insert(index, obj) 将对象插入列表list.pop(obj=list[-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值list.remove(obj) 移除列表中某个值的第一个匹配项list.reverse() 反向列表中元素,倒转list.sort([func]) 对原列表进行排序7、元组(tuple)Python的元组与列表类似,不同之处在于元组的元素不能修改;元组使用小括号(),列表使用方括号[];元组创建很简单,只需要在括号中添加元素,并使用逗号(,)隔开即可,例如:tup1 = ('physics', 'chemistry', 1997, 2000);tup2 = (1, 2, 3, 4, 5 );tup3 = "a", "b", "c", "d";创建空元组,例如:tup = ();元组中只有一个元素时,需要在元素后面添加逗号,例如:tup1 = (50,);元组与字符串类似,下标索引从0开始,可以进行截取,组合等。7.1、访问元组tup1 = ('physics', 'chemistry', 1997, 2000);#tup1[0]: physicsprint "tup1[0]: ", tup1[0]#tup1[1:5]: ('chemistry', 1997)print "tup1[1:5]: ", tup1[1:3]7.2、修改元组元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,例如:tup1 = (12, 34.56);tup2 = ('abc', 'xyz');# 以下修改元组元素操作是非法的。# tup1[0] = 100;# 创建一个新的元组tup3 = tup1 + tup2;print tup3; #(12, 34.56, 'abc', 'xyz')7.3、删除元组元组中的元素值是不允许删除的,可以使用del语句来删除整个元组,例如:tup = ('physics', 'chemistry', 1997, 2000);print tup;del tup;7.4、元组运算符与字符串一样,元组之间可以使用+号和*号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。7.5、元组索引&截取L = ('spam', 'Spam', 'SPAM!');print L[2]; #'SPAM!'print L[-2]; #'Spam'print L[1:]; #['Spam', 'SPAM!']7.6、元组内置函数cmp(tuple1, tuple2) 比较两个元组元素。len(tuple) 计算元组元素个数。max(tuple) 返回元组中元素最大值。min(tuple) 返回元组中元素最小值。tuple(seq) 将列表转换为元组。8、字典8.1、字典简介字典(dictionary)是除列表之外python中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。字典由键和对应的值组成。字典也被称作关联数组或哈希表。基本语法如下:dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'};也可如此创建字典:dict1 = { 'abc': 456 };dict2 = { 'abc': 123, 98.6: 37 };每个键与值必须用冒号隔开(:),每对用逗号分割,整体放在花括号中({})。键必须独一无二,但值则不必;值可以取任何数据类型,但必须是不可变的,如字符串,数或元组。8.2、访问字典里的值#!/usr/bin/pythondict = {'name': 'Zara', 'age': 7, 'class': 'First'};print "dict['name']: ", dict['name'];print "dict['age']: ", dict['age'];8.3、修改字典向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例:#!/usr/bin/pythondict = {'name': 'Zara', 'age': 7, 'class': 'First'};dict["age"]=27; #修改已有键的值dict["school"]="wutong"; #增加新的键/值对print "dict['age']: ", dict['age'];print "dict['school']: ", dict['school'];8.4、删除字典del dict['name']; # 删除键是'name'的条目dict.clear(); # 清空词典所有条目del dict ; # 删除词典例如:#!/usr/bin/pythondict = {'name': 'Zara', 'age': 7, 'class': 'First'};del dict['name'];#dict {'age': 7, 'class': 'First'}print "dict", dict;注意:字典不存在,del会引发一个异常8.5、字典内置函数&方法cmp(dict1, dict2) 比较两个字典元素。len(dict) 计算字典元素个数,即键的总数。str(dict) 输出字典可打印的字符串表示。type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型。radiansdict.clear() 删除字典内所有元素radiansdict.copy() 返回一个字典的浅复制radiansdict.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值radiansdict.get(key, default=None) 返回指定键的值,如果值不在字典中返回default值radiansdict.has_key(key) 如果键在字典dict里返回true,否则返回falseradiansdict.items() 以列表返回可遍历的(键, 值) 元组数组radiansdict.keys() 以列表返回一个字典所有的键radiansdict.setdefault(key, default=None) 和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为defaultradiansdict.update(dict2) 把字典dict2的键/值对更新到dict里radiansdict.values() 以列表返回字典中的所有值9、日期和时间9.1、获取当前时间,例如:import time, datetime;localtime = time.localtime(time.time())#Local current time : time.struct_time(tm_year=2014, tm_mon=3, tm_mday=21, tm_hour=15, tm_min=13, tm_sec=56, tm_wday=4, tm_yday=80, tm_isdst=0)print "Local current time :", localtime说明:time.struct_time(tm_year=2014, tm_mon=3, tm_mday=21, tm_hour=15, tm_min=13, tm_sec=56, tm_wday=4, tm_yday=80, tm_isdst=0)属于struct_time元组,struct_time元组具有如下属性:9.2、获取格式化的时间可以根据需求选取各种格式,但是最简单的获取可读的时间模式的函数是asctime():2.1、日期转换为字符串首选:print time.strftime('%Y-%m-%d %H:%M:%S');其次:print datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S')最后:print str(datetime.datetime.now())[:19]2.2、字符串转换为日期expire_time = "2013-05-21 09:50:35"d = datetime.datetime.strptime(expire_time,"%Y-%m-%d %H:%M:%S")print d;9.3、获取日期差oneday = datetime.timedelta(days=1)#今天,2014-03-21today = datetime.date.today()#昨天,2014-03-20yesterday = datetime.date.today() - oneday#明天,2014-03-22tomorrow = datetime.date.today() + oneday#获取今天零点的时间,2014-03-21 00:00:00today_zero_time = datetime.datetime.strftime(today, '%Y-%m-%d %H:%M:%S')#0:00:00.001000 print datetime.timedelta(milliseconds=1), #1毫秒#0:00:01 print datetime.timedelta(seconds=1), #1秒#0:01:00 print datetime.timedelta(minutes=1), #1分钟#1:00:00 print datetime.timedelta(hours=1), #1小时#1 day, 0:00:00 print datetime.timedelta(days=1), #1天#7 days, 0:00:00print datetime.timedelta(weeks=1)
Python中的几种数据类型
Python 中主要有8种数据类型:number(数字)、string(字符串)、list(列表)、tuple(元组)、dict(字典)、set(集合)、Boolean(布尔值)、None(空值)。
1、字符串
字符串的声明有三种方式:单引号、双引号和三引号(包括三个单引号或三个双引号)
2、数字
Python3 支持三种不同的数值类型:
整型(int):通常被称为是整型或整数,是正或负整数,不带小数点。Python3 整型是没有限制大小的,可以当作 Long 类型使用,所以 Python3 没有 Python2 的 Long 类型。
浮点型(float):浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示 。
复数( (complex)):复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
3、列表
列表是一种可修改的集合类型,其元素可以是数字、string等基本类型,也可以是列表、元组、字典等集合对象,甚至可以是自定义的类型。
4、元组
元组类型和列表一样,也是一种序列,与列表不同的是,元组是不可修改的。
5、字典
字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中。
6、集合
集合(set)是一个无序的不重复元素序列。可以使用大括号 { } 或者 set() 函数创建集合。
注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
大体上把Python中的数据类型分为如下几类:Number(数字) 包括int,long,float,complexString(字符串) 例如:hello,hello,helloList(列表) 例如:[1,2,3],[1,2,3,[1,2,3],4]Dictionary(字典) 例如:{1:nihao,2:hello}Tuple(元组) 例如:(1,2,3,abc)Bool(布尔) 包括True、False由于Python中认为所有的东西都是对象,所以Python不用像其它一些高级语言那样主动声明一个变量的类型。例如我要给一个变量i赋值100,python的实现 :i=100C#的实现:int i = 100;下面一一简单介绍这几种数据类型数字类型int和long之所以要把int和long放在一起的原因是python3.x之后已经不区分int和long,统一用int。python2.x还是区分的。下面我以Python2.7为例: i = 10 type(i)i=10000000000 type(i)那么为什么10就是int,10000000000就是long呢,当然这就和int的最大值有关了,int类型的最大值为231-1,即2147483647,也可以用sys.maxint。 2**31-12147483647L sys.maxint2147483647为什么用上面的方法求的值就是long型的呢(数字后面加‘L’表示是long型),因为2**31的值为2147483648,这个值是一个long型,用一个long型减去1,结果还是一个long,但实际上int型的最大值就是2147483647 type(2147483647)type(2147483648)float类型float类型和其它语言的float基本一致,浮点数,说白了,就是带小数点的数,精度与机器相关。例如: i = 10000.1212 type(i)complex:复数类型,具体含义及用法可自行查看相关文档。字符串类型字符串的声明有三种方式:单引号、双引号和三引号(包括三个单引号或三个双引号)。例如: str1 = hello world str2 = hello world str3 = hello world str4 = hello world print str1hello world print str2hello world print str3hello world print str4hello worldPython中的字符串有两种数据类型:str类型和unicode类型。str类型采用的ASCII编码,也就是说它无法表示中文。unicode类型采用unicode编码,能够表示任意字符,包括中文及其它语言。并且python中不存在像c语言中的char类型,就算是单个字符也是字符串类型。字符串默认采用的ASCII编码,如果要显示声明为unicode类型的话,需要在字符串前面加上u或者U。例如: str1 = hello print str1hello str2 = u中国 print str2中国由于项目中经常出现对字符串的操作,而且由于字符串编码问题出现的问题很多,下面,来说一下关于字符串的编码问题。在与python打交道的过程中经常会碰到ASCII、Unicode和UTF-8三种编码。具体的介绍请参见这篇文章。我简单的理解就是,ASCII编码适用英文字符,Unicode适用于非英文字符(例如中文、韩文等),而utf-8则是一种储存和传送的格式,是对Uncode字符的再编码(以8位为单位编码)。例如:u = u汉print repr(u) # uu6c49s = u.encode(UTF-8)print repr(s) # xe6xb1x89u2 = s.decode(UTF-8)print repr(u2) # uu6c49解释:声明unicode字符串”汉“,它的unicode编码为”u6c49“,经过utf-8编码转换后,它的编码变成”xe6xb1x89“。对于编码的经验总结:1.在python文件头声明编码格式 ;#-*- coding: utf-8 -*-2.将字符串统一声明为unicode类型,即在字符串前加u或者U;3.对于文件读写的操作,建议适用codecs.open()代替内置的open(),遵循一个原则,用哪种格式写,就用哪种格式读;假设在一个以ANSI格式保存的文本文件中有“中国汉字”几个字,如果直接用以下代码,并且要在GUI上或者在一个IDE中打印出来(例如在sublime text中,或者在pydev中打印),就会出现乱码或者异常,因为codecs会依据文本本身的编码格式读取内容:f = codecs.open(d:/test.txt)content = f.read()f.close()print content改用如下方法即可(只对中文起作用):# -*- coding: utf-8 -*-import codecsf = codecs.open(d:/test.txt)content = f.read()f.close()if isinstance(content,unicode):print content.encode(utf-8)print utf-8else:print content.decode(gbk).encode(utf-8)列表类型列表是一种可修改的集合类型,其元素可以是数字、string等基本类型,也可以是列表、元组、字典等集合对象,甚至可以是自定义的类型。其定义方式如下: nums = [1,2,3,4] type(nums)print nums[1, 2, 3, 4] strs = [hello,world] print strs[hello, world] lst = [1,hello,False,nums,strs] type(lst)print lst[1, hello, False, [1, 2, 3, 4], [hello, world]]用索引的方式访问列表元素,索引从0开始,支持负数索引,-1为最后一个. lst = [1,2,3,4,5] print lst[0]1 print lst[-1]5 print lst[-2]4支持分片操作,可访问一个区间内的元素,支持不同的步长,可利用分片进行数据插入与复制操作nums = [1,2,3,4,5]print nums[0:3] #[1, 2, 3] #前三个元素print nums[3:] #[4, 5] #后两个元素print nums[-3:] #[3, 4, 5] #后三个元素 不支持nums[-3:0]numsclone = nums[:]print numsclone #[1, 2, 3, 4, 5] 复制操作print nums[0:4:2] #[1, 3] 步长为2nums[3:3] = [three,four] #[1, 2, 3, three, four, 4, 5] 在3和4之间插入nums[3:5] = [] #[1, 2, 3, 4, 5] 将第4和第5个元素替换为[] 即删除[three,four]支持加法和乘法操作lst1 = [hello,world]lst2 = [good,time]print lst1+lst2 #[hello, world, good, time]print lst1*5 #[hello, world, hello, world, hello, world, hello, world, hello, world]列表所支持的方法,可以用如下方式查看列表支持的公共方法: [x for x in dir([]) if not x.startswith(__)][append, count, extend, index, insert, pop, remove, reverse, sort]def compare(x,y):return 1 if xy else -1#【append】 在列表末尾插入元素lst = [1,2,3,4,5]lst.append(6)print lst #[1, 2, 3, 4, 5, 6]lst.append(hello)print lst #[1, 2, 3, 4, 5, 6]#【pop】 删除一个元素,并返回此元素的值 支持索引 默认为最后一个x = lst.pop()print x,lst #hello [1, 2, 3, 4, 5, 6] #默认删除最后一个元素x = lst.pop(0)print x,lst #1 [2, 3, 4, 5, 6] 删除第一个元素#【count】 返回一个元素出现的次数print lst.count(2) #1#【extend】 扩展列表 此方法与“+”操作的不同在于此方法改变原有列表,而“+”操作会产生一个新列表lstextend = [hello,world]lst.extend(lstextend)print lst #[2, 3, 4, 5, 6, hello, world] 在lst的基础上扩展了lstextend进来#【index】 返回某个值第一次出现的索引位置,如果未找到会抛出异常print lst.index(hello) #5#print lst.index(kitty) #ValueError: kitty is not in list 出现异常#【remove】 移除列表中的某个元素,如果待移除的项不存在,会抛出异常 无返回值lst.remove(hello)print lst #[2, 3, 4, 5, 6, world] hello 被移除#lst.remove(kitty) #ValueError: list.remove(x): x not in list#【reverse】 意为反转 没错 就是将列表元素倒序排列,无返回值print lst #[2, 3, 4, 5, 6, world]lst.reverse()print lst #[2, 3, 4, 5, 6, world]#【sort】 排序print lst #由于上面的反转 目前排序为 [world, 6, 5, 4, 3, 2]lst.sort()print lst #排序后 [2, 3, 4, 5, 6, world]nums = [10,5,4,2,3]print nums #[10,5,4,2,3]nums.sort(compare)print nums #[2, 3, 4, 5, 10]列表转换为迭代器。所谓的迭代器就是具有next方法(这个方法在调用时不需要任何参数)的对象。在调用next方法时,迭代器会返回它的下一个值。如果next方法被调用,但迭代器没有值可以返回,就会引发一个StopIteration异常。迭代器相对于列表的优势在于,使用迭代器不必一次性将列表加入内存,而可以依次访问列表的数据。依然用上面的方法查看迭代器的公共方法:lst = [1,2,3,4,5]lstiter = iter(lst)print [x for x in dir(numiter) if not x.startswith(__)][next]没错,只有next一个方法,对于一个迭代器,可以这样操作:lst = [1,2,3,4,5]lstiter = iter(lst)for i in range(len(lst)):print lstiter.next() #依次打印12345元组类型元组类型和列表一样,也是一种序列,与列表不同的是,元组是不可修改的。元组的声明如下:lst = (0,1,2,2,2)lst1=(hello,)lst2 = (hello)print type(lst1) # 只有一个元素的情况下后面要加逗号 否则就是str类型print type(lst2) #字典类型字典类型是一种键值对的集合,类似于C#中的Dictionarydict1 = {}print type(dict1) # 声明一个空字典dict2 = {name:kitty,age:18} #直接声明字典类型dict3 = dict([(name,kitty),(age,18)]) #利用dict函数将列表转换成字典dict4 = dict(name=kitty,age=18) #利用dict函数通过关键字参数转换为字典dict5 = {}.fromkeys([name,age]) #利用fromkeys函数将key值列表生成字典,对应的值为None {age: None, name: None}字典基本的操作方法:#【添加元素】dict1 = {}dict1[mykey] = hello world #直接给一个不存在的键值对赋值 即时添加新元素dict1[(my,key)] = this key is a tuple #字典的键可以是任何一中不可变类型,例如数字、字符串、元组等#【键值对个数】print len(dict1)#【检查是否含有键】print mykey in dict1 #True 检查是否含有键为mykey的键值对print hello in dict1 #False#【删除】del dict1[mykey] #删除键为mykey的键值对继续利用上面的方法查看字典的所有公共方法: [x for x in dir({}) if not x.startswith(__)][clear, copy, fromkeys, get, has_key, items, iteritems, iterkeys, itervalues,keys, pop, popitem, setdefault, update, values, viewitems, viewkeys, viewvalues]dict.clear() 删除字典中所有元素dict.copy() 返回字典(浅复制)的一个副本dict.get(key,default=None) 对字典dict 中的键key,返回它对应的值value,如果字典中不存在此键,则返回default 的值(注意,参数default 的默认值为None)dict.has_key(key) 如果键(key)在字典中存在,返回True,否则返回False. 在Python2.2版本引入in 和not in 后,此方法几乎已废弃不用了,但仍提供一个 可工作的接口。dict.items() 返回一个包含字典中(键, 值)对元组的列表dict.keys() 返回一个包含字典中键的列表dict.values() 返回一个包含字典中所有值的列表dict.iter() 方法iteritems(), iterkeys(), itervalues()与它们对应的非迭代方法一样,不同的是它们返回一个迭代器,而不是一个列表。dict.pop(key[, default]) 和方法get()相似,如果字典中key 键存在,删除并返回dict[key],如果key 键不存在,且没有给出default 的值,引发KeyError 异常。dict.setdefault(key,default=None) 和方法set()相似,如果字典中不存在key 键,由dict[key]=default 为它赋值。dict.setdefault(key,default=None) 和方法set()相似,如果字典中不存在key 键,由dict[key]=default 为它赋值。布尔类型布尔类型即True和False,和其它语言中的布尔类型基本一致。下面列出典型的布尔值print bool(0) #Falseprint bool(1) #Trueprint bool(-1) #Trueprint bool([]) #Falseprint bool(()) #Falseprint bool({}) #Falseprint bool() #Falseprint bool(None) #False