1. 程式人生 > >Python第五章(北理國家精品課 嵩天等)

Python第五章(北理國家精品課 嵩天等)

awd span {} date 默認 參數 情況 屬性和方法 過程

函數和代碼復用

函數的定義和使用

def <函數名>(<參數(0個或多個)>):
   <函數體>
   return <返回值>
可選參數放在不可選參數之後
*b不定參數
lambda函數返回函數名(特殊情況使用)
<函數名> lambda<參數>:<表達式>

七段數碼管繪制

import turtle,time
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(digit): drawLine(True) if digit in [2,3,4,5,6,8,9] else drawLine(False) drawLine(True) if digit in [0,1,3,4,5,6,7,8,9] else drawLine(False) drawLine(True) if digit in [0,2,3,5,6,8,9] else drawLine(False) drawLine(True)
if digit in [0,2,6,8] else drawLine(False) turtle.left(90) drawLine(True) if digit in [0,4,5,6,8,9] else drawLine(False) drawLine(True) if digit in [0,2,3,5,6,7,8,9] else drawLine(False) drawLine(True) if digit 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("purple") turtle.fd(40) elif i == +: turtle.write("",font=("Arial",18,"normal")) else: drawDigit(eval(i)) def main(): turtle.setup(800,350,200,200) turtle.penup() turtle.fd(-300) turtle.pensize(5) drawDate(time.strftime("%Y-%m=%d+",time.gmtime())) turtle.hideturtle() turtle.done() main()

代碼復用與函數遞歸

函數

對象:屬性和方法,在函數之上

count = 0
def hanoi(n,src,dst,mid):
    global count
    if n == 1:
        print("{}{}->{}".format(1,src,dst))
        count+=1
    else:
        hanoi(n-1,src,mid,dst)
        print("{}{}->{}".format(n,src,dst))
        count+=1
        hanoi(n-1,mid,dst,src)
hanoi(50,"A","B","C")
print(count)

PyInstaller庫的使用

-h 查看幫助

--clean 清理打包過程中的臨時文件

-D,--onedir 默認值,生成dist文件夾

-F,--onefile 在dist文件夾中只生成獨立的打包文件

-i<圖標文件名.ico> 指定打包程序使用的圖標文件

pyinstaller -i curve.ico -F SevenDigitsv1.py

科赫雪花小包裹

#KochDrawV1.py
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(600,600)
    turtle.penup()
    turtle.goto(-200,100)
    turtle.pendown()
    turtle.pensize(2)
    level = 3 #
    koch(400,level)
    turtle.right(120)
    koch(400,level)
    turtle.right(120)
    koch(400,level)
    turtle.hideturtle()
main()
        
    

Python第五章(北理國家精品課 嵩天等)