習題
1.如何給函式編寫文件
def
functionname
(name)
:"你好哇"
print
('你的名字是嘛'
.format
(name)
)print
(functionname(
'kiko'))
#你的名字是kiko嘛
none
2.怎麼給函式引數和返回值註解
python 的函式具有非常靈活多樣的引數形態,既可以實現簡單的呼叫,又可以傳入非常複雜的引數。從簡到繁的引數形態如下:
位置引數 (positional argument)
預設引數 (default argument)
可變引數 (variable argument)
關鍵字引數 (keyword argument)
命名關鍵字引數 (name keyword argument)
引數組合
def
functionname
(arg1, arg2=v,
*args,
**kw)
:
arg1 表示位置引數
arg2=v 預設引數
*args 可變引數 可傳遞0,1,2個變數,並自動組裝成元組
**kw 關鍵字引數 不限個數,可自動組裝成字典
def
printinfo
(arg1,
*args,
**kwargs)
:print
(arg1)
print
(args)
print
(kwargs)
printinfo(70,
60,50)
# 70
# (60, 50)
# {}
printinfo(70,
60,50, a=
1, b=2)
# 70
# (60, 50)
#
3.閉包中,怎麼對數字,字串,元組等不可變元素更新
閉包函式:函式內部還包著乙個函式(內部函式)。
形如:
def
funx
(x):
deffuny
(y):
return x * y
return funy
i = funx(8)
print
(type
(i))
# print
(i(5))
# 40
如果在乙個內部函式
裡對外層非全域性作用域
的變數進行引用,那麼內部函式
就被認為是閉包
若要更新閉包中的數字,字串,元組等不可變的元素,則須先nonlocal
關鍵字進行宣告。
def
outer()
: num =
10def
inner()
:nonlocal num # nonlocal關鍵字宣告
num =
100print
(num)
inner(
)print
(num)
outer(
)# 100
# 100
若直接在閉包結構中更改值,則無法修改外部函式的值。
100
10
4.分別根據每一行的首元素和尾元素大小對二維列表a=[[6,5],[3,7],[2,8]]排序(利用lambda表示式)
#從小到大排序a=[
[1,2
],[6
,5],
[2,8
]]lambda a:s
for item in a:
i=0 s=
if item: k=item
b=a[i]
a[i]
=k
s=s+a[i]
i=i+
1
5.利用python解決漢諾塔問題
def
hanoi
(n, a, b, c)
:if n ==1:
print
(a,'-->'
, c)
#僅剩乙個圓盤
else
: hanoi(n -
1, a, c, b)
print
(a,'-->'
, c)
hanoi(n -
1, b, a, c)
# 呼叫
hanoi(64,
'a',
'b',
'c')
task6結構體 方法 介面
go 語言中沒有 類 的概念,也不支援像繼承這種物件導向的概念。但是go 語言的結構體與 類 都是復合結構體,而且go 語言中結構體的組合方式比物件導向具有更高的擴充套件性和靈活性。7.1.1 結構體定義 結構體一般定義如下 type identifier struct 例如我們想宣告乙個學生的結構...
街景字元編碼識別(task6)模型整合
在機器學習中的整合學習可以在一定程度上提高 精度,常見的整合學習方法有stacking bagging和boosting,同時這些整合學習方法與具體驗證集劃分聯絡緊密。由於深度學習模型一般需要較長的訓練週期,如果硬體條件不允許建議選取留出法,如果需要追求精度可以使用交叉驗證的方法。10折交叉驗證,訓...
零基礎入門語義分割 Task6 模型整合
總結整合學習方法 深度學習中的整合學習和結果後處理思路。在機器學習中的整合學習可以在一定程度上提高 精度,常見的整合學習方法有stacking bagging和boosting,同時這些整合學習方法與具體驗證集劃分聯絡緊密。由於深度學習模型一般需要較長的訓練週期,如果硬體裝置不允許建議選取留出法,如...