python:turtle画图 杨辉三角 居中 折线
程序员文章站
2022-05-25 13:56:03
...
截图:
代码:在上一篇文本输出的基础上,用turtle画图,画出折线。
import turtle
#2020.8.12 杨辉三角和居中
N=[1]
def prtLine():
global N
N=[1]+ [ N[i]+N[i+1] for i in range(len(N)-1) ] +[1]
# print( N[i]+N[i+1] for i in range(len(N)-1) )
'''
print(N)
for i in range(5):
prtLine()
print(N)
'''
#杨辉三角放到二维列表中
d=[]
d.append(N)
for i in range(5):
prtLine()
d.append(N)
#print(d)
#每一行数字拼接成一个字符串,5个空格连接
#多行内容,组成字符串列表
str_prt=[]
for dataLine in d:
str_prt.append(' '.join( str(v) for v in dataLine ))
# print(str_prt)
#文本输出的居中。可以有其他居中方法。以80为总宽度
for txt in str_prt:
padding=int(( 80-len(txt))/2 )
#print('{0}{1}'.format(' '*padding,txt))
#画图
turtle.pensize(3)
turtle.penup()
y=200
turtle.goto(0, y)
for i in range(len(str_prt)):
txt=str_prt[i]
y-=50
# 画图模式下,一个字符的宽带是7
padding=int(( -len(txt)*7 )/2 )
turtle.goto(padding, y)
turtle.write(txt, font=("Times",18,"bold"))
# 移动到第一个字符的下方
turtle.goto(padding+5, y-5)
# 画折线
if i>=1 and i< len(str_prt)-1:
turtle.pendown()
turtle.setheading(-45)
for k in range(i):
turtle.forward(30)
turtle.left(90)
turtle.forward(30)
turtle.right(90)
turtle.penup()
链接:
https://python123.io/index/turtles/5f33beb4f765092925f6f432