1、for 循环一行一行的读取文件,修改文件,以及或者跳过直接读取第二行(注意 “w”出现的地方会被更改)
with open("你好.bak",encoding="utf-8")as f, open("你好","w",encoding="utf-8")as f2:
count=0 for line in f:
if count>0: new_content=line.replace("非常","大") f2.write(new_content)
else:count=1 import os os.remove("你好.bak") os.rename("你好","你好.bak")
2、函数 代码的封装和调用
# 写函数,检查传入字典的每一个value的长度,如果大于2,
# 那么仅保留前两个长度的内容,并将新内容返回给调用者。
#PS:字典中的value只能是字符串或列表
def func(dic): for k in dic: dic[k]=dic[k][:2] return dic ret=func({12:"asfdsf"}) print(ret) #{12: 'as'}
3、三元运算符(返回一个较大的数字)
def func(a,b): c=a if a>b else b return c ret=func(3,4) print(ret) #4
4、位置参数,动态参数,默认参数,关键字参数
def func(a,*args,key="key",**kwargs): print(a) print(args) print(key) print(kwargs) ret=func(1,2,3,"afsa",ds="123",asd="1234")
5、动态参数的求和
def my_sum(*args): sum_1=0 for i in args: sum_1+=i return sum_1 ret=my_sum(1,2,34,57) print(ret)
6、打散列表 (将列表,转换为元祖)
def my_sum(*args): print(args) l=[1,34,45,674] ret=my_sum(*l) # (1, 34, 45, 674)
7、检测是否是闭包__closure__
def fl(): a=1 def f2(): def f3(): print(a) f3() print("f3:",f3.__closure__) f2() print("f2:",f2.__closure__) fl() # 1 # f3: (<cell at 0x00000000027A85E8: int object at 0x00000000655B60E0>,) # f2: (<cell at 0x00000000027A85E8: int object at 0x00000000655B60E0>,)
8、在爬虫中应用闭包
from urllib.request import urlopen def get_url(url): def readl(): ret=urlopen(url).read() print(ret) return readl read_func=get_url("http://www.cnblogs.com/number1994/p/7941399.html") read_func()
9、简单装饰器(语法糖的应用)
import time def timmer(qqxing): def inner(): print("调用func之前") qqxing() print("调用func之后") return inner
@timmer #func=timmer(func)
def func():
print("大家好")
func()
10、装饰器的固定结构
# 装饰器的固定结构 def wrapper(func): #timmer 是装饰器的名字,传入的参数就是被装饰的函数 def inner(*args,**kwargs): #在装饰器中需要定义一个内部函数 """被装饰函数之前添加的代码""" ret=func(*args,**kwargs) #被装饰器的函数,并且要执行 # """被装饰函数之后添加的代码""" return ret return inner #将内部函数的名字返回
11、log的使用
def log(func): def inner(*args,**kwargs): print("你要调用%s函数了"%func.__name__) ret=func(*args,**kwargs) return ret return inner @log def f1(): print("f1") @log def f2(): print("f2") f1() f2()
12、迭代器和生成器