Python内置数据类型

注意:

Python可以不需要声明变量的数据类型。它是根据变量的初始赋值情况分析数据类型,并在内部跟踪变量。

比较重要的数据类型:

1 布尔型(Booleans):True、False,它们是常量,可以对布尔类型变量直接赋值。

布尔类型上下文:if语句

布尔类型可以被当做数值0和1进行计算,Python2遗留问题。

2 数值型(Numbers):Integers、Floats、Fractions、Complex Number

Integer和Floating point的区别:看是否有小数点

数值类型判断:1 type() 2 isinstance()

数值运算:1 int + int = int 2 int + float = float

数值的强制转换:1 int() 2 float()

数值的计算类型:

/ 浮点除法

// 整数除法,可能返回浮点数(当分子或者分母是浮点数时)

** 计算幂

% 求余

分数运算:引入fractions模块

>>> import fractions
>>> x = fractions.Fraction(1,2)
>>> x
Fraction(1, 2)

三角函数运算:引入math模块

>>> import math
>>> math.pi
3.141592653589793
>>> math.sin(math.pi / 2)
1.0

注意:

1 int()是取整函数,对于负数取整是往0靠近的数取整

2 浮点数精确到小数点后15位

3 Python3只有一种整数类型

4 // 运算,如果分子或者分母是负的浮点数,那么结果是浮点数,取值为除去小数部分的绝对值加1.0,然后加上负号

>>> -12.2 // 2 '''绝对值为6.1,去掉小数部分为6,再加上1.0等于7.0,最后加上负号为-7.0'''
-7.0
>>> -12.9 // 2 '''绝对值为6.45,去掉小数部分为6,再加上1.0等于7.0,最后加上负号为-7.0'''
-7.0>>> 11.0 // -2 '''绝对值为5.5,去掉小数部分为5,再加上1.0等于6.0,最后加上负号为-6.0'''-6.0>>> 11 // -2.0-6.0

5 布尔上下文环境中的数值

零值(0,0.0)是False,非零值(正负小数,正负整数数等等)是True。
分数也可以在布尔上下文环境中使用,fractions.Fraction(0,n)为False。

3 列表(Lists):元素的有序集合

列表类似Java中的ArrayList,它可以容纳任何对象,可以动态扩展。列表可以不用声明数据类型

创建列表:list_name = ['a', 'b', 'c', 'x', 'y', 'z'],使用中括号包裹一系列以逗号分割的值

注意:

1 列表以零为基点,非空列表的首个元素是list_name[0],最后一个元素是list_name[len(list_name) - 1]

2 len() 计算列表的长度

3 可以使用负索引值从后往前访问列表元素,非空列表的最后一个元素是list_name[ - 1]

4 负索引值和正索引值的关系:list_name[len(list_name) - n] = list_name[ - n]

5 对列表进行切片,返回新列表

  1 list_name[1:3]:返回新列表,索引值范围为1到2,不包括3

  2 list_name[1:-1]:返回新列表,去掉头尾两个列表元素,取中间部分

  3 list_name[:3] == list_name[0:3]:返回新列表,索引值范围为0到2,不包括3

  4 list_name[:3]:返回新列表,包含头三个元素,而 list_name[3:] :返回新列表,包含最后三个元素

  5 一般地,list_name[:n] 返回头n个元素,而 list_name[n:] 返回剩余元素

  6 list_name[:]:返回新列表,是对列表的复制

6 向列表添加新元素,注意append()和extend()的区别

  1 + 连接列表以创建一个新列表。

  2 append() 只接受一个参数,但可以是任何数据类型

  3 extend() 只接受一个参数,而该参数总是一个列表

  4 insert() 将单个元素插入到列表。

7 在列表中检索元素

  1 count() 返回列表中特定元素出现的次数

  2 index() 返回指定元素在列表中的索引值,若指定元素不存在于列表中,那么Python会抛出异常

  3 in 判断指定元素是否存在于列表中,若存在,返回True,反之返回False

8 从列表中删除元素,列表永远不会有缝隙,列表可以自动拓展或者收缩

  1 del 通过索引从列表中删除某个特定元素

  2 remove() 通过值从列表中删除某个元素,试图删除一个空列表将抛出一个异常

  3 pop() 不带参数时,删除列表最后的元素,返回删除的元素,试图删除一个空列表将抛出一个异常

       通过索引从列表中删除某个特定元素,返回删除的元素

9 空列表为假;其它所有列表为真

4 元组(Tuples):元素是不可变的列表。

创建元组:tuple_name =('a', 'b', 'c', 'x', 'y', 'z'),使用小括号包裹一系列以逗号分割的值

注意:

1 元组和列表的区别:元组不能进行修改(元组是不可变更的,没有可用于修改元组的方法。)

2 元组可以做的事情:切片操作;检查元组是否包含指定的元素。

3 元组不能做的事情:没有 append() 或 extend() 方法,没有 remove() 或 pop() 方法

4 元组和列表之间的转换:

  1 列表转元组:tuple()

  2 元组转列表:list()

5 空元组为假;其它所有元组为真

6 为创建单元素元组,需要在值之后加上一个逗号,否则不创建元组

7 使用元组同时赋多个值

>>> v = ('a', 2, True)
>>> (x, y, z) = v  

5 集合(Sets):无序且不重复,可以包含任何数据类型的值。

创建集合:set_name ={'a', 'b', 'c', 'x', 'y', 'z'},使用花括号包裹一系列以逗号分割的值

注意:

1 通过列表创建集合,使用set()函数:set(list_name)

2 使用set()函数创建空的集合:set_name = set()

3 what_this_is = {} :创建了空的字典

4 修改集合:

  1 add() 接受单个可以是任何数据类型的参数

  2 update() 仅接受一个集合作为参数,还可接受一些其它数据类型的对象作为参数,包括列表。可以接受多个集合,集合间通过逗号隔开。

5 从集合中删除元素:

  1 discard() ) 接受一个单值作为参数,并从集合中删除该值。删除不存在的元素不会报错。

  2 remove() ) 接受一个单值作为参数,并从集合中删除该值。删除不存在的元素会报错:KeyError。

  3 pop() 从集合中随机删除某个值,并返回该值。删除空集合会报错:KeyError。

  4 clear() 删除集合中所有的值,留下一个空集合。它等价于 a_set = set()。

6 常见的集合运算:

  1 in 成员运算

  2 union() 并集

  3 intersection() 交集

  4 difference() 求差

  5 symmetric_difference() ???

  6 issubset() 子集

  7 issuperset() 超集

7 空集合为假;其它所有集合为真

6 字典(Dictionaries):是键值对的无序集合。

创建字典的语法与集合的类似,但应当指定键值对而不是值。

创建字典:dict_name ={'a':1, 'b':2, 'c':3, 'x':4, 'y':5, 'z':6},使用花括号包裹一系列以逗号分割的键值对

注意:

1 每个字典项都是一组键值对,整个字典项集合都被大括号包裹在内。

2 可以通过键获取值,但不能通过值获取键。

3 修改字典:指定字典项的键,然后赋值。对已经存在的键赋值,结果是新值覆盖旧值。

4 在字典中不允许有重复的键。

5 添加新的键值对:指定字典项的键(键是新的),然后赋值。

6 字典的键区分大小写。

7 字典的值可以是任何数据类型:整数、布尔值、任何对象(字典)。

字典的键可以是字符串、整数和其它一些类型。

8 在同一字典中,所有的值也无须是同一类型,可根据需要混合匹配。在同一字典中也可混合、匹配使用不同数据类型的键。

9 其它:

  1 len()(计算字典中键的数量。)

  2 in成员运算(测试某个特定的键是否在字典中。 )

  3 字典为假值;所有其它字典为真值。

7 None

Python特殊常量。

注意:

1 它是一个空值。

2 None不是False,不是空字符串,不是0。

3 None与任何非None比较返回False。

4 None是唯一的空值,类型为NoneType

5 None 为假值,而 not None 为真值

6 可将 None 赋值给任何变量,但不能创建其它 NoneType 对象。

7 所有值为 None 变量是相等的。

字符串型(Strings):Unicode字符序列

字节型(Bytes)和字节数组(Byte Arrays)

更多的类型:模块(module)、函数(function)、类(class)、方法(method)、文件(file)、已编译代码(compiled code)

参考文档:

dive into python 3

python372.chm

python 学习笔记 3 ----> dive into python 3的更多相关文章

  1. python 学习笔记 5 ----> dive into python 3

    字符串 文本:屏幕上显示的字符或者其他的记号 计算机认识的东西:位(bit)和字节(byte) 文本的本质:某种字符编码方式保存的内容. 字符编码:一种映射(显示的内容  ----> 内存.磁盘 ...

  2. python 学习笔记 4 ----> dive into python 3

    解析 列表解析.字典解析.集合解析 浏览本地文件系统的模块: 1 os 2 os.path 3 glob os模块:获取(和修改)本地目录.文件进程.环境变量等信息 os.path模块:包含了操作路径 ...

  3. python 学习笔记 2 ----> dive into python 3

    Python Shell idle的使用 >>> >>>help() ----> help> 可以在help这个工具中查找Python内置函数的文档等等 ...

  4. python学习笔记:安装boost python库以及使用boost.python库封装

    学习是一个累积的过程.在这个过程中,我们不仅要学习新的知识,还需要将以前学到的知识进行回顾总结. 前面讲述了Python使用ctypes直接调用动态库和使用Python的C语言API封装C函数, C+ ...

  5. [Python学习笔记][第七章Python文件操作]

    2016/1/30学习内容 第七章 Python文件操作 文本文件 文本文件存储的是常规字符串,通常每行以换行符'\n'结尾. 二进制文件 二进制文件把对象内容以字节串(bytes)进行存储,无法用笔 ...

  6. [Python学习笔记][第五章Python函数设计与使用]

    2016/1/29学习内容 第四章 Python函数设计与使用 之前的几页忘记保存了 很伤心 变量作用域 -一个变量已在函数外定义,如果在函数内需要修改这个变量的值,并将这个赋值结果反映到函数之外,可 ...

  7. [Python学习笔记][第四章Python字符串]

    2016/1/28学习内容 第四章 Python字符串与正则表达式之字符串 编码规则 UTF-8 以1个字节表示英语字符(兼容ASCII),以3个字节表示中文及其他语言,UTF-8对全世界所有国家需要 ...

  8. Python学习笔记:第一天python基础

    目录 1. python简介 2. python的安装 3. 编写第一个helloword 4. 变量和常量 5. 数据类型 6. 输入 7. if语句 1. python简介 python是在198 ...

  9. Python学习笔记(四)Python程序的控制结构

    在学习了 Python 的基本数据类型后,我们就要开始接触Python程序的控制结构,了解 Python 是如何使用控制结构来更改程序的执行顺序以满足多样的功能需求.如果有的小伙伴在之前学过C语言,j ...

随机推荐

  1. ESP8266清理flash学习记录

    学习来源:http://bbs.eeworld.com.cn/thread-497588-1-1.html 还稍看了电子产品世界 主要内容 1在windows 上通过 命令行 安装  Python环境 ...

  2. ssl证书 以及phpstudy配置ssl证书

    首先,确保你的Apache编译了SSL模块,这是支持SSL证书必要的条件(如果没有,请编译,[打开phpstudy]>[其他选项菜单]>[PHP扩展]>[php-openssl]前面 ...

  3. 架构设计---soa与msa的概念(转)

    https://blog.csdn.net/qq_15001229/article/details/79535037

  4. 《ASP.NET Core In Action》读书笔记系列三 ASP.NET Core如何处理请求的?

    在本节中,您将看到ASP.NET Core应用程序如何运行的,从请求URL开始到页面呈现在浏览器中. 为此,您将看到 一个HTTP请求在Web服务器中是如何被处理的.ASP.NET Core如何扩展该 ...

  5. Jenkins连接Window服务器,上传jar并启动

    https://blog.csdn.net/achenyuan/article/details/81181347

  6. ftp 上传和下载

    ftp 下载 #!/bin/bash #auth liwei #date DATE=$(date -d today +%Y%m%d) #data files path SRCDIR=/home/web ...

  7. Keepalived配置文件详解

    global_defs { router_id LVS_$prio #节点唯一标识,通常为hostname } local_address_group laddr_g1 { ${lvs_node} # ...

  8. 小程序 components 下的组件引入字体图标时样式不生效

    在组件内的样式在引入一遍 字体图标样式, pages 下的组件不受影响,全局引入字体图标样式即刻,不需要再次引入

  9. php读取文件使用redis的pipeline(管道)导入大批量数据

    需求:需要做一个后台上传TXT文件,读取其中的内容,然后导入redis库中.要求速度快,并且支持至少10W以上的数据,而内容也就一个字段存类似openid和QQ 传统做法:我一开始做的时候就老套路,遍 ...

  10. linux 命令中英文对照,收集

    linux 命令中英文对照,收集   linux 命令英文全文 Is Linux CLI case-sensitive? The answer is, yes. If you try to run L ...