python核心编程(基础部分)-知识点串联
2013-10-31 17:08
169 查看
对前段时间看的python核心编程进行知识点串联
一.Python基础
python的注释是#,两行代码间的连接符是\
python的通过代码块和代码组来组成结构,代码块是缩进相同的代码,代码组是跟在while,if,def,class符合语句:后的语句
不同的缩进深度区别不同的代码块,不同于C,C++等语言,不需要{}和;来实现代码的区分。
python的模块类似于java的package结构,通过import导入不同的模块,完成不同的功能。
sys模块是python最基础的模块,类似java下的System模块。
python允许多重赋值如下
python的标示符特别在于内建类型,类似全局变量的存在,在python解释器在开始导入,可重载,替换。(内建(__buildin__))
特别要注意的是专用下划线标示符
_xxx 代表无法通过from module import *导入
__xxx__ 代表系统定义的名字,一般是内建类型
__xxx 代表类中的私用变量
编程风格一般缩进空格为4格
模块布局和实例程序
python的内存管理机制:
1.变量无需事先声明
2.变量无需指定类型
3.无需关心内存管理
4.del可直接释放资源
Python的垃圾收集器是一个引用计数器和循环垃圾收集器,创建并赋值变量,引用+1,del变量,引用-1
相关工具:
调试实现:pdb
记录器:logging模块
IDE:Eclipse+pydev
二.python object
标准类型:和其他语言的区别,多出来了Complex number复数,List列表,Tuple元组,Dictionary字典。
所有python最基础的类型就是type类型,python和java一样,都是对象。
打印类型都是
<type 'type'>
<type 'type'>
type类型是其他类的元类,metaclass。
python的null值是None
python以栈帧的方式运行代码,保存上下文信息?python是C写的,应该就是写python是存储上下文的机制吧
python有一个特殊的语法,切片语法,多维sequence[start1:end1,start2:end2,...],步进sequence[start:end:step],类似如下
输出[['abc', 'def'], '789']
python不支持的类型char/byte:长度为1的字符串表示,或8位整型
python不支持指针
python整型相当于C长整型,浮点数为双精度浮点数
三.python 数字操作
需要注意的有两点,python的地板除,//舍去小数点
乘方符号**,
四.python序列
python下的字符串,列表和元组都是序列
字符串:
成员关系符(in,not in)
连接关系符(+)
重复操作符(*)
切片操作符([],[:],[::]),注意,切片操作符不会越界,怎么写都行。
字符串可直接索引
格式化字符串
字符串模板实现
unicode字符
u'huang'
说明,'''huang''
注意:python不以‘\0’结尾
列表list,可添加append,可修改,,可构建堆栈,队列
注意:列表可嵌套
元组tuple,不可修改,但可连接数据
深拷贝,与浅拷贝
=是浅拷贝,只拷贝引用,copy拷贝对象
五.映射集合
字典类型
创建,访问,更新,清除dict元素
集合类型
六.条件和循环
range()和xrange()
if,while,for,break,pass语句
迭代器iter()
列表解析
[expr for iter_ver in iterable]
[x*3 for x in range(3)]
七.文件输入输出
八.异常
try:
xxxx
except Exception,e:
xxxx
else:
xxxx(No exception)
finally:
xxxx
with语法
with open('/etc/paswd','r') as f
for eachline in f
#....
触发异常
raise exception
断言
assert 1==1
九.函数式编程
python支持内嵌函数
python支持装饰器
注意python支持可变长参数,*arg是元组,**vargs是字典
匿名函数lambda
闭包,封装函数
十.模块
十一.面向对象
对象,类,静态函数
元类
十二.执行环境
sys,os
一.Python基础
python的注释是#,两行代码间的连接符是\
python的通过代码块和代码组来组成结构,代码块是缩进相同的代码,代码组是跟在while,if,def,class符合语句:后的语句
不同的缩进深度区别不同的代码块,不同于C,C++等语言,不需要{}和;来实现代码的区分。
python的模块类似于java的package结构,通过import导入不同的模块,完成不同的功能。
import sys
sys模块是python最基础的模块,类似java下的System模块。
python允许多重赋值如下
x,y,z=1,2,3
python的标示符特别在于内建类型,类似全局变量的存在,在python解释器在开始导入,可重载,替换。(内建(__buildin__))
特别要注意的是专用下划线标示符
_xxx 代表无法通过from module import *导入
__xxx__ 代表系统定义的名字,一般是内建类型
__xxx 代表类中的私用变量
编程风格一般缩进空格为4格
模块布局和实例程序
# -*- coding: utf-8 -*- #可以输入中文了 '''这是一个测试模块''' import sys#引入模块 import os#引入模块 debug = True#全局变量 class Fooclass(object):#基类是object,object就是__buildin__内建引入的全局变量 '''本类的功能是xxx''' pass#注意什么都不写会报错,就算什么都不做,在python下也要写一个pass def test():#后面是代码组 '''test the fuction''' foo=Fooclass()#无需类型标识,自动识别,但是注意,这并不代表python下没有类型。 if debug: print 'run_test()' if __name__== '__main__': #__name__是python的保留属性,代表模块的名字,如果是__main__代表从本模块启动程序,否则一般情况下为模块的名字 test()
python的内存管理机制:
1.变量无需事先声明
2.变量无需指定类型
3.无需关心内存管理
4.del可直接释放资源
Python的垃圾收集器是一个引用计数器和循环垃圾收集器,创建并赋值变量,引用+1,del变量,引用-1
相关工具:
调试实现:pdb
记录器:logging模块
IDE:Eclipse+pydev
二.python object
标准类型:和其他语言的区别,多出来了Complex number复数,List列表,Tuple元组,Dictionary字典。
所有python最基础的类型就是type类型,python和java一样,都是对象。
print type(object) print type(type)
打印类型都是
<type 'type'>
<type 'type'>
type类型是其他类的元类,metaclass。
python的null值是None
python以栈帧的方式运行代码,保存上下文信息?python是C写的,应该就是写python是存储上下文的机制吧
python有一个特殊的语法,切片语法,多维sequence[start1:end1,start2:end2,...],步进sequence[start:end:step],类似如下
mylist=['123','456','789',['abc','def']] print mylist[3:1:-1]
输出[['abc', 'def'], '789']
python不支持的类型char/byte:长度为1的字符串表示,或8位整型
python不支持指针
python整型相当于C长整型,浮点数为双精度浮点数
三.python 数字操作
需要注意的有两点,python的地板除,//舍去小数点
乘方符号**,
四.python序列
python下的字符串,列表和元组都是序列
字符串:
成员关系符(in,not in)
连接关系符(+)
重复操作符(*)
切片操作符([],[:],[::]),注意,切片操作符不会越界,怎么写都行。
字符串可直接索引
str1='abc' str2='xyz' str3=str1+str2 #连接符 str4=str1*3 #重复三个 str5=str5[1:3] #切片符 print str1 < str3 and str1=='abc' print 'bc' in 'abcd'
格式化字符串
print '%d' % 10 #类似于C语言
字符串模板实现
from string import Template s=Template('There are $(many) $(lang) Quotation Symbols' print s.subsititue(many=3,lang='python')
unicode字符
u'huang'
说明,'''huang''
注意:python不以‘\0’结尾
列表list,可添加append,可修改,,可构建堆栈,队列
注意:列表可嵌套
元组tuple,不可修改,但可连接数据
深拷贝,与浅拷贝
=是浅拷贝,只拷贝引用,copy拷贝对象
五.映射集合
字典类型
创建,访问,更新,清除dict元素
集合类型
六.条件和循环
range()和xrange()
if,while,for,break,pass语句
迭代器iter()
列表解析
[expr for iter_ver in iterable]
[x*3 for x in range(3)]
七.文件输入输出
八.异常
try:
xxxx
except Exception,e:
xxxx
else:
xxxx(No exception)
finally:
xxxx
with语法
with open('/etc/paswd','r') as f
for eachline in f
#....
触发异常
raise exception
断言
assert 1==1
九.函数式编程
python支持内嵌函数
# -*- coding: utf-8 -*- import sys def function(): '''innerfunction''' def inner_fuc(): print 'innerfunc' print 'func' inner_fuc() function()
python支持装饰器
def deco(arg): def _deco(func): def __deco(): print("before %s called [%s]." % (func.__name__, arg)) func() print(" after %s called [%s]." % (func.__name__, arg)) return __deco return _deco @deco("mymodule") def myfunc(): print(" myfunc() called.") @deco("module2") def myfunc2(): print(" myfunc2() called.") myfunc() myfunc2()
# -*- coding:gbk -*- '''示例6: 对参数数量不确定的函数进行装饰, 参数用(*args, **kwargs),自动适应变参和命名参数''' def deco3(func): def _deco(*args, **kwargs): print("before %s called." % func.__name__) ret = func(*args, **kwargs) print(" after %s called. result: %s" % (func.__name__, ret)) return ret return _deco @deco def myfunc4(a, b): print(" myfunc(%s,%s) called." % (a, b)) return a+b @deco def myfunc5(a, b, c): print(" myfunc2(%s,%s,%s) called." % (a, b, c)) return a+b+c myfunc4(1, 2) myfunc4(3, 4) myfunc5(1, 2, 3) myfunc5(3, 4, 5)
注意python支持可变长参数,*arg是元组,**vargs是字典
匿名函数lambda
lambda x,y=2:x+y def add(x,y=2): return x+y
闭包,封装函数
十.模块
十一.面向对象
对象,类,静态函数
元类
十二.执行环境
sys,os
相关文章推荐
- 房上的猫:java基础知识部分知识点
- Web前端开发精品课HTML CSS JavaScript基础教程CSS部分知识点总结
- 知识点总结: Java 面试宝典 2013版(超长版) - Java 基础部分
- Unity 3D 基础部分91个知识点的学习笔记
- 给Java新手的一些建议——Java知识点归纳(Java基础部分)
- 2016年末,Android岗位BAT等大厂面试题知识点小结(一)Android基础部分
- 给Java新手的一些建议——Java知识点归纳(Java基础部分)
- 给Java新手的一些建议——Java知识点归纳(Java基础部分)
- Java面试笔试知识点之基础部分1
- Python编程中容易被忽略的小知识点(一)(基础知识部分)
- Java知识点归纳(Java基础部分)
- 给Java新手的一些建议——Java知识点归纳(Java基础部分)
- 收集Java面试题知识点(Java基础部分三)
- Java 基础部分知识点
- Java面试笔试知识点之基础部分2
- 给Java新手的一些建议----Java知识点归纳(Java基础部分)
- 给Java新手的一些建议——Java知识点归纳(Java基础部分)
- 给Java新手的一些建议----Java知识点归纳(Java基础部分)
- 给Java新手的一些建议——Java知识点归纳(Java基础部分)
- javase基础的部分知识点总结图