python 学习笔记 3 ----> dive into python 3
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的更多相关文章
- python 学习笔记 5 ----> dive into python 3
字符串 文本:屏幕上显示的字符或者其他的记号 计算机认识的东西:位(bit)和字节(byte) 文本的本质:某种字符编码方式保存的内容. 字符编码:一种映射(显示的内容 ----> 内存.磁盘 ...
- python 学习笔记 4 ----> dive into python 3
解析 列表解析.字典解析.集合解析 浏览本地文件系统的模块: 1 os 2 os.path 3 glob os模块:获取(和修改)本地目录.文件进程.环境变量等信息 os.path模块:包含了操作路径 ...
- python 学习笔记 2 ----> dive into python 3
Python Shell idle的使用 >>> >>>help() ----> help> 可以在help这个工具中查找Python内置函数的文档等等 ...
- python学习笔记:安装boost python库以及使用boost.python库封装
学习是一个累积的过程.在这个过程中,我们不仅要学习新的知识,还需要将以前学到的知识进行回顾总结. 前面讲述了Python使用ctypes直接调用动态库和使用Python的C语言API封装C函数, C+ ...
- [Python学习笔记][第七章Python文件操作]
2016/1/30学习内容 第七章 Python文件操作 文本文件 文本文件存储的是常规字符串,通常每行以换行符'\n'结尾. 二进制文件 二进制文件把对象内容以字节串(bytes)进行存储,无法用笔 ...
- [Python学习笔记][第五章Python函数设计与使用]
2016/1/29学习内容 第四章 Python函数设计与使用 之前的几页忘记保存了 很伤心 变量作用域 -一个变量已在函数外定义,如果在函数内需要修改这个变量的值,并将这个赋值结果反映到函数之外,可 ...
- [Python学习笔记][第四章Python字符串]
2016/1/28学习内容 第四章 Python字符串与正则表达式之字符串 编码规则 UTF-8 以1个字节表示英语字符(兼容ASCII),以3个字节表示中文及其他语言,UTF-8对全世界所有国家需要 ...
- Python学习笔记:第一天python基础
目录 1. python简介 2. python的安装 3. 编写第一个helloword 4. 变量和常量 5. 数据类型 6. 输入 7. if语句 1. python简介 python是在198 ...
- Python学习笔记(四)Python程序的控制结构
在学习了 Python 的基本数据类型后,我们就要开始接触Python程序的控制结构,了解 Python 是如何使用控制结构来更改程序的执行顺序以满足多样的功能需求.如果有的小伙伴在之前学过C语言,j ...
随机推荐
- 与图论的邂逅04:LCT
本着对数据结构这一块东西的一股兴趣,最近在集训的百忙之中抽空出来学LCT,终于学懂了这个高级玩意儿. 前置知识:Splay和树链剖分 Splay挺复杂的......这里就先不写,不然篇幅太大.树链剖分 ...
- 我与C++的初识
Q1:学习<C++语言程序设计>课程之前,你知道什么是编程吗?谈谈上这门课之前你对编程的理解,以及你对自己编程能力的评估. A1:在学习<C++语言程序设计>课程之前,我其实对 ...
- 下载caffe慢
国内在github上下载软件慢,应在gitee下载git clone https://gitee.com/cuibixuan/caffe.git
- Excel无法打开文件xxx.xlsx,因为文件格式或文件扩展名无效。请确定文件未损坏,并且文件扩展名与文件的格式匹配
office版本:2016 系统版本:win10 问题描述: 1.桌面新建excel表格后,打开时,提示“Excel无法打开文件xxx.xlsx,因为文件格式或文件扩展名无效.请确定文件未损坏,并且文 ...
- [批处理]守护NodeJS进程
背景: 日常进行CI过程中,使用NodeJs方式:GIT更新->检测是否需要编译->调用IncrediBuilder编译->读取编译日志判断是否通过->调用7z打包 问题: 持 ...
- 为fastdfs文件服务器新增一个storage
一.前言: 前期,已经搭建好了一套fastdfs文件服务器,一个tracker和一个storage,且部署在同一台服务器上,已经正式投入运行快半年了,1T的空间现在只剩下100G容量了,现在需要扩容, ...
- redis-使用问题
记录一下相关的问题,使用参考http://www.runoob.com/redis/ 1.DENIED Redis is running in protected mode 这个是启用了保护模式,这个 ...
- JS----对象的合并与克隆
一. 合并与克隆的差别 1. 克隆是特殊的合并(以空对象作为目标对象,非空对象作为源对象进行合并),克隆要求目标对象与源对象的 constructor相同. 2. 克隆的源对象只有一个,合并的源对象可 ...
- tomcat启动命令行中文乱码
1.找到${CATALINA_HOME}/conf/logging.properties 2.添加语句:java.util.logging.ConsoleHandler.encoding = GBK ...
- python numpy 科学计算通用函数汇总
import numpy as np #一元函数 #绝对值计算 a = -1b = abs(a)print(b)输出: 1 #开平方计算 a = 4b = np.sqrt(a)print(b)输出: ...