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、迭代器和生成器