您的位置:首页 > 编程语言 > Python开发

python 入门视频学习笔记+python入门视频百度云分享

2016-11-29 11:22 537 查看
环境 : 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 流程控制 for
range(a,b,c) a = 初始值 ,默认0;  b结束值 ; c步进值,默认为1 
class12 流程控制 遍历序列

列表 :
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 return
class19 冗余参数
要将一个元组的各个元素作为参数传递到函数中,用*来传递:
t=(1,2)
def f(x,y):
      return x+y
f(*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+y
G(1,2) 返回 3

reduce 为逐次操作list里的每一项,接收参数为2个,返回一个结果
def f (x,y):
      return x*y
sum = reduce (f,(1,2,3)) 实现了3的阶乘

class 21 switch实现
from __future__ import division
5/2=2.5
python 用字典实现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%z
callablle 测试是否可被执行
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返回的是5050
class 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最大n
class 28 正则表达式-常用函数

如果有个正则表达式要被大量调用,则需要编译后使用,以提高效率。
编译方法:r1 = re.compile(r"\d{3,4}",re.I)            re.I :大小写都可以
                  r1.findall(sequence)
match 在首部匹配到后就会返回一个match对象,match.group()能返回匹配到字符串,match.end()/match.start()返回匹配的位置.没有返回none
search 在所有位置匹配,也是返回match对象,没有返回none
findall  找到所有子串,并返回列表
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: