【exit】
退出程序
【%】
占位符:%s 【string】 %f【float】 %d【int】 isdigit:长得像数字
【print不换行】
python 2.X 版本使用逗号分割可以使print不换行 【print "hello",】
python 3.X版本利用end方法可以使print不换行 【print ("hello ",end="")】
【】
for x in y (遍历所有的y元素)
【dict字典】
访问dict列表 d = {
'Adam': 95,
'Lisa': 85,
'Bart': 59
}
for a in d:
print (a,d.get(a))
get(key值) 更新 d['Paul'] = 72
【增】
dict【元素】=*** 元素有就修改,没有就添加
dict.setdefault('','') 键存在就不改动,返回相应的值,键不存在,增加新的键值对,并返回相应的值
【删】
del dict(元素) 删除键值对 pop(元素) 删除返回值 popitem() 随机删除一个键值对 clear() 清空 del dict 删除字典
【查】
dict.key() 键 .value() 值 .Iteme()键值对 in() 查询是否存在值
【改】
dict.update(dict1) 有就更新,没有添加
【set列表】
set列表是无序排列的(可以包含前边所有的列表的格式)
set.remove(删除)
set.add(添加)
【len(计算属性的长度)】
【list切片】
print L[4:50:5]#从索引4开始,每个5位取一个,取到索引50结束,50索引不包含
【索引迭代】
enumerate(集合) dict迭代value【itervalue()or value()】
dict迭代key,value【item()or iteritems()】
【range()随机数】
range(1,100,2) {1,3,5,7,。。。}
【编写函数:def】
【列表生成式for 可以添加筛选条件,可以添加多层嵌套循环】
return [x.upper() for x in L if isinstance(x,str)]
isinstance()判断是否是字符串 upper()字母大写
【对list进行增删改】
append(默认添加到末尾) insert(index,“”) 添加到那个索引 list.extend(list1) 将两个列表合成一个
remove(“”) 直接删除那个元素 b= pop(1,“””) 删除那个索引值的元素,可以将这个元素取出 del 什么都能删除,包括这个对象 .clear 清空
【对list进行查询】
list.count(元素) 查找列表中同一元素的个数
list.index(元素) 查找列表的的元素索引值
【sort】
没有返回值
数字按照从小到大排序,字符按照Ascll排序
【reverse】
list 反序摆列
【enumerate】
一个可以添加索引值的方法 enumerate(list,1)
【字符串拼接】
‘’.join(【a,b,c】)
center(50,'')
【endswith() / startswith】 以什么开头/结尾 【find】 查找元素返回索引值 【isdigit】判断是否是数字 【islower/ isupper】 判断是否全大写/ 小写
【strip】 删除左右的空格,换行符 【replace】 替换 【split】 分割符 【expandtabs】 制作表格
【format】 格式化输出
【文件】
【open() 】 打开文件 【read()】 读取文件 【 write()】 写入文件 【 tell() 】 获取光标的位置 【seek()】 移动光标
【flush】 刷新缓存区,立即写入磁盘 【truncate()】 数据截断 “w” 没有太大意义 “a” 可按要求截断
【*******函数*******】
【默认参数】 默认函数一般放在参数的最后
def f(name,age=12)
f("Tom")
【不定参数(没有命名)】 【不定参数(有命令)】
def f(*args) def f (**args)
f(1,2,3,4) f(name=“Tom”,age=12)
运行后会生成一个元组 运行后会生成一个字典
补充参数:
def a(*args): print args a(*[1,2,3,4]) #####单个添加到元组#### def b(**kwargs): print kwargs b(**{"name":"aa"}) ######键值对方式添加到字典####
【return】
1 结束某个函数 2返回一个对象 3返回多个对象默认放在一个元组中
【作用域】
built_in(系统) global(全局) enclosing(嵌套) lical(本地)
count = 10 def out(): global count ##申明全局变量 print count count = 5 ##局部不能修改全局的变量 out()
【高阶函数】
def f(n): return n*n def foo(a,b,fn): return fn(a)+fn(b) ####fn()就是运行这个f()函数###### print foo(1,2,f) ######f就是一个函数的内存地址###### def f(): return 8 def fun(): return f ter=fun() #####只是得到f函数的内存地址###### print ter print ter() ####只要加上括号就代表运行这个函数,所以就是运行f()这个函数
【递归函数】
调用自己的函数方法 + 结束条件
阶乘:
def f(n): if n==1: return 1 return n*f(n-1) #####调用自己,结束条件 print f(7) print reduce(lambda a,b:a*b ,range(1,8)) 运行结果: 5040
斐波那契数列:(没大搞懂)
0,1,1,2,3,5,8,13.。。。。。。
def f(n): if n<=2: return n return f(n-1)+f(n-2) print f(5) 运行结果: 8
【内置函数】
几个重要的内置函数 :
filter(可以用于筛选【迭代器】) map(可以用于给原来的元素添加) reduce(返回的是一个具体的值) lambda(匿名函数)
#filter str = ["a","b","c","d","e"] def func(s): #print s if s !="a": return s let = filter(func,str) print list(let) #map str = [ 'a', 'b'] def fun2(s): return s + "alvin" ret = map(fun2, str) print(ret) # map object的迭代器 print(list(ret)) # ['aalvin', 'balvin', 'calvin', 'dalvin'] #reduce from functools import reduce def add1(x, y): return x + y print (reduce(add1, range(1, 101))) ## 5050 (注:1+2+...+100) print (reduce(add1, range(1, 101), 20)) ## 5070 (注:1+2+...+100+20) #lambda #普通函数 def add(a, b): return a + b print add(2, 3) # 匿名函数 add = lambda a, b: a + b print add(2, 3) 运行结果: ['b', 'c', 'd', 'e'] ['aalvin', 'balvin'] ['aalvin', 'balvin'] 5050 5070 5 5
【装饰器函数】
闭包定义:1 有内部函数 2 引用外部函数的值 3 return函数名
示:1:
import time def show_time(f): def out(*x,**y): start = time.time() f(*x,**y) end = time.time() print "spend time:%s"%(end-start) return out @show_time # f=show_time(f) def f(*a,**b): sums=0 for i in a: sums+=i print sums time.sleep(1) f(1,2,7,4) #遵守开放,封闭的原则,在不修改原来的代码的基础上添加要求,调用的时候重新赋值相当于调用原来的函数, 不会影响其他对该函数的调用 运行结果: 14 spend time:1.0
示例2:
import time def log(flag): def show_time(f): #2.show_time(f,flag) def out(*x,**y): start = time.time() f(*x,**y) end = time.time() run = end-start print "spend time:%s"%(run) if flag=="True": with open("text","a") as ji: ji.write(" spend time:%s"%(run)) return out return show_time @log("True") # 1.@封装的只能传一个参数,只要满足闭包的定义就能运行,返回值show_time,就相当于@show_time, def f(*a,**b): #2,不用@多加一个参数也可以 sums=0 for i in a: sums+=i print sums time.sleep(1) f(1,2,7,4) 运行结果: 14 spend time:1.0 文本内容请自行查看
【模块】
【time(时间)】
time.time()当前时间戳 time.strftime() 可以自定义格式 【time.time(%Y-%m-%d %X,time.localtime)】 time.localtime()本地时间
time.ctime() 当地固定时间 (Tm_Year=2018的格式) time.mktime() 转化为时间戳
【datetime】
datetime.datetime.now()
【random】
random()0-1随机数 randint()整数随机数包含最后一个 choice()随机选择 shuffle()
randrange()不包含最后一个