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. 与图论的邂逅04:LCT

    本着对数据结构这一块东西的一股兴趣,最近在集训的百忙之中抽空出来学LCT,终于学懂了这个高级玩意儿. 前置知识:Splay和树链剖分 Splay挺复杂的......这里就先不写,不然篇幅太大.树链剖分 ...

  2. 我与C++的初识

    Q1:学习<C++语言程序设计>课程之前,你知道什么是编程吗?谈谈上这门课之前你对编程的理解,以及你对自己编程能力的评估. A1:在学习<C++语言程序设计>课程之前,我其实对 ...

  3. 下载caffe慢

    国内在github上下载软件慢,应在gitee下载git clone https://gitee.com/cuibixuan/caffe.git

  4. Excel无法打开文件xxx.xlsx,因为文件格式或文件扩展名无效。请确定文件未损坏,并且文件扩展名与文件的格式匹配

    office版本:2016 系统版本:win10 问题描述: 1.桌面新建excel表格后,打开时,提示“Excel无法打开文件xxx.xlsx,因为文件格式或文件扩展名无效.请确定文件未损坏,并且文 ...

  5. [批处理]守护NodeJS进程

    背景: 日常进行CI过程中,使用NodeJs方式:GIT更新->检测是否需要编译->调用IncrediBuilder编译->读取编译日志判断是否通过->调用7z打包 问题: 持 ...

  6. 为fastdfs文件服务器新增一个storage

    一.前言: 前期,已经搭建好了一套fastdfs文件服务器,一个tracker和一个storage,且部署在同一台服务器上,已经正式投入运行快半年了,1T的空间现在只剩下100G容量了,现在需要扩容, ...

  7. redis-使用问题

    记录一下相关的问题,使用参考http://www.runoob.com/redis/ 1.DENIED Redis is running in protected mode 这个是启用了保护模式,这个 ...

  8. JS----对象的合并与克隆

    一. 合并与克隆的差别 1. 克隆是特殊的合并(以空对象作为目标对象,非空对象作为源对象进行合并),克隆要求目标对象与源对象的 constructor相同. 2. 克隆的源对象只有一个,合并的源对象可 ...

  9. tomcat启动命令行中文乱码

    1.找到${CATALINA_HOME}/conf/logging.properties 2.添加语句:java.util.logging.ConsoleHandler.encoding = GBK ...

  10. python numpy 科学计算通用函数汇总

    import numpy as np #一元函数 #绝对值计算 a = -1b = abs(a)print(b)输出: 1 #开平方计算 a = 4b = np.sqrt(a)print(b)输出: ...