Lesson 5
Lecturer : 溫室蔡、乘一
def 函數名稱(參數1, 參數2, ...):
# 你要做的事情
# ...
# ...
return 回傳值
#偷
import time
def caculate():
fstart = time.perf_counter()
sum=0
for i in range(10001):
sum +=i
print(sum)
fend = time.perf_counter()
ftotal = fend-fstart
print(ftotal//1) #計算1~100加總所花時間
def iamhappy():
fstart = time.perf_counter()
print("I like python!!!")
time.sleep(3)
fend = time.perf_counter()
ftotal = fend-fstart
print(ftotal//1) #計算輸出並休息3秒所花時間
caculate()
iamhappy()
#500500 0.0 I like python!!! 3.0
#好多重複好可怕QAQ
def 裝飾器名稱(回傳函式名稱):
def 內部函式名稱():
#你想做的事
#...
回呼函式名稱()
return 內部函式
#上面這些是裝飾器
@裝飾器名稱
def 函式名稱:
#blablabla
函式名稱()#呼叫經修飾後的函式
import time
def timecounter(func):
def wrap():
tstart = time.perf_counter()
func()
tend = time.perf_counter()
ttotal = tend-tstart #計算函式執行時間
print(ttotal//1)
return wrap
def caculate():
sum=0
for i in range(10001):
sum +=i
print(sum)
def iamhappy():
print("I like python!!!")
time.sleep(3)
timecounter(caculate)() #wrap()
timecounter(iamhappy)()
# 500500 0.0 I like python!!! 3.0
import time
def timecounter(func):
def wrap():
fstart = time.perf_counter()
func()
fend = time.perf_counter()
ftotal = fend-fstart
print(ftotal//1)
return wrap
@timecounter
def caculate():
sum=0
for i in range(10001):
sum +=i
print(sum)
@timecounter
def iamhappy():
print("I like python!!!")
time.sleep(3)
caculate()
iamhappy()
# 500500 0.0 I like python!!! 3.0
#蛤?你說很沒用?
感覺很好吃?
import time
def timecounter(func):
def wrap():
fstart = time.perf_counter()
func()
fend = time.perf_counter()
ftotal = fend-fstart
print(ftotal//1)
return wrap
def hello(func):
def something():
print("hello")
func()
return something
@timecounter
@hello #先hello,才timecounter
def iamhappy():
print("I like python!!!")
time.sleep(3)
iamhappy()
# hello I like python 3.0
#定義裝飾器工廠
def 裝飾器工廠名稱(參數1,...):
def 裝飾器名稱(回傳函式名稱):
def 內部函式名稱():
#你想做的事
#...
回呼函式名稱()
return 內部函式
return 裝飾器名稱
#使用
@裝飾器工廠名稱(參數)
def 函式名稱:
#blablabla
函式名稱()#呼叫經修飾後的函式
def wordfactory(string):
def hello(func):
def something():
print(f"{string}")
func(string+"123")
return something
return hello
#使用
var = input()
@wordfactory(var)
def hi(string):
print(f"{string}")
hi()
import 模組
#引入random模組
import random
#使用
模組名稱.想使用的東西的名稱
print(random.randint(1,100))
import 模組 as 名稱
#引入random模組
import random as rd
#使用
名稱.想使用的東西的名稱
print(rd.randint(1,100))
from 模組 import 想使用的東西的名稱
#引入random模組
from random import randint
#使用
想使用的東西的名稱
print(randint(1,100))
from 模組 import 想用東西的名稱 as 名稱
#引入random模組
from random import randint as rdi
#使用
想使用的東西的名稱
print(rdi(1,100))
import random
#可以生出隨機變數的模組
print(random.random())
.random()
生成隨機 0-1 之間的小數import random
#可以生出隨機變數的模組
print(random.randint(1, 1000)) #900
print(random.randint(1, 5)) #1
.randint(a, b)
生成隨機 a-b 之間的整數import random
#可以生出隨機變數的模組
list = ['a', 'b', 'c', 'd', 'e']
print(random.choice(list)) #e
.choice(list)
可以從串列裡面隨機挑一項import random
#可以生出隨機變數的模組
list = ['a', 'b', 'c', 'd', 'e']
random.shuffle(list)
print(list) #['d', 'a', 'b', 'e', 'c']
.shuffle(list)
可以從串列裡面隨機挑一項import time
#內含跟時間功能有關的模組
import time
print(time.time()) #1668069093.5578256
.time()
回傳從1970年1月1日0時0分0秒以來的時間(aka Unix time)print("hello")
time.sleep(2)
print("hello")
.sleep(t)
讓程式暫時停止t秒import time
#內含跟時間功能有關的模組
import calendar
#跟年曆有關的東西的模組
print(calendar.calendar(2022)
.month(month) 回傳該年的年曆
import calendar
#跟年曆有關的東西的模組
print(calendar.month(2022, 11))
.month(year, month) 回傳該月的月曆
#hello.py
def hello():
print("hello!")
#main.py
import hello
hello.hello()
#hello!
#hello.py
def hello():
print("hello!")
#main.py
import hello
hello.hello()
#hello!
#hello.py
def hello():
print("hello!")
if __name__ == "__main__":
print("I am working!")
#hello.py
def hello():
print("hello!")
print("I am working!")
sound/ Top-level package
__init__.py Initialize the sound package
formats/ Subpackage for file format conversions
__init__.py
wavread.py
wavwrite.py
aiffread.py
aiffwrite.py
auread.py
auwrite.py
...
要放__init__.py,系統才會偵測這是一個模組
import antigravity