函式的簡介、呼叫函式、定義函式就不再贅述。
關於習題,python寫乙個接一元二次方程:
# -*- coding: utf-8 -*-
import math
defquadratic
(a, b, c):
# 先求判別式
deta = ((b) * (b)) - (4 * (a) * (c))
if (deta < 0):
x1_1 = ((-1) * (b)) / (2 * (a))
x1_2 = ((math.sqrt((-1) * deta)) / (2 * (a)))
print('此方程有共軛復根,第乙個復根為: \n' + str(x1_1) + '+' \
+ str(x1_2) + 'i')
print('第二個復根為: \n' + str(x1_1) + '-' + str(x1_2) + 'i')
x1_1 = ((-1) * (b)) / (2 * (a))
x1_2 = ((math.sqrt((-1) * deta)) / (2 * (a)))
elif (deta == 0):
print('此方程有相同解: ')
x1and2 = (-1) * (b) / (2 * (a) * (c))
print(x1and2)
else:
x1 = ((-1) * (b) + (math.sqrt(deta))) / (2 * (a))
print('此方程第乙個解為: ' + str(x1))
x2 = ((-1) * (b) - (math.sqrt(deta))) / (2 * (a))
print('此方程第二個解為: ' + str(x2))
p =
for x in (1, 2, 3):
print('請輸入ax^2+bx+c的' + chr(96 + x))
quadratic(p[0], p[1], p[2])
接下來說一說函式的引數
對於乙個簡單的函式,例如
def
power
(x):
return x * x
x就是位置引數
在呼叫這個函式的時候,必須傳入也必須傳入1個位置引數。
對於:
def
power
(x, n=2):
s = 1
while n > 0:
n = n - 1
s = s * x
return s
x則為位置引數,n為預設引數。如果是power(2,3),那計算的就是2的3次方,輸入power(2)算得是2的平方,也就是說,位置引數依然要輸入,而預設引數可以不輸入,輸入了就按你輸入的算,不輸入就按預設的算。使用預設引數要注意乙個變數的坑,在廖老師這章節有寫。
對於函式:
def
calc
(*numbers):
sum = 0
for n in numbers:
sum = sum + n * n
return sum
numbers是乙個可變引數,可以用calc(2,3)也可以calc(2,3,4,5,6)等等,個數不限可編。而對於現成的list和tuple,可以:
a=[2,4,5]
calc(*a)
在函式內部,a中的元素會被組裝成乙個元組來使用。
對於關鍵字引數暫時沒什麼講的,區別於可變引數的的乙個號搭配列表和元組,關鍵字引數搭配得是兩個號和字典。命名關鍵字引數暫時也沒什麼說的。
廖老師說過:
在python中定義函式,可以用必選引數、預設引數、可變引數、關鍵字引數和命名關鍵字引數,這5種引數都可以組合使用。但是請注意,引數定義的順序必須是:必選引數、預設引數、可變引數、命名關鍵字引數和關鍵字引數。說說遞迴,遞迴神,迭代人,我還是個凡人,暫時說不出什麼門道,先挖個坑。
假期python複習3
帶引數的裝飾器 500個函式 timmer out flage def timmer out flag def timmer func def inner args,kwargs if flag start time.time ret func args,kwargs end time.time p...
Python閉包和裝飾器再複習
在乙個外函式中定義了乙個內函式,並且內函式用到了外部函式的變數,而且外函式的返回值是內函式的引用,這就構成了乙個閉包。一般情況下,在我們認知當中,如果乙個函式結束,函式的內部所有東西都會釋放掉,還給記憶體,區域性變數都會消失。但是閉包是一種特殊情況,如果外函式在結束的時候發現有自己的臨時變數將來會在...
java再複習 異常總結
異常體系 throwable頂層介面 error 錯誤體系,發生這種錯誤,代表發生了不可挽回的錯誤,jvm會直接停止執行,並不提供任何可處理機制,只列印相關錯誤資訊。exception 異常體系,發生這種異常,相當於生病,有的可處理,有的不可處理,但是都是只是 病 沒有致命的問題,可以解決。runt...