0.請問以下哪個是形參哪個是實參?
def myfun(x):
return x ** 3
y = 3
print(myfun(y))
1. 函式文件和直接用「#」為函式寫注釋有什麼不同?
2. 使用關鍵字引數,可以有效避免什麼問題的出現呢?
3. 使用help(print)檢視print()這個bif有哪些預設引數?分別起到什麼作用?
4. 預設引數和關鍵字引數表面最大的區別是什麼?
0. 編寫乙個符合以下要求的函式:
a) 計算列印所有引數的和乘以基數(base=3)的結果
b) 如果引數中最後乙個引數為(base=5),則設定基數為5,基數不參與求和計算。
1. 尋找水仙花數
題目要求:如果乙個3位數等於其各位數字的立方和,則稱這個數為水仙花數。例如153 = 13+53+3^3,因此153是乙個水仙花數。編寫乙個程式,找出所有的水仙花數。
2. 編寫乙個函式findstr(),該函式統計乙個長度為2的子字串在另乙個字串**現的次數。例如:假定輸入的字串為"you cannot improve your past, but you can improve your future. once time is wasted, life is wasted.",子字串為"im",函式執行後列印「子字母串在目標字串中共出現3次」。
3.請寫下這一節課你學習到的內容:格式不限,回憶並複述是加強記憶的好方式!
0. x是形參,y是實參。
1. 函式文件是函式的說明檔案,需要利用函式特殊屬性檢視形式(比如myfirstfunction.__doc__)才看得到。另外,用help(myfirstfunction)也可檢視該函式。直接用#注釋只有開啟源程式才看得到,不會輸出到螢幕。
2. 使用關鍵字引數可有效避免呼叫函式時輸入錯誤的引數順序。
3. print()中的引數如下:
print(*values, sep=' ', end='\n', file=sys.stdout, flush=false)各個引數的作用是:
*values
表示要列印的值 。
表示任何多個無名引數, 各個值之間用『,』(逗號隔開),列印出來各個值之間用空格隔開
sep表示當輸入多個列印的值時,各個值之間分割方式, 預設空格,可以自定義
>>> print('a', 'b', 'c')
輸出為: a b c (中間預設用空格隔開)
當設定sep = 『\n』時上面**結果為:ab
cend
控制print中傳入值輸出完後結束符號,預設換行,這裡可以設定為其他,如 『\t』, 』 』 等等, 可以自己定義
print('python') print('is good') 輸出為: python is good 預設換行,
如果設定:end=' ' print('python', end=' ') print('is good') 則輸出為: python is good 一行
file=sys.stdout
設定輸出裝置,及把print中的值列印到什麼地方,預設輸出到準端,可以設定file= 檔案儲存物件,把內容存到該檔案中
f = open(r'a.txt', 'w') print('python is good', file=f) f.close() 則把python is good儲存到 a.txt 檔案中
flush=false
該引數主要是重新整理, 預設false,不重新整理,ture時重新整理
在file=sys.stdout的例子中,f = open(r'a.txt', 'w') print('python is good', file=f, flush=true)
正常情況下print到f中的內容先從到記憶體中,當檔案物件關閉時才把內容輸出到 a.txt 中,當flush=true時它會立即把內容重新整理存到 a.txt 中
4. 預設引數是給關鍵字賦了值,關鍵字引數沒有賦值。
二、0. 程式如下
>>> def myfun(*params,base=3):
result = base
for i in params:
result = result*i
return result
>>> myfun(2,3,4)
72>>> myfun(2,3,4,base = 5)
120
1. 程式如下:
>>> def daffodil(i = 100):
print('所有水仙花數為:')
while i < 1000:
i1 = i//100
i2 = i%100//10
i3 = i%100%10
i1 = i1**3
i2 = i2**3
i3 = i3**3
if i == (i1+i2+i3):
print(i,end=' ')
i += 1
else:
i += 1
continue
>>> daffodil()
所有水仙花數為:
153 370 371 407
3. 程式如下:
>>> def findstr(str1,subs):
times = 0
sat = 0
lenth1 = len(str1)
lenth2 = len(subs)
while (str1.find(subs,sat)) != -1 and (sat <= lenth1): #之前的程式執行不出來的原因是沒有加上(sat <= lenth1)
sat = str1.find(subs,sat) + lenth2
times += 1
print('子字母串在目標字串中共出現',times,'次')
#本程式的基本思路是:利用字串的內建方法find來尋找子字串的位置,根據find的特點:返回最近的子字串的第乙個位置的位置 。先在全部字段定址,然後把前乙個找到的位址掐掉(加上子字串的長度),在新的位置開始繼續定址。即每次縮小find的範圍來尋找子字串,每找到一次,計數變數times就記一次數。
結果:>>> findstr('you cannot improve your past, but you can improve your future. once time is wasted, life is wasted.','im')
子字母串在目標字串中共出現 3 次
>>> findstr('sdkjfh','d')
子字母串在目標字串中共出現 1 次
>>> findstr('各個國家有各個國家的國歌,我的國家是中國,歡迎來到我的國家做客,中國歡迎你!','國家')
子字母串在目標字串中共出現 4 次
4. 課堂重點:
def myfun(name, words):比如:《執行語句》
呼叫 myfun(a, b) 等價於myfun(name=a, words=b)
>>> def test(*params,extra):
print("收集引數是:",params)
print("位置引數是:",extra)
>>> test(1, 2, 3, 4, 5, 6, 7, extra = 8)
收集引數是: (1, 2, 3, 4, 5, 6, 7)
位置引數是: 8
小甲魚python零基礎入門 學習筆記 元組
簡單來說 元組就是不能修改值的列表,即不可變的列表。如果需要儲存的一組值在程式的整個生命週期內不變,可使用元組。元組與列表在 上的區別 元組的定義用 型別是tuple 列表的定義用,型別是list name list peter william jack tom alice jim type nam...
小甲魚零基礎彙編 基礎知識01
組合語言是直接在硬體之上工作的程式語言,首先要了解硬體系統的結構,才能有效的應用組合語言對其程式設計。在本章中,對硬體系統結構的問題進行一部分的 以使後續的課程在乙個好的基礎上進行。當課程進行到需要補充新的基礎知識 關於程式設計結構或其他的 時候,再對相關的基礎知識進行介紹和 本書的原則是,以後用到...
小甲魚零基礎入門學python 學習總結之集合
一 集合的建立 class set iterable class frozenset iterable 注 通過frozenset 建立的集合是不可變的。返回乙個新的 set 或 frozenset 物件,其元素來自於 iterable。集合的元素必須為 hashable。要表示由集合物件構成的集合...