Python 数据类型

python中标准的数据类型有

基础类型

  • 整型(长整型)
  • 浮点型
  • 复数型
  • 布尔型

序列类型

  • 字符串
  • 列表
  • 元组
  • 字典

整型

整型和长整型并不严格区分,整型int的表达范围和计算范围从(-231到231-1)或者(-263到263-1)。长整形的表达范围同C或者Java不一样,可以非常大,同内存有关

整型(int)

  1. type(3)
  1. int

长整型(long)

  1. type(3L)
  1. long
  1. type(100000000000000000000000)
  1. long

十六进制

  1. 0x1F
  1. 31

八进制

  1. 010
  1. 8

布尔型

布尔型,可以认为是整型的子类,只有连个取值TrueFalse,分别使用整型中的10存储

  1. True
  1. True
  1. type(True)
  1. bool
  1. int(True)
  1. 1

浮点型

浮点型,相当于数学中的实数型,同时也支持科学计数法。计算机中的浮点型存在精度问题

  1. type(3.14)
  1. float
  1. 3.1e3
  1. 3100.0

复数型

复数型,支持数学中的虚数

  1. 3j
  1. 3j
  1. 1j*1j
  1. (-1+0j)

序列类型(sequence)

序列中的每一个元素都被分配了一个索引:0,1,2,...

序列类型分为字符型,列表,元组,(还有不太常见的buffer,xrange,unicode字符串)

序列类型的通用标准类型运算符分为:

  • 值比较: <,<=,>,>=,!=,<>,==
  • 对象身份比较:is,is not
  • 布尔运算:not,and,or

序列类型的通用序列类型运算符分为:

  • 获取: =
  • 重复: *
  • 连接: +
  • 判断: in
  • 切片: [:]
  • 长度: len()
  • 最大最小值: max(),min()

序列类型的工厂转换函数:

  • list()
  • str()
  • unicode()
  • basestring()
  • tuple()

序列类型的可用内建函数:

  • enumerate()
  • len()
  • max()
  • min()
  • reversed()
  • sorted()
  • sum()
  • zip()

标准类型运算符:

序列类型的通用标准类型运算符分为:

  • 值比较: <,<=,>,>=,!=,<>,==
  • 对象身份比较:is,is not
  • 布尔运算:not,and,or
  1. 'apple' < 'banna'
  1. True
  1. al=[1,2,3]
  2. bl=al
  3. al is not bl
  1. False

序列是对象引用赋值

  1. al=[1,2,3]
  2. al.append(4)
  3. bl=al
  4. bl
  1. [1, 2, 3, 4]

字符串的每一次赋值,都是对象引用的改变

  1. astr='hello'
  2. bstr=astr
  3. astr='world'
  4. print bstr
  1. hello

序列类型运算符

序列类型的通用序列类型运算符分为:

  • 获取: =
  • 重复: *
  • 连接: +
  • 判断: in
  • 切片: [:]
  • 长度: len()
  • 最大最小值: max(),min()
  1. al=[1,2,3]
  1. al*3
  1. [1, 2, 3, 1, 2, 3, 1, 2, 3]
  1. bl=al+al
  2. bl
  1. [1, 2, 3, 1, 2, 3]
  1. [1,2] in [1,2,3]
  1. False
  1. 'ap' in 'apple'
  1. True
  1. bl[1:3]
  1. [2, 3]
  1. len(al)
  1. 3
  1. max(al)
  1. 3
  1. min(al)
  1. 1

工厂转换函数

序列类型的工厂转换函数:

  • list()
  • str()
  • unicode()
  • basestring()
  • tuple()
  1. mystr='hello'
  2. mylist=list(mystr)
  3. mylist
  1. ['h', 'e', 'l', 'l', 'o']
  1. mytuple=tuple(mystr)
  2. mytuple
  1. ('h', 'e', 'l', 'l', 'o')
  1. newstr=str(mystr)
  2. newstr
  1. 'hello'
  1. myuni=unicode(mystr)
  2. myuni
  1. u'hello'
  1. type(myuni)
  1. unicode

字符型

字符串采用单引号,双引号和三引号表示;字符串是不可变的序列

  1. mystr='helo'
  2. print mystr
  1. helo
  1. mystr="hello"
  2. print mystr
  1. hello
  1. mystr='''hello'''
  2. print mystr
  1. hello
  1. print mystr[1]
  1. e
  1. print mystr[1:-1]
  1. ell

打印原生态的字符串,在字符串之前加r

  1. s=r'd:\note'
  2. s
  1. 'd:\\note'

格式化输出

format_string % (arguments_to_convert)

  1. s='%s puls %s' % (1,1)
  2. s
  1. '1 puls 1'
  1. s='pi is %.2f' % 3.14159
  2. s
  1. 'pi is 3.14'

查找函数find

  1. title="Montyh Python's Flying Cirucs"
  2. title.find('Monty')
  1. 0
  1. title.find('Python')
  1. 7
  1. title.find('Not')
  1. -1

Join字符串拼接函数

  1. seq=[1,2,3]
  2. strseq=[str(c) for c in seq]
  3. strseq
  1. ['1', '2', '3']
  1. '+'.join(strseq)
  1. '1+2+3'

其他字符串函数:

  • lower
  • replace
  • split
  • strip
  • translate

列表

列表可以说是python中最常用的数据类型,列表本身可变,而且列表中的元素可以是不同类型的。列表作为可变的数据类型,拥有赋值和删除操作外,还具备一些函数方法。列表的特点有:

  • 动态创建列表
  • 简单灵活有用

a=[1,2,3,4,5]

type(a)

列表赋值

  1. a[1]=100
  2. a
  1. ---------------------------------------------------------------------------
  2. NameError Traceback (most recent call last)
  3. <ipython-input-44-26034086c917> in <module>()
  4. ----> 1 a[1]=100
  5. 2 a
  6. NameError: name 'a' is not defined

删除元素

  1. del a[1]
  2. a
  1. ---------------------------------------------------------------------------
  2. NameError Traceback (most recent call last)
  3. <ipython-input-45-b2bf79fc00ca> in <module>()
  4. ----> 1 del a[1]
  5. 2 a
  6. NameError: name 'a' is not defined

列表方法

  • append
  • count
  • extend
  • index
  • insert
  • pop
  • remove
  • reverse
  • sort
  1. a=[1,2,3,4]
  2. a.append(4)
  3. a
  1. [1, 2, 3, 4, 4]
  1. a.count(4)
  1. 2
  1. a.pop()
  2. a
  1. [1, 2, 3, 4]
  1. a.extend([5,6])
  2. a
  1. [1, 2, 3, 4, 5, 6]
  1. a.index(2)
  1. 1
  1. a=[1,2,3,4,5]
  2. a.remove(4)
  3. a
  1. [1, 2, 3, 5]
  1. a=[1,2,3,5]
  2. a.insert(3,'four')
  3. a
  1. [1, 2, 3, 'four', 5]
  1. a=[1,2,3,4,5]
  2. a.reverse()
  3. a
  1. [5, 4, 3, 2, 1]
  1. a=[1,5,4,2,3]
  2. a.sort()
  3. a
  1. [1, 2, 3, 4, 5]
  1. x=['apple','box','chair']
  2. x.sort(key=len)
  3. x
  1. ['box', 'apple', 'chair']

列表解析

[[expr1,expr2...,exprN] for expr1 in sequence1 for expr2 in sequence2... for exprN in sequenceN if condition]

  1. [x**2 for x in range(10)]
  1. [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
  1. [(x,y) for x in range(3) for y in range(3)]
  1. [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
  1. [(x,y) for x in range(3) for y in range(3) if (x+y)%2==0]
  1. [(0, 0), (0, 2), (1, 1), (2, 0), (2, 2)]

元组

元组是不可变的序列,通过逗号分隔就可以创建。一般我们还会加上圆括号()

对于适用于列表的赋值,排序等改变自身内容的方法,无法调用

对于创建副本不改变自身内容的方法,可以调用

元组适用的场景

  • 在映射类型中当作键来使用
  • 作为函数的特殊类型参数
  • 作为很多内建函数的返回值
  1. a=1,2
  2. a
  1. (1, 2)
  1. a=(1,2)
  2. a
  1. (1, 2)
  1. a[0]=3
  1. ---------------------------------------------------------------------------
  2. TypeError Traceback (most recent call last)
  3. <ipython-input-61-efe65c35efbe> in <module>()
  4. ----> 1 a[0]=3
  5. TypeError: 'tuple' object does not support item assignment
  1. sorted((1,3,2))
  1. [1, 2, 3]
  1. a.sort()
  1. ---------------------------------------------------------------------------
  2. AttributeError Traceback (most recent call last)
  3. <ipython-input-63-e7eb8b51a6fa> in <module>()
  4. ----> 1 a.sort()
  5. AttributeError: 'tuple' object has no attribute 'sort'
  1. def func(args1, *argst):
  2. print args1
  3. print argst
  4. func(1,2,3,4)
  1. 1
  2. (2, 3, 4)
  1. def func():
  2. return 1,2,3
  3. func()
  1. (1, 2, 3)

字典

字典是Python中唯一内建的映射类型

字典的创建:

  • 直接定义,使用花括号{}
  • dict函数,通过其他映射(比如其他字典)或者(键,值)
  1. prices={'apple':10.8,'banna':5.6}
  2. prices
  1. {'apple': 10.8, 'banna': 5.6}
  1. type(prices)
  1. dict
  1. prices=dict([('apple',10.8),('banna',5.6)])
  2. prices
  1. {'apple': 10.8, 'banna': 5.6}
  1. prices=dict(apple=10.8,banna=5.6)
  2. prices
  1. {'apple': 10.8, 'banna': 5.6}
  1. prices['apple']
  1. 10.8
  1. len(prices)
  1. 2
  1. 'apple' in prices
  1. True
  1. 'pear' in prices
  1. False

字典的常用函数

  • copy
  • clear
  • get 比直接通过[]操作符访问更安全,当键不存在时,[]访问会报错,而get会返回一个None
  1. prices={'apple':10.8,'banna':5.6}
  2. price2=prices.copy()
  3. price2
  1. {'apple': 10.8, 'banna': 5.6}
  1. prices.clear()
  2. prices
  1. {}
  1. print prices.get('apple')
  1. None
  1. prices['apple']
  1. ---------------------------------------------------------------------------
  2. KeyError Traceback (most recent call last)
  3. <ipython-input-77-57cb67973001> in <module>()
  4. ----> 1 prices['apple']
  5. KeyError: 'apple'

Python学习笔记:02数据类型的更多相关文章

  1. Python学习笔记 - day3 - 数据类型及运算符

    Python的数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同 ...

  2. python学习笔记-02

    四.函数 1.定义函数 (1)定义规则 介绍列表方法的时候已经大概说过函数,学过数学的人都知道函数,给一个参数返回一个值.函数也可以自己定义.用如下的格式: >>>def 函数名(参 ...

  3. 【python学习笔记02】python的数据类型2

    列表和元组之间的主要区别是:列表括在括号([])和它们的元素和大小是可以改变的,而元组在圆括号(),不能被更新.元组可以被认为是只读列表. 存储在一个列表中的值可以使用切片操作符来访问([]和[:]) ...

  4. python学习笔记02 --------------基础数据类型

    python的基本数据类型: 1.基本数据 1.1. 数字类型 1.1.1 整数 int int()           #将括号内内容转化为整数类型. 1.1.2 浮点数 float 1.1.3 复 ...

  5. 02 Python学习笔记-基本数据类型(二)

    一.基本知识 1.缩进: 2.一行多条语句: 3.断行: 4.注释 # 单行注释 '''这是一段 多行注释''' 5. 变量 1. 变量类型(局部变量.全局变量.系统变量) 2. 变量赋值 多重赋值x ...

  6. python学习笔记二 数据类型(基础篇)

    Python基础 对于Python,一切事物都是对象,对象基于类创建         不同类型的类可以创造出字符串,数字,列表这样的对象,比如"koka".24.['北京', '上 ...

  7. Python学习笔记---数 数据类型 运算

    python的四种数类型: 整数 int 浮点型 float 布尔 boolen 复数 complex >>> type(5)<class 'int'>>>& ...

  8. Python学习笔记3_数据类型

    Python数据类型:数字.字符串.列表.元祖.字典 一.数字类型:(整型.长整型.浮点型.复数型) 1.整型(int):表示范围-2,147,483,648到2,147,483,647 2.长整型( ...

  9. python学习笔记(数据类型)

    python数据类型: int 类型 float 小数类型 string 字符串 布尔类型 a = True b = False 1.列表,也称数组或list或array.它的表达方式通过下标或索引或 ...

  10. python学习笔记:数据类型——列表/数组(list)

    Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素.通过下标访问列表中的元素(又称索引.角标),下标从0开始计数.list定义,使用中括号[]. l ...

随机推荐

  1. 【转】Ansys 13.0 flexlm not running完美解决方案

    http://jingyan.baidu.com/article/af9f5a2dd9843a43150a4550.html 实测,12.1 用此方法问题同样得解.

  2. 洛谷2583 地铁间谍 (UVa1025A Spy in the Metro)

    洛谷2583 地铁间谍(UVa1025A Spy in the Metro) 本题地址:http://www.luogu.org/problem/show?pid=2583 题目描述 特工玛利亚被送到 ...

  3. Sum It Up(搜索)

    http://acm.hdu.edu.cn/showproblem.php?pid=1258 include include include include using namespace std; ...

  4. Linux内存寻址之分段机制

    前言 最近在学习Linux内核,读到<深入理解Linux内核>的内存寻址一章.原本以为自己对分段分页机制已经理解了,结果发现其实是一知半解.于是,查找了很多资料,最终理顺了内存寻址的知识. ...

  5. JSON字符串与JSON对象的区别及转换

    JSON对象是直接可以使用JQuery操作的格式,和js中的对象一样,可以用对象(类名)点出属性(方法). JSON字符串仅仅只是一个字符串,一个整体,不截取的话没办法取出其中存储的数据,不能直接使用 ...

  6. android图片缓存框架Android-Universal-Image-Loader(二)

    http://blog.csdn.net/king_is_everyone/article/details/35595515 这篇打算直接告诉大家怎么用吧,其实这个也不是很难的框架,大致使用过程如下: ...

  7. Android 免费短信获取国家列表和国家代码

    StringBuffer str = new StringBuffer(); for (Map.Entry<Character, ArrayList<String[]>> en ...

  8. 统计学习导论:基于R应用——第二章习题

    目前在看统计学习导论:基于R应用,觉得这本书非常适合入门,打算把课后习题全部做一遍,记录在此博客中. 第二章习题 1. (a) 当样本量n非常大,预测变量数p很小时,这样容易欠拟合,所以一个光滑度更高 ...

  9. MYSQL 体系结构图-log (踏雪无痕) (UC技术博客)

    http://www.cnblogs.com/chenpingzhao/category/690116.html http://www.cnblogs.com/chenpingzhao/p/51074 ...

  10. LTTng调试: 一个系统软件工程师的随手涂鸦

    http://nanxiao.me/install-lttng/ http://packages.efficios.com/ http://lttng.org/ http://lttng.org/do ...