python語言程序設計基礎課後答案-第五章(嵩天)

教材:git

  1.七段數碼管繪製ide

  2.函數的遞歸函數

  3.科赫曲線繪製spa

習題:3d

  1. 輸出田字格。
  2. 實現isOdd()函數。
  3. 實現isNum()函數。
  4. 實現multi()函數。
  5. 實現isPrime()函數。
  6. 使用datetime庫,對本身的生日輸出很多於10種日期格式。
  7. 輸入漢諾塔層數,輸出整個移動流程。

 1.七段數碼管繪製code

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()

 (數碼管繪製10進制變爲16進制,做爲字符串輸入)orm

import turtle, datetime a=input('') 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','a','b','d','e','f'] else drawLine(False) drawLine(True) if d in ['0','1','3','4','5','6','7','8','9','a','b','d'] else drawLine(False) drawLine(True) if d in ['0','2','3','5','6','8','9','b','c','d','e'] else drawLine(False) drawLine(True) if d in ['0','2','6','8','a','b','c','d','e','f'] else drawLine(False) turtle.left(90) drawLine(True) if d in ['0','4','5','6','8','9','a','b','c','e','f'] else drawLine(False) drawLine(True) if d in ['0','2','3','5','6','7','8','9','a','c','e','f'] else drawLine(False) drawLine(True) if d in ['0','1','2','3','4','7','8','9','a','d'] else drawLine(False) turtle.left(180) turtle.penup() turtle.fd(20) def drawDate(date): #得到要輸出的數字 turtle.pencolor("red") for i in date: drawDigit(i) def drawDate1(date): #得到要輸出的數字 turtle.pencolor("red") count=0
    for i in date: count+=1
        if count>2: drawDigit(i) def main(): turtle.setup(800, 350, 200, 200) turtle.penup() turtle.fd(-300) turtle.pensize(5) drawDate(a) turtle.fd(20) turtle.pendown() turtle.fd(145) turtle.penup() turtle.fd(20) b=hex(int(a)) print(b) drawDate1(str(b)) turtle.hideturtle() main()

 

 

 2.科赫曲線繪製blog

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()函數。字符串

def odd(d): if d%2==0: return True else : return False d=int(input()) print(odd(d))

 

 

 

實現isNum()函數。

實現multi()函數。

def multi(*args): sum=1 count=1
    for i in args: if type(i) is type(1) or type(i) is type(1.): sum*=i return sum print(multi(2,3,1,0.5,4.99)) print(multi(2,1,'str'))

 

 

實現isPrime()函數。

 

使用datetime庫,對本身的生日輸出很多於10種日期格式。

輸入漢諾塔層數,輸出整個移動流程。

相關文章
相關標籤/搜索