欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python:turtle画图 杨辉三角 居中 折线

程序员文章站 2022-05-25 13:56:03
...

截图:

python:turtle画图 杨辉三角 居中 折线

代码:在上一篇文本输出的基础上,用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