#函式的定義
def hanshu(a,b):
c=a+b
return(c)
x=hanshu(1,2)
print(x) #結果:3
a=5def hanshu():
return 5+a
a=6def hanshu1():
return 5+a
a=7def hanshu2():
return 5+a
print(hanshu()) #12
print(hanshu1()) #12
print(hanshu2()) #12
#這裡a最後的賦值是7,最後列印的時候才走return,所以都是5+7=12
#形參實參
def func(a,b): #a,b就表示形參
c=a+b
return c
x=func(1,2) #這裡的1,2與下面的3,4都代表的實參
y=func(3,4)
print(x,y)
#位置引數與關鍵字引數
def people(name,age,***):
print("我叫",name)
print("年齡",age)
print("性別",***)
people("張三",19,"男")#位置引數必須一一對應
print()
people(***="女",name="李四",age=29)#關鍵字引數k-v相互對應,所以,對位置沒有要求
#關鍵字引數必須放在位置引數後面
def hanshu(a,b):
c=a+b
return c
x=hanshu(5,b=7)#關鍵字引數在位置引數後面所以可以正常執行
print(x)
# y=hanshu(a=5,7) #報錯:syntaxerror: positional argument follows keyword argument
print(y)
#預設引數
def student(name,age,***="男"):
print(name,age,***)
student("張三",19,"女") #結果:張三 19 女
student("李四",20) #結果: 李四 20 男
#在李四這一欄裡並沒有輸入性別,但最後的結果會出現性別,就是因為在定義的時候已經預設了性別是男,
# 如果後面引數中沒有寫性別,則使用預設的性別,寫的話就使用寫的性別
#另外注意預設的引數一定要放在最後面
*# 具有打散序列的功能
def func(a,b,c):
print(a,b,c)
tup=(1,2,3)
func(*tup)#結果:1 2 3
tup=(1,2,3,4)
print(*tup) #結果:1 2 3 4
list=[1,2,3,4]
print(*list) #結果:1 2 3 4
str="asdfg"
print(*str) #結果:a s d f g
def kb(a,b,*c):
print(a)
print(b)
print(c)
kb(1,2,3,4,5,6,7)
**# 結果:12
(3, 4, 5, 6, 7)
kb(1,2)
# 結果:
12()
#定義字典
def kb(a,**kwargs):
print(a,kwargs)
kb(1,name="張三",age=19,***="男")
kb(2,name="李四",age=20,id=1001)
kb(3)
#結果1
2 3 {}
def func(name,age):
print(name,age)
a=func(**a) #結果:張三 19
def jisuan(a,b):
i=0while i<3:
a=a+b
return a
i+=1
return 10
x=jisuan(2,3)
print(x) #結果:5 return具有結束的功能,因此只執行一次迴圈就結束了
def hanshu(a,b):
c=a+b
return c
d=a-b
return d
x=hanshu(2,3)
print(x) #結果:5
#return具有結束的功能,因此d=a-b不執行
#階乘
def jiecheng(n):
if n==1:
return 1
else:
return(n*jiecheng(n-1))
x=jiecheng(5)
print(x) #結果:120
#斐波那契
def fbnq(n):
if n==1 or n==2:
return 1
else:
return fbnq(n-1)+fbnq(n-2)
for x in range(1,11):
print("第",x,"個月兔子的個數是",fbnq(x))
#二分查詢
def zbcz(a,start,end,key):
mid=(start+end)//2
if a[mid]==key:
return mid
elif a[mid]>key:
return zbcz(a,start,mid-1,key)
elif a[mid]#作業
# 練習傳遞引數
# 1、寫乙個函式實現斐波那契數列(1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377…)
# 要求:接收乙個引數,返回乙個存著等量值的列表
def func(num):
a=1b=1
if num<=2:
print(a,a+b,end=" ")
else:
while num>0:
print(b,end=" ")
a,b=b,a+b
num-=1
func(10)
print()
# 2.計算任意多個數字的和
# 需求
# (1).定義乙個函式 sum_numbers,可以接收的 任意多個整數
# (2).功能要求:將傳遞的 所有數字累加 並且返回累加結果
def sum_numbers(*args):
num=0
for x in args:
num+=x
return num
print(sum_numbers(1,2,3))
# 3.使用遞迴,計算 1 + 2 + … num 的結果
def sum_numbers(num):
if num==1:
return 1
else:
num =num+sum_numbers(num-1)
return num
print(sum_numbers(5))
4 24課堂筆記 作業
1 for for for i in range 1,6 for j in range i print end print 2 for while for i in range 1,6 j 1while j i print end j 1 print 3 while while i 1while i...
lua學習筆記 作用域
塊,作用域 全域性和區域性,預設情況下,為全域性變數,除非特殊說明是區域性 中 do end塊內定義的變數無法被外部訪問,同時任何在外圍定義的區域性變數也無法被內部訪問。強制轉換 根據特定的轉換規則 如果可能的話 將字串轉換成數字,從而在字串和數字之間實現算術運算的過程 這裡先將b轉換成數字,然後再...
李巨集毅《機器學習》課程筆記(作業四 RNN)
rnn和半監督學習需要後面補上。word embedding是想做乙個什麼事情呢,是希望把詞彙用乙個比較短的向量表達出來,因為通常的詞彙的表達是通過乙個非常長的 詞典那麼長的 1 of n向量來表達,這樣的表達沒有資訊,我們希望能用乙個短向量 例如10或100維 來表達詞彙,就需要每個維度表達一些資...