画格子
import turtle
turtle.showturtle()
step=20
for i in range(11):
turtle.penup()
turtle.goto(0,step*i)
turtle.pendown()
turtle.forward(10*step)
turtle.right(-90)
for i in range(11):
turtle.penup()
turtle.goto(step*i,0)
turtle.pendown()
turtle.forward(10*step)
turtle.dot(10,"red") //棋子
turtle.done()
画棋盘
import turtle
turtle.showturtle()
step=20
for i in range(3):
for k in range(3):
turtle.penup()
turtle.goto(i*step,k*step)
turtle.pendown()
turtle.begin_fill()
if (i+k)%2==0:
turtle.color("black")
else:
turtle.color("white")
for j in range(4):
turtle.forward(step)
turtle.right(90)
turtle.end_fill()
turtle.penup()
turtle.goto(0,-20)
turtle.pendown()
for l in range(4):
turtle.forward(60)
turtle.right(-90)
turtle.done()
turtle.pensize(3) //设置粗细
turtle.begin_fill()
turtle.color("white")
turtle.end_fill()
开始 设置颜色 结束
装饰器模式就是把函数作为参数传进去进行功能上的扩展
函数引用全局变量 加上global 关键词
注意是引用全局
num=10
def pp():
global num;
num=3
print(num) //3
引用函数与函数之间的用nonlocal关键词
def test():
num=10
def xx():
nonlocal num
num=3
print(num)
print(num)
答案是3 3
字符串
import codecs //编码
"hello".find("e") // 1 找不到是-1
查找文件
import codecs
file=open("路径","读写","字符编码","忽略错误")
file.readline() //读取一行
file.readlines() //全部读取到内存,返回一个list 速度很快
没有读取到信息返回none
匿名函数 lambda 函数
num=lambda a,b:a+b num表示函数名称
print(num(1,2))
list 和 set
list [1,1,1] // 1,1,1 可以重复
set {1,1,1} // 1 不可以重复
set1={1,2,5,6}
set2={1,2,7,8}
print(set1-set2) #set1有set2没有 差集
print(set2-set1) #set2有set1没有
print(set2 | set1) #并集
print(set2 & set1) #交集
print(set2 ^ set1) #交集 ste1与set2 并集减去 交集
tuple和list基本上一样,唯一的区别是list可以变,tuple不能改变
下面需要注意一下
mytuple=()
print(type(mytuple))
mytuple=(1)
print(type(mytuple))
mytuple=(1,)
print(type(mytuple))
结果
<class 'tuple'>
<class 'int'>
<class 'tuple'>
字典dict
dict是set的加强版,key不能重复,会覆盖
mydict={"a":1,"b":2,"a":3}
print(mydict)
{'a': 3, 'b': 2}
print(mydict["b"]) //根据key找出value
for i in mydict:
print(i,mydict[i]) 遍历dict
列表构造表达式
mylist=[a for a in range(10)]
print(mylist)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
list和 tuple可以支持索引,set不可以
frozenset(list) //转变成不可变集合