python编程入门读书笔记2

数据结构

python中两大主力数据结构是列表和字典。列表按顺序存储数据,而字典像小型数据库,使用键高效的存储和检索数据。

type函数可以检查值或变量的数据类型。

序列是一组按顺序排列的值,python中有3种内置的序列类型:字符串、元组和列表。第一个正索引为0,指向左端。第一个负索引为-1,指向右端。也可使用切片表示法复制子序列,例如s[begin:end]从索引begin复制到end-1的元素。可使用+和*进行拼接,要进行拼接序列的类型必须相同,不能元组和列表进行拼接。可使用len函数进行计算长度。表达式xin
s检查序列s是否包含元素x,如果包含返回True否则返回False。

元组

元组是一种不可变序列,包含零个或更多个值。元组用圆括号括起,其中元素用逗号分隔。如果要修改元组,就必须创建一个体现更改的新元组。如果需要频繁修改就将元组换成列表。单元素元组后面必须有逗号分隔。

x in tup#如果x是tup的元素返回True

len(tup)#元组tup包含的元素数

tup.count(x)#元素x在元组tup中出现的次数

tup.index(x)#元组tup中第一个元素x的索引

列表

列表是可变的,可在不复制的情况下,添加、删除或修改列表元素。列表用方括号括起其中元素用逗号分隔,列表可包含任何类型的值,空列表用[]表示。在处理列表的程序查找错误时,通常必须明白列表元素指向其值,而不是包含它们。当列表中有元素指向自身时,python能够识别出自引用。函数reverse不会制作列表的拷贝,而是直接删除列表的元素,因此我们说反转是就地完成的。

s.append()#在列表s末尾添加元素x

s.count()#返回元素x在列表s中出现的次数

s.extend(lst)#将lst中所有元素都添加到s中

s.index(x)#返回第一次x的索引

s.insert(i,x)#将元素x插入到索引i指定的元素前面,结果s[i]== x

s.pop(i)#删除并返回s中索引为i的元素

s.remove(x)#删除s中的第一个x元素

s.reverse()#反转s中元素的排列顺序

s.sort()#将s中的元素按升序排列

列表解析,也可使用列表解析进行筛选

n*n for n in range(1,11)

2*n+7 for n in range(1,11)

n**3 for n in range(1,11)

n for n in nums if n>0

c for c in s if c.lower()

c for c in s if c.lower() not in ‘aeiou’

字典

在存储键值对方面,python字典是一个效率极高的数据结构。字典也称为关联数组、散列表。字典利用了一个巧妙的编程诀窍-散列。从本质上说,字典的每个键值都被转换为一个数字-散列值。访问值时将提供的键值转换为散列值,再跳到列表相应的位置上。

字典中的键必须是独一无二的,而且键是不可变的。如果你预先不知道某个值是否包含在字典中,可使用keyin d进行检查。如果key包含在字典d中则返回True。

d.items()#返回一个由字典d的键值对组成的视图

d.keys()#返回一个由字典d的键组成的视图

d.values()#返回一个由字典d的值组成的视图

d.get(key)#返回与key相关联的值

d.pop(key)#删除键key并返回与之想关联的值

d.popitem()#返回字典d中的某个键值对

d.clear()#删除字典d的所有元素

d.copy()#复制字典d

d.fromkeys(s,t)#创建一个新字典,其中的键来自s,值来自t

d.setdefault(key,v)#如果key包含在字典d中则返回其值,否则返回v并将(key,v)添加到字典d中。

d.update(e)#将e中的键值对添加到字典d中,e可能是字典,也可以是键值对序列。

集合

集合是一系列不重复的元素。集合类似于字典,但只包含键,而没有相关联的值。集合分两类:可变集合和不可变集合。集合最常用的的功能就是删除序列中的重复元素。

输入和输出

python提供了强大的基本文件I/O支持。

设置字符串格式

x= 1/81

print(x) #0.0123456790123

print(‘value:%.2f’%x)#0.01

print(‘value:%.5f’%x)#0.01235
d整数

o八进制

x小写十六进制

X大写十六进制

e小写科学计数法浮点数

E大写科学计数法浮点数

F浮点数

s字符串

%%字符
也可以使用format函数进行字符串的格式整理。

‘my{0} has {1}’.format(‘dog’,’fleas’)

输出:’mydog has fleas’

‘1/81= {x}’.format(x = 1/81)

输出:’1/81= 0.0123456790123’

‘num= {x:.{d}f}’.format(x = 1/81,d = 3)

输出:’num= 0.012’

‘num= {x:.{d}f}’.format(x = 1/81,d = 4)

输出:’num= 0.0123’

可以通过其设置精度,如果这都满足不了你,那么还有最后一招了,模块啊,可以使用Cheetah模块或者Django模块。

读写文件

文件是一个命名的比特集合,存储在硬盘、U盘、内存条等辅助存储设备中。文件分为两类:文本文件和二进制文件。其中前者本质上是存储在磁盘中的字符串,后者是其他各种内容。

os.getcwd()#返回当前工作目录的名称

os.listdir(p)#返回一个字符串列表,其中包含路径p指定的文件夹中所有文件名称

os.chdir(p)#将当前工作目录设置为路径p

os.path.isfile(p)#当路径p指定的是一个文件的名称,返回True

os.path.isdir(p)#当路径p指定的是一个文件夹的名称,返回True

os.stat(fname)#返回有关fname的信息,如大小和最后一次

如果只是想获悉当前工作目录下的.py文件,可使用下方的函数。

def list_py(path = None):

     if path == None:

<pre name="code" class="html">     path= os.getcwd()

<pre name="code" class="html">     return[fname for fname in os.listdir(path)
     if os.path.isfile(fname)

     if fname.endswith(‘.py’)]


返回当前工作目录中所有文件的大小总和。

def size_in_bytes(fname):

     return os.stat(fname).st_size

def cwd_size_in_bytes():

     total= 0

     for name in files_cwd():

          total= total + size_in_bytes(name)

     return total

处理文本文件

逐行读取文本文件

#r读取w写入a在文件末尾输入b二进制模式t文本模式+为读写打开文件

def print_file1(fname):

     f= open(fname,’r’)

     for line in f:

          print(line,end= ‘’)

     f.close()
f.read()#读取文件

f.write(‘helloworld! \n’)#写入文件

f.seek(0)#让文件指针指向文件开头

pickle

pickle.dump将数据结构存储到磁盘中,之后可以使用pickle.load从磁盘获取数据结构。

读取网页

通过urllib模块

时间: 2024-10-10 20:03:04

python编程入门读书笔记2的相关文章

python编程入门读书笔记1

python适合用来做什么呢? 脚本,这些简短的程序自动执行常见的管理任务,如在系统中新增用户.上传文件到网站.不使用浏览器浏览网页等. 网站开发,作为快速创建动态网站的工具,Django.bottle.Zope等python项目深受开发人员欢迎. 文本处理,python在字符串和文本文件处理方面提供了强大的支持,包括正则表达式和unicode. 科学计算,网上有很多卓越的python科学计算库,提供了统计.数学计算和绘图的函数. 教育,鉴于python的简洁实用,学校可以将其作为第一门编程语言

OpenCV3编程入门--读书笔记

一.OpenCV概述 1.OpenCV全程Open Source Computer Vision Library,即开源计算机视觉库.它是一个跨平台的开源计算机视觉库,可以运行在windows.linux.Mac OS.Android.iOS等操作系统上.OpenCV用C/C++编写,轻量且高效,还支持使用C#.Ch.Ruby等编程语言,同时提供对Python.Ruby.MATLAB等语言的接口. OpenCV官方主页:http://opencv.org OpenCV Github主页:http

OpenCV3编程入门-读书笔记3-滤波

一.领域滤波(卷积) 邻域算子值利用给定像素周围像素的值决定此像素的最终输出.如图左边图像与中间图像卷积得到右边图像.目标图像中绿色的像素由原图像中蓝色标记的像素计算得到. 通用线性邻域滤波是一种常用的邻域算子,输入像素加权得到输出像素: 其中权重核   为"滤波系数".上面的式子可以简记为: 二.线性滤波 1.方框滤波(box Filter) 最简单的线性滤波是移动平均或方框滤波,用 K*K窗口中的像素值平均后输出,核函数为: 其实等价于图像与全部元素值为1的核函数进行卷积再进行尺度

OpenCV3编程入门读书笔记2-core组件

一.颜色空间缩减 1.概念 如果图像是3通道,深度为1个字节,则每个像素有256*256*256种可能值,这么多的可能值会对算法性能造成严重影响.利用颜色空间缩减就能解决这个问题,例如将颜色值0~9取为新值0,10~19取为10,以此类推,这样每个像素有26*26*26种可能值,比上面的可能值要小很多. 2.公式 P_New = ( P_Old / divide ) * divide   (P表示像素值) 3.处理 如果对原图像每个像素都进行上面的公式运算,运算量将非常大.可以将0~255这25

Python编程入门到实践 - 笔记(1,2章)

自学 Python 有段时间了,总是觉得自己基础不牢,想着把看完的两本基础书写个博客做个笔记啥的. 准备在重新看一遍<Python编程入门到实践>,坚持写博客笔记. Python编程入门到实践的前两章笔记,学习的内容如下: 查看当前环境中的 python 版本 python环境的搭建 变量和变量的命名 字符串的打印 修改字符串的大小写 制表符和换行符 删除空白字符 python的整数运算,计算平方,立方 使用 str() 函数 查看当前环境中的 python 版本 命令行下输入 python 

【转】《windows核心编程》读书笔记

这篇笔记是我在读<Windows核心编程>第5版时做的记录和总结(部分章节是第4版的书),没有摘抄原句,包含了很多我个人的思考和对实现的推断,因此不少条款和Windows实际机制可能有出入,但应该是合理的.开头几章由于我追求简洁,往往是很多单独的字句,后面的内容更为连贯. 海量细节. 第1章    错误处理 1.         GetLastError返回的是最后的错误码,即更早的错误码可能被覆盖. 2.         GetLastError可能用于描述成功的原因(CreatEvent)

《C#高级编程》读书笔记

<C#高级编程>读书笔记 C#类型的取值范围 名称 CTS类型 说明 范围 sbyte System.SByte 8位有符号的整数 -128~127(−27−27~27−127−1) short System.Int16 16位有符号的整数 -32 768~32 767(−215−215~215−1215−1) int System.Int32 32位有符号的整数 -2 147 483 648~2 147 483 647(−231−231~231−1231−1) long System.Int

Unix编程艺术读书笔记(一)

 Unix编程艺术读书笔记(一)这本书是一位面试官告诉我的,很感谢他的指点,关于面试的详细过程,我想以后再写,当然我也意识到自己的不足,一方面是面试的技巧,还有一方面就是学习的方法.阅读这本书很享受,加上之前的积累,一些疑惑,还有一些基础的不足,在这本书里找到了归宿. 下面,一起来享受这本书的精华吧 Unix诞生与1969年,那时候我们还在闹文革吧,可一个可以改变21世纪甚至更远的未来的操作系统问世,至少现在的Linux是基于Unix的设计哲学.Unix是唯一一个在不同种类的计算机,众多厂商

Javascript DOM 编程艺术读书笔记16/04/01

愚人节快乐 开始用webstorm了,随着学习深入,代码越来越长,因为不借助ide还真是挺难的 今天发现了一个严重的误区,text和textNode是完全不同的两个概念,之前没有特别注意,写代码很容易跳过createTextNode直接用parentNode.appendChild(text) 单独拎出来晒一晒,以后引以为戒 Javascript DOM 编程艺术读书笔记16/04/01