python基础概念
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python基础概念相关的知识,希望对你有一定的参考价值。
2016.5.21
1. 一切皆对象:
在python中都是对象,对象类型的赋值类似于 c 语言的指针
2.数字类型
-
decimal:
将相应的函数改名使用:from decimal import Decimal as D eg:D(‘0.3‘)/D(3) 统计运行时间:python -mtimeit -s "from decimal import Decimal as D" D(‘1.2‘)+D(‘3.4‘) 由此可以发现decimal非常地耗费时间
-
常用库:
dir(math) help(math) #z:上一页 w:下一页 q:退出 math: import math math.pi math.sprt(80) math.log10(2**1000) math.pow(x,y) math.factorial(x) #连乘 random: import random random.random() #0~1之间的随机数 random.choice([1,2,3,4]) random.randint(a,b) random.uniform(a,b) random.gauss(mu,lamda) numpy: 产生数组和矩阵,正太分布的随机数 矩阵运算,求逆,转置等 scipy:拟合,线性插值,样条插值,积分,微分...
3.字符串
切片,索引
常用方法集合:
+ * s.upper() s.find(‘f‘) s.replace(‘python‘,‘java‘)
print "%s like %s" %(‘we‘,‘python‘)
import re:regular expression
^ start
$ end
. except
+ 1-inf
* 0-inf
? 0-1
[] or
{} repeat
[^] not
| or
\w [a-zA-Z0-9_], (not)\W
\d [0-9], (not)\D
\s [ \t\n\r\f\v], (not)\S
\b word boundary
\B not \b
\A input start, ^
\Z input end, $
* 0~inf greedy
+ 1~inf greedy
*? 0~inf non-greedy
+? 1~inf non-greedy
() group #用于区分域名之类的有帮助
(?P<name>pattern)
等价(re.X:去掉中间的空格,换行符和注释等,还有其他的编译选项):
a = re.compile(r"""\d + # 整数部分
\. # 小数点
\d * # 小数部分
""", re.X)
b = re.compile(r"\d+\.\d*")
4.日期和时间
- datetime:
-
time:
这个部分暂时不用太细致,之后用到的时候再直接用就可以了
2016.5.22
5.列表
切片,索引,引用
常用操作:
6.元组
不可变的列表:不可原处修改
常用操作: 转换tuple 计数count + *
7.字典
key-value:关键字和值之间相对应
常用操作:keys values get update del clear 嵌套
特点:
没有顺序的数据结构,类似于c中的散列表,适合插入查询操作
key为不可变对象
8.文件
常用操作:
open(path,‘r‘) #r:r w a
read readline write close
中文支持:
import codecs
f=codecs.open(filename,mode,encoding)
文件操作:
import os
os.path.exists(filename)
os.rename(old,new)
shelve库:
import shelve
D = Shelve.open(file) #读到字典中
Pickle/cPickle #cPickle更底层所以更快
import cPickle
f = open(file,mode)
cPickle.dump(obj,f) #先入先出
obj = cPickle.load(f)
9.语句表达式
赋值
输入input:raw_input():当作自负串赋给后边的变量
input():运行输入的内容
3.x 输出:print([obj,...][,sep=‘‘][,end=‘\n‘][,file=sys.std.stdout])
列表解析:
可以去掉列表中的重复元素
可以简洁地用语句表达嵌套循环等,并且相应的时间会减少
异常处理:
raise:自己定义errortype的提示信息
assert condition,message:条件触发,触发后打印信息(except中打印),并终止程序
try/except:有异常时执行except
try/finally:无论如何执行 finally
10.高效做事的函数
函数语法定义:
def func_name(arguments):
statement
return x,y
x,y = func_name(para)
变量作用域:
local
encloding function locals
global(module)
build-in(python)
函数作参数:
把函数作为参数的函数叫做 高阶函数
自带高阶函数:
filter,map,reduce
2016.5.23
函数式编程
lambda
用法:lower = (lambda x,y:x if x<y else y) 返回一个函数,简化程序的编写
calc_dict={
‘+‘:lambda a,b:a+b,
‘*‘:lambda a,b:a*b,
‘-‘:lambda a,b:a-b,
}
用法:calc_dict[‘*‘](12,3)
将函数当作数据来使用
回调 callback
把上面的函数式编程的方式中的 lambda 改为 callback 函数,很符合编程标准了就!
闭包和装饰器
闭包:
绑定外部变量的函数:
外部变量在内部函数中可以以列表的方式进行访问和改变
当我们采用两层函数的时候是为了更方便地传递参数
装饰器:
无嵌套,函数作为返回值
@一个函数....return:在导入的时候就会被运行
里面有一定的学问,以后用到的时候慢慢去理解
2016.5.24
//递归
生成器和yield
迭代器:避免重复计算,只有当需要用到的时候才计算出来。惰性计算
速度简直了,当是大数据的时候,速度可以提升100甚至以上倍数
用 send 方式传送数据
以上是关于python基础概念的主要内容,如果未能解决你的问题,请参考以下文章