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

猜你喜欢

转载自blog.csdn.net/weixin_42644456/article/details/107963565
今日推荐