python基礎
作業1.1
編寫程式 ,用 [0] 在 [0,1,2] 和 [0,1,2,3,4] 中迴圈,生成「 5行 3 列」的零陣列 [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0,0], [0, 0, 0]]
a =[0
]b =[0
,1,2
]c =[0
,1,2
,3,4
]t =[[
],,,
,[]]
for a in b:
for a in c:
t[a]0)
print
(t)
學習**
練習1
# 求解一元二次方程
import math
defquadratic
(a, b, c)
:
beta = b**2-
4*a*c
if beta <0:
return
'無解'
elif beta ==0:
x =-b/(
2*a)
return
'x1=x2='
,x else
: x1 =
(-b + math.sqrt(b**2-
4*a*c))/
(2*a) x2 =
(-b - math.sqrt(b**2-
4*a*c))/
(2*a)return x1,x2
print
('quadratic(2, 3, 1) ='
, quadratic(2,
3,1)
)
練習2
# x的n次方計算方法
defpower
(x,n)
: s =
1while n >0:
n = n-
1 s = s * x
return s
print
('5的4次方'
,power(5,
4))
作業2.1
編寫函式,輸入變數n,輸出形如 的字典。例如當 n=8 時,輸出
def
input_dict
(n):
list
=range(1
,n+1
)# 建立乙個從1到n的list
d =# 建立乙個字典
n =1for n in
list
: d[n]
= n**
2# 對應key值為n方
return d
print
(input_dict(8)
)
作業2.2
編寫函式,利用遞迴演算法獲得指定項的斐波拉契數列,並思考,遞迴過程中由於很多計算是重複 的,會浪費算力,能否優化?
# 斐波那契數列以如下被以遞推的方法定義:f(0)=0,f(1)=1, f(n)=f(n - 1)+f(n - 2)(n ≥ 2,n ∈ n*)
# 0、1、1、2、3、5、8、13、21、34、……
deffact
(n):
if n ==0:
return
0elif n ==1:
return
1return
(fact(n-1)
+ fact(n-2)
)#遞迴
fact(6)
#會浪費算力,但不會優化
分治法、動態規劃、貪心演算法(理解)
學習**
切片練習3.1
利用切片操作,實現乙個trim()函式,去除字串首尾的空格,注意不要呼叫str的strip()方法:
def
trim
(s):
length =
len(s)
if length >0:
for i in
range
(length)
:#注意length是乙個數字
if s[i]
!=' '
:#若無空白,直接跳過,進入刪除後面空白的指令中
break
; j = length -1;
while s[j]
==' '
and j > i:
j -=
1 s = s[i:j+1]
return s
trim(
' hello '
)
迭代
練習
def
findminandmax
(l):
length =
len(l)
if length ==0:
return
none
,none
else:(
min,
max)
= l[0]
,l[0
]for i in l:
if i <
min:
min= i
if i >
max:
max= i
return
(min
,max
)findminandmax([1
,2,3
,4])
# 判斷是否為str,然後再通過列表生成式小寫列表
l1 =
['hello'
,'world',18
,,none
][s.lower(
)for s in l1 if
isinstance
(s,str)is
true
]
這塊自己理解的也不太好,楊輝三角那個題能理解但是自己做差了點意思,回頭遇到類似的code放進來
## 楊輝三角 不會,抄的
def********s()
: p =[1
]while
true
:yield p
p =[1
]+[p[i]
+ p[i +1]
for i in
range
(len
(p)-1)
]+[1
]n =
0for t in ********s():
print
(t) n = n +
1while n ==10:
break
作業3.1
編寫程式 ,用列表生成式 [0] 在 [0,1,2] 和 [0,1,2,3,4] 中迴圈,生成「 5行 3 列」的零陣列 [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0,0], [0, 0, 0]]
# hhhhhh 慢慢試出來的,fighting!!
[[x *
0for x in
range(3
)]for y in
range(5
)]
作業3.2
總結iterable型別、generator、iterator的區別及轉化方法
iterable型別:可以直接用於for迭代的物件,成為iterable可迭代物件;iterable型別包括list、tuple、dict、set、str
from collections.abc import iterable
a =isinstance([
],iterable)
b =isinstance([
[1,2
],1]
,iterable)
c =isinstance
('abc'
,iterable)
d =isinstance
(,iterable)
e =isinstance
([x for x in
range(5
)],iterable)
print
(a,b,c,d,e)
機器學習 學習筆記 1
一 問題的引入 回歸分析大多屬於監督學習的一種方法。這種方法主要是根據從貼有便簽的理算資料通,通過統計等方法得到數學模型,然後將模型運用於 或者分類。通常是多維的,如果存在高維空間時,可通過核函式等方法優化處理。例如房屋的價錢和很多因素有關,而每乙個因素也成為乙個維度。這裡和多臂 問題 multi ...
機器學習 學習筆記1
什麼是機器學習?監督學習 supervised learning 如神經網路,提供資料和資料的標籤進行訓練 非監督學習 unsupervised learning 只提供資料而不提供對應的標籤進行訓練 半監督學習 利用少量有標籤樣本和大量無標籤樣本進行訓練,來對無標籤樣本進行分類 強化學習 rein...
機器學習學習筆記1
周志華機器學習 flyu6 time 2016 6 12 假設空間 歸納偏好 監督學習 所謂的監督學習其實就是在資料集d中有格式為 x,y 的形式,可以看出我們有明確的目標值或者標籤 y 與x的資料集有關關聯關係。我們可以通過尋找x與y的關係來確定乙個關係化的模型。在這個模型的學習中,我們是通過真是...