装饰器
概念:闭包,把一个函数当作参数返回一个替代版的函数,本质上就是一个返回函数的函数
简单的装饰器
def funnc1()
print(“sunck is a agood man”)
def outer(func):
def inner()
print(“*************”)
func()
return inner
#f是函数func1的加强版本
f = outer(func1)
f()
复杂一点装饰器
say(-10)
def outer(func):
def inner(age):
if age < 0:
age = 0
func(age)
return inner
#顺序
#使用@将装饰器应用到函数,python2.4开始支持使用@
@outer #相当于执行了say = outer(say)
def say(age):
print(“sunck is %d years old” % (age))
#say = outer(say)
say(-10)
通用装饰器
def outer(func):
def inner(*args, **kwargs):
#添加修改的功能
print(“************”)
func(*args, **kwargs)
return inner
@outer #先定义装饰器,后定义函数时,用@装饰器
def say(name, age):#函数参数理论上无限制,最好不超过6、7个
print(“my name is %s, i am %d years old” % (name, age))
偏函数
import functools
print(int(“1010”, base = 2))
#偏函数
def int2(str, base = 2):
return int(str, base)
print(int2(“1100”))
#把一个参数固定住,形成一个新的函数
int3 = functools.partial(int, base = 2)
print (int3(“111”))
turtle模块绘图
一个简单的绘图工具
提供一个简单的小海龟,可以把它理解为一个机器人,只能听得懂有限的命令
绘图窗口的原点(0,0)在正中间,默认海龟的方向是右侧
运动命令
forward(d) #向前移动d长度
backward(d)
right(d) #向右转动d度
left(d)
goto(x, y) #移动到坐标为(x, y)
speed(speed) #笔画绘制速度[0, 10]
笔画控制命令
up() #笔画抬起,
down()
setheading(d) #改变海龟朝向
pensize(d) #笔画宽度
pencolor(colorstr) #笔画颜色(加双引号)
reset() #恢复所有设置,清空窗口,重置turtle状态
clear() #不会重置turtle
circle(r, e) #绘制圆,r为半径,e为次数
begin_fill() #填充
fillcolor(colorstr)
end_fill()
其他命令
done() #程序继续执行
undo() #撤销上一次动作
hideturtle() #隐藏海龟
showturtle()
screensize(x, y)
#导入turtle库
import turtle
turtle.forward(100)
turtle.pencolor(“red”)
turtle.circle(50, steps = 5) #五边形
turtle.done()
正方形
矩形
正方体
五角星
五环
围棋棋盘
国际象棋棋盘
格式化输出
print("good good study")
num = 10
str19 = "good good study!"
f = 10.1234
print(“num =”, num)
#%d %s %f
#精确到小数点后三位(四舍五入)
print(“num = %d, str19 = %s, f = %.3f” % (num, str19, f))
print(“num = %d\n, str19 = %s\n, f = %.3f” % (num, str19, f))
print(‘tom is a \’good\’ man’)
print”‘tom is a \”good\” man”)
print(“good\nnice\nhandsome”)
print(‘’’
good
nice
handsome
‘’’)
如果字符中有好多字符都需要转义,为了简化,用r表示内部的字符串默认不转义
print(r”\\t\”)