环境 : python 2.6.6

本人在学习本视频前已经有过一段时间的python程序开发经验,当时是为了项目赶鸭子上炕,现在稍微闲点,就老老实实从头学一下,把在视频里新了解到的知识做了点笔记,方便以后自己温故,文尾有视频的百度云分享链接,感谢中谷教育的视频!!!

class 1 走进python

python : 蟒蛇 ;1989 guido在阿姆斯特丹为开发另一款ABC语言创造的辅助脚本。

面向对象、解释型、高级程序开发语言、脚本语言:不需要编译只需要解释器便可在各大系统里运行。


class 2 开始编程吧

如果要在./x.py来直接运行Python文件,需要在.py文件上开头加上 : # !/usr/bin/python (python.exe 的 路径)

python源代码可以通过编译转换成字节文件 .pyc / 优化代码.pyo:

import py_compile

py_compile.compile("x.py")

---------------------------------------

在命令行执行 : python -o -m py_compile x.py


class3 变量

python的存储空间是根据数值来定的,而不是变量本身,变量只是数值的一个标签,即如果两个变量的数值一样,那么它们所在的存储空间就一样,故而同一数值可以有多个标签。

用id()方法来查看存储空间位置


class4 运算符

整除 // ; 取余 % ; 3/2=1 ; ** 指数运算

按位 与 & 或 | 异或 ^ 翻转 ~

键盘输入 raw_input ("please rout in ")


class5 数据类型

type() 查看数据类型

定义长整型 a= 123L 变量类型完全由数值的类型决定

支持复数类型 : complex : a= 2e - 2.4j

字符串 :

a= 'let us go '

a = " let's go "

a= " let \" us \" go" \ 转义字符a

a= ''' ''' 内容自动转义

对字符串的切片 : 字符串每个字符是列表的一元。

a[::2]每两步一取

a[-1]最后一元

倒着取: a[::-1]


class6 元组 cmp(,) 比较两个序列的值,结果返回-1,0,1三种 情况 元组 (tuple)和 字符串一样也是一种序列,但元组方便的是它的元素可以是不同类型的数值,比如t = (10,“w”) ( ) 、(3,)都是元组,(3)是int. 元组和字符串的值都不可以改变,即tuple[1]=会是个错误。 a,b,c=1,2,3 a,b,c = (1,2,3)
class7 列表 list 列表,list.append() list.remove(value) del(list[ ]),列表的值可以改变 zip可以整合两个序列(列表,元组) a=[1,2] ,b=[a,b,c] ,zip(a,b) ,返回的是[ (1,a),(2,b)] python3有些区别,zip返回的是一个可遍历的对象,需要list(zip)来手动来重构列表 这样的麻烦可以用字典dict来一次性解决
class8 字典 dict 字典里元素的排序是无序,可能增加一个key后,排列顺序就变了。 dict.keys()返回的是一个元组:dict_key([keys]) 打印键值 for k in dict : print(k) dict.pop(key) 弹出:把key删除,并返回这个key对应的value dict.get(key,'error') 取一个键值对应的value,如果key不存在,返回"error"
class9 流程控制——ifelse nothing class10 流程控制-逻辑符 nothing
class11 流程控制 forrange(a,b,c) a = 初始值 ,默认0; b结束值 ; c步进值,默认为1class12 流程控制 遍历序列
列表 :for i in "hello": print(i)for k in "hello": print("hello"[k])字典:for i in a : print (a[i])for i in a.values(): print(i)for i in a.keys(): print(a[i])class13 循环控制for **** : *********** if ********** break if ******** continue 跳过当前循环的剩下代码 else :这else是指for循环遇到break 结束后执行。 pass 代替站位 exit() 结束整个程序class14 while break 退出x = raw_input(),x就是用户输入的数据。class15函数定义与调用
#coding:utf8#coding=utf8#encoding:utf8#encoding=utf8#-*-coding:utf8-*-class16函数形参实参默认参数当一个函数有多个参数时,默认参数(缺省参数)必须放在最后面class17变量的作用
global 可在函数里强制定义全局变量class18 returnclass19 冗余参数要将一个元组的各个元素作为参数传递到函数中,用*来传递:t=(1,2)def f(x,y): return x+yf(*t)
而字典:用**def f (x=1,*args,**kwargs)f(1,2,3,4,5,y=20,z=10) => x=1,args = (2,3,4,5),kwargs = {'y':20,'z':10}f(1,2,3,4,5,x=11,y=20,z=10) =>出错,x重复赋值class20 lambda-匿名函数
lambda 用一行语句快速创建函数对象G = lambda x,y :x+yG(1,2) 返回 3
reduce 为逐次操作list里的每一项,接收参数为2个,返回一个结果def f (x,y): return x*ysum = reduce (f,(1,2,3)) 实现了3的阶乘
class 21 switch实现from __future__ import division5/2=2.5python 用字典实现switch ;{1:case ,2 :case}.get(x,lambda*args,**key:)()
class 22 内建函数abs() / max() / min() / len()divmod (5,2 ) 求商取余 (2,1) help(divmod)pow (x,y,[,z]) return x**y%zcallablle 测试是否可被执行type :查找类型isinstance(l,type) :判断l是否是这个类型cmp 比较两个对象类型转换; int() ,str() ,float(),complex()class 23 内建函数-字符串的处理
str.capitalize:首字母大写str.raplace(x,y,z),用y代替x,代替z词s="192.168.1.1"s.split('.',3) ,返回的是一个列表【192,168,1,1】,3表示切割3次class 24内建函数-序列的处理
filter(function,sequence):将sequence里的值依次放入function,如果返回true,就保留zip,将多个列表遍历,个数以最少的列表为准,map(none,list1,list2,list3)将多个列表遍历,个数以最多的列表为准,缺的用none代替map(function,list1,list2)将多个列表遍历,结果依次作为参数代入函数,函数执行结果返回reduce(function,sequence),function(x,y) : return x+y, sequence = range(0,101),则结果reduce返回的是5050class 25 包和模块
当程序调用模块时先去程序所在的目录寻找class 26 正则表达式
正则表达式 是一种普遍存在程序设计中的小型语言,正则表通常被用来检索、替换那些符合某个模式(规则)的文本在Python中就是re模块,其中规则要用r标识,如r= r"^d"正则匹配:re.findall(r,sequence)元字符 :[ ] : 常用来指定一个字符集:[abc];[a-z],元字符在字符集中不起作用:[akm$];补集匹配不在区间范围:[^5]^ :匹配行首$ :匹配行尾
class 27正则表达式-元字符
\ :包含部分特殊字符号集合,或取消所有字符:\d 任何十进制数\D 不包括任何数字\s 匹配任何空白字符\S 匹配任何非空白字符\w 匹配任何字母数字字符\W匹配任何非字母数字字符{n } :匹配把前一个字符重复n编* :指定前一个字符重复0次或者更多次 , {0,}+ :指定前一个字符重复1次或者更多次, {1,}?:指定前一个字符重复0次或者1次,还可以使匹配进入最小匹配。{0,1}{m,n} : 匹配重复次数在最小m最大nclass 28正则表达式-常用函数
如果有个正则表达式要被大量调用,则需要编译后使用,以提高效率。编译方法:r1 = re.compile(r"\d{3,4}",re.I) re.I :大小写都可以 r1.findall(sequence)match 在首部匹配到后就会返回一个match对象,match.group()能返回匹配到字符串,match.end()/match.start()返回匹配的位置.没有返回nonesearch 在所有位置匹配,也是返回match对象,没有返回nonefindall 找到所有子串,并返回列表finditer找到所有子串,并返回迭代器,用next()函数来显示每一个子串,其中子串都是以match对象形式返回
sub :根据正则替换,r"c..t",ct之间有任何两个字符都可以被替换subn ; 在sub的基础上同时在最后也会返回替换的次数split :根据正则内容切割dir(re)可以查看re模块的内容。
class 29正则表达式-re属性
re.I,不分大小写re 会用.匹配所有的字符,除了转义字符,但用了re.S后,可以匹配re.M 匹配多行目标时会使用,忽略换行符re.X 使正则表达式本身忽略换行符() :在正则分组,如r"\w{3}@\w+(\.com | \.cn",如果用match返回整个正则的匹配结果,而用findall匹配时,优先返回只是匹配分组中正则表达式的子串。class 30 爬虫
读取网页源代码:page = urllib.open(url)page.read()匹配图片jpg的正则表达式,用分组只返回图片的网址r = r'src="(.*?\.jpg)"width'下载图片:urllib.urlretrieve(imagurl,name)

视频百度云分享:(给同样需要入门的小白)
http://pan.baidu.com/share/link?shareid=3378420592&uk=3392011579

更多相关文章

  1. python cookboo 文件与IO 函数
  2. 在Python中强制使用函数参数类型?
  3. Python(名称空间、函数嵌套、函数对象)
  4. python 字符串操作
  5. python中函数参数传递的几种方法
  6. python函数篇0-2
  7. Python的范围函数如何工作?
  8. 为什么Python的eval()拒绝这个多行字符串,我如何修复它?
  9. Python日期和时间函数

随机推荐

  1. 自学党/野生猿,项目经验上哪搞?
  2. 2.20 从本质上理解虚拟机快照以及操作演
  3. WebAssembly试玩
  4. 【荐读】基于文本数据的消费者洞察
  5. 学习Linux的第6天
  6. linux学习笔记(三)
  7. [转]Android(安卓)WiFi 电源管理
  8. 羊老姆上线:抄起键盘就编译JDK源码,结果上
  9. 函数的学习
  10. rollup是面向library的?!