python语言程序设计基础课后答案-第五章(嵩天)
教材:
1.七段数码管绘制
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。2.函数的递归
3.科赫曲线绘制
习题:
- 输出田字格。
- 实现isOdd()函数。
- 实现isNum()函数。
- 实现multi()函数。
- 实现isPrime()函数。
- 使用datetime库,对自己的生日输出不少于10种日期格式。
- 输入汉诺塔层数,输出整个移动流程。
1.七段数码管绘制
import turtle, datetime def drawLine(draw): #绘制单段数码管 turtle.pendown() if draw else turtle.penup() turtle.fd(40) turtle.right(90) def drawDigit(d): drawLine(True) if d in [2,3,4,5,6,8,9] else drawLine(False) drawLine(True) if d in [0,1,3,4,5,6,7,8,9] else drawLine(False) drawLine(True) if d in [0,2,3,5,6,8,9] else drawLine(False) drawLine(True) if d in [0,2,6,8] else drawLine(False) turtle.left(90) drawLine(True) if d in [0,4,5,6,8,9] else drawLine(False) drawLine(True) if d in [0,2,3,5,6,7,8,9] else drawLine(False) drawLine(True) if d in [0,1,2,3,4,7,8,9] else drawLine(False) turtle.left(180) turtle.penup() turtle.fd(20) def drawDate(date): #获得要输出的数字 for i in date: drawDigit(eval(i)) #注意: 通过eval()函数将数字变为整数 def main(): turtle.setup(800, 350, 200, 200) turtle.penup() turtle.fd(-300) turtle.pensize(5) drawDate(datetime.datetime.now().strftime('%Y%m%d')) turtle.hideturtle() main()
import turtle, datetime def drawGap():#绘制数码管间隔 turtle.penup() turtle.fd(5) def drawLine(draw): #绘制单段数码管 drawGap() turtle.pendown() if draw else turtle.penup() turtle.fd(40) drawGap() turtle.right(90) def drawDigit(d): drawLine(True) if d in [2,3,4,5,6,8,9] else drawLine(False) drawLine(True) if d in [0,1,3,4,5,6,7,8,9] else drawLine(False) drawLine(True) if d in [0,2,3,5,6,8,9] else drawLine(False) drawLine(True) if d in [0,2,6,8] else drawLine(False) turtle.left(90) drawLine(True) if d in [0,4,5,6,8,9] else drawLine(False) drawLine(True) if d in [0,2,3,5,6,7,8,9] else drawLine(False) drawLine(True) if d in [0,1,2,3,4,7,8,9] else drawLine(False) turtle.left(180) turtle.penup() turtle.fd(20) def drawDate(date): #获得要输出的数字 turtle.pencolor("red") for i in date: if i=='-': turtle.write('年',font=("Arial",18,"normal")) turtle.pencolor("green") turtle.fd(40) elif i=='=': turtle.write('月',font=("Arial",18,"normal")) turtle.pencolor("blue") turtle.fd(40) elif i=='+': turtle.write('日',font=("Arial",18,"normal")) else: drawDigit(eval(i)) #注意: 通过eval()函数将数字变为整数 def main(): turtle.setup(800, 350, 200, 200) turtle.penup() turtle.fd(-300) turtle.pensize(5) drawDate(datetime.datetime.now().strftime('%Y-%m=%d+')) turtle.hideturtle() main()
2.科赫曲线绘制
import turtle def koch(size,n): if n==0: turtle.fd(size) else: for angle in [0,60,-120,60]: turtle.left(angle) koch(size/3,n-1) def main(): turtle.setup(800,400) turtle.speed(0)#控制绘制速度 turtle.penup() turtle.goto(-300,-50) turtle.pendown() turtle.pensize(2) koch(600,3)#0阶科赫曲线长度,阶数 turtle.hideturtle() main()
import turtle def koch(size,n): if n==0: turtle.fd(size) else: for angle in [0,60,-120,60]: turtle.left(angle) koch(size/3,n-1) def main(): turtle.setup(400,400) turtle.speed(0)#控制绘制速度 turtle.penup() turtle.goto(-200,-100) turtle.pendown() turtle.pensize(2) turtle.pencolor("green") level=5 koch(300,4) turtle.right(120) turtle.pencolor("blue") koch(300,4) turtle.right(120) turtle.pencolor("red") koch(300,4) turtle.hideturtle() main()
输出田字格。
def drawss(n): line=3*n+1 for i in range(1,line+1): if i%3==1: print(n*"+----",end="") print("+") else: print("| "*n,end="") print("|") def main(): n=eval(input("请输入您要的阶数:")) drawss(n) main()
实现isOdd()函数。
实现isNum()函数。
实现multi()函数。
实现isPrime()函数。
使用datetime库,对自己的生日输出不少于10种日期格式。
输入汉诺塔层数,输出整个移动流程。

更多精彩