日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

FishC笔记—18 讲 函数:灵活即强大

發(fā)布時間:2023/12/20 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FishC笔记—18 讲 函数:灵活即强大 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本期內(nèi)容詳解:
1、分清楚形參和實參
2、函數(shù)文檔:是函數(shù)的一部分,于解釋不同,使用help(函數(shù)名)或者 函數(shù)名__doc__可以查看到
3、關(guān)鍵字參數(shù)(在一個函數(shù)的參數(shù)較多的時候作用比較明顯):
給參數(shù)的名字下定義,例如:
def F(name,words)
如下兩種引用的方法是等價的
F(A,B) = F(words=B,name=A)
4、默認參數(shù):函數(shù)定義時為形參賦初值,函數(shù)調(diào)用時若沒有傳遞參數(shù),則自動使用初值
def F(name=C,words=D)
5、收集參數(shù):
def test(*params)
test(1,’小甲魚’,3.14,7,8,9)

典型課后題
請問以下哪個是形參哪個是實參?

def MyFun(x): return x ** 3 y = 3 print(MyFun(y))

答:x是形參,y是實參。跟絕大部分編程語言一樣,形參指的是函數(shù)創(chuàng)建和定義過程中小括號里的參數(shù),而實參指的是函數(shù)在調(diào)用過程中傳遞進去的參數(shù)。

函數(shù)文檔和直接用“#”為函數(shù)寫注釋有什么不同?

給函數(shù)寫文檔是為了讓別人可以更好的理解你的函數(shù),所以這是一個好習慣:

def MyFirstFunction(name): '函數(shù)文檔在函數(shù)定義的最開頭部分,用不記名字符串表示' print('I love FishC.com!')

我們看到在函數(shù)開頭寫下的字符串Ta是不會打印出來的,但Ta會作為函數(shù)的一部分存儲起來,這個我們稱之為函數(shù)文檔字符串,Ta的功能跟注釋是一樣的。
函數(shù)的文檔字符串可以按如下方式訪問:

>>> MyFirstFunction.__doc__ '函數(shù)文檔在函數(shù)定義的最開頭部分,用不記名字符串表示'

另外,我們用help()來訪問這個函數(shù)也可以看到這個文檔字符串:

>>> help(MyFirstFunction) Help on function MyFirstFunction in module __main__: MyFirstFunction(name) 函數(shù)文檔在函數(shù)定義的最開頭部分,用不記名字符串表示

使用關(guān)鍵字參數(shù),可以有效避免什么問題的出現(xiàn)呢?
答:關(guān)鍵字參數(shù),是指函數(shù)在調(diào)用的時候,帶上參數(shù)的名字去指定具體調(diào)用的是哪個參數(shù),從而可以不用按照參數(shù)的順序調(diào)用函數(shù),例如:

>>> def SaySome(name, words): print(name + '->' + words) >>> SaySome(words='讓編程改變世界!', name='小甲魚')

使用help(print)查看print()這個BIF有哪些默認參數(shù)?分別起到什么作用?

>>> help(print) Help on built-in function print in module builtins: print(...) print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) Prints the values to a stream, or to sys.stdout by default. Optional keyword arguments: file: a file-like object (stream); defaults to the current sys.stdout. # 文件類型對象,默認是sys.stdout(標準輸出流) sep: string inserted between values, default a space. # 第一個參數(shù)如果有多個值(第一個參數(shù)是收集參數(shù)),各個值之間默認用空格(space)隔開 end: string appended after the last value, default a newline. # 打印最后一個值之后默認參數(shù)一個新行標識符(‘\n’) flush: whether to forcibly flush the stream. # 是否強制刷新流

默認參數(shù)和關(guān)鍵字參數(shù)表面最大的區(qū)別是什么?

答:默認參數(shù)是賦予形式參數(shù)默認值,關(guān)鍵字參數(shù)是使得實際參數(shù)與形參相對應而避免順序錯誤引發(fā)的系統(tǒng)報錯。
關(guān)鍵字參數(shù)是在函數(shù)調(diào)用的時候,通過參數(shù)名制定需要賦值的參數(shù),這樣做就不怕因為搞不清參數(shù)的順序而導致函數(shù)調(diào)用出錯。而默認參數(shù)是在參數(shù)定義的過程中,為形參賦初值,當函數(shù)調(diào)用的時候,不傳遞實參,則默認使用形參的初始值代替。

編寫一個符合以下要求的函數(shù):
a) 計算打印所有參數(shù)的和乘以基數(shù)(base=3)的結(jié)果
b) 如果參數(shù)中最后一個參數(shù)為(base=5),則設(shè)定基數(shù)為5,基數(shù)不參與求和計算。

def Sum(*params,base=3): result = 0 for i in params: result += i return result*base

尋找水仙花數(shù)
題目要求:如果一個3位數(shù)等于其各位數(shù)字的立方和,則稱這個數(shù)為水仙花數(shù)。例如153 = 1^3+5^3+3^3,因此153是一個水仙花數(shù)。編寫一個程序,找出所有的水仙花數(shù)。

def Daffodils(): print('所有的水仙花數(shù)為:',end='') temp = 100 while temp < 1000: if temp == (temp//100)**3 + ((temp%100)//10)**3 + (temp%10)**3: print(temp,end=' ') temp += 1 else: temp += 1

編寫一個函數(shù)findstr(),該函數(shù)統(tǒng)計一個長度為2的子字符串在另一個字符串中出現(xiàn)的次數(shù)。例如:假定輸入的字符串為”You cannot improve your past, but you can improve your future. Once time is wasted, life is wasted.”,子字符串為”im”,函數(shù)執(zhí)行后打印“子字母串在目標字符串中共出現(xiàn)3次”。
程序執(zhí)行效果:

def findstr(): print('請輸入目標字符串:',end='') temp = input() print('請輸入子字符串(兩個字符):',end='') comp = input() count = 0 i = 0 for i in range(len(temp)): if temp[i] == comp[0] and temp[i+1] == comp[1]: count += 1 i += 1 else: i += 1 count = int(count) print('子字符串在目標字符串中總共出現(xiàn) %d 次'%count) findstr()

參考答案:

def findStr(desStr, subStr): count = 0 length = len(desStr) if subStr not in desStr: print('在目標字符串中未找到字符串!') else: for each1 in range(length): if desStr[each1] == subStr[0]: if desStr[each1+1] == subStr[1]: count += 1 print('子字符串在目標字符串中共出現(xiàn) %d 次' % count) desStr = input('請輸入目標字符串:') subStr = input('請輸入子字符串(兩個字符):') findStr(desStr, subStr)

總結(jié)

以上是生活随笔為你收集整理的FishC笔记—18 讲 函数:灵活即强大的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。