先選取了 6 個自己認為值得玩味的 python代碼,希望對正在學習 python 的你有所幫助。
創新互聯專注為客戶提供全方位的互聯網綜合服務,包含不限于成都做網站、網站設計、外貿營銷網站建設、鐵門關網絡推廣、成都微信小程序、鐵門關網絡營銷、鐵門關企業策劃、鐵門關品牌公關、搜索引擎seo、人物專訪、企業宣傳片、企業代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創新互聯為所有大學生創業者提供鐵門關建站搭建服務,24小時服務熱線:18982081108,官方網址:vcdvsql.cn
1、類有兩個方法,一個是 new,一個是 init,有什么區別,哪個會先執行呢?
運行結果如下:
再來看另一個例子
運行結果如下:
這里給出官方的解釋: init 作用是類實例進行初始化,第一個參數為 self,代表對象本身,可以沒有返回值。 new 則是返回一個新的類的實例,第一個參數是 cls 代表該類本身,必須有返回值。很明顯,類先實例化才能產能對象,顯然是 new 先執行,然后再 init ,實際上,只要 new 返回的是類本身的實例,它會自動調用 init 進行初始化。但是有例外,如果 new 返回的是其他類的實例,則它不會調用當前類的 init 。下面我們分別輸出下對象 a 和對象 b 的類型:
可以看出,a 是 test 類的一個對象,而 b 就是 object 的對象。
2、map 函數返回的對象
map()函數第一個參數是 fun,第二個參數是一般是 list,第三個參數可以寫 list,也可以不寫,作用就是對列表中 list 的每個元素順序調用函數 fun 。
有沒有發現,第二次輸出 b 中的元素時,發現變成空了。原因是 map() 函數返回的是一個迭代器,并用對返回結果使用了 yield,這樣做的目的在于節省內存。 舉個例子:
執行結果為:
這里如果不用 yield,那么在列表中的元素非常大時,將會全部裝入內存,這是非常浪費內存的,同時也會降低效率。
3、正則表達式中 compile 是否多此一舉?
比如現在有個需求,對于文本 中國 ,用正則匹配出標簽里面的“中國”,其中 class 的類名是不確定的。有兩種方法,代碼如下:
這里為什么要用 compile 多寫兩行代碼呢? 原因是 compile 將正則表達式編譯成一個對象,加快速度,并重復使用。
4、[[1,2],[3,4],[5,6]]一行代碼展開該列表,得出[1,2,3,4,5,6]
5、一行代碼將字符串 "-" 插入到 "abcdefg"中每個字符的中間
這里也建議多使用 os.path.join() 來拼接操作系統的文件路徑。
6、zip 函數
zip() 函數在運算時,會以一個或多個序列(可迭代對象)做為參數,返回一個元組的列表。同時將這些序列中并排的元素配對。zip() 參數可以接受任何類型的序列,同時也可以有兩個以上的參數;當傳入參數的長度不同時,zip 能自動以最短序列長度為準進行截取,獲得元組。
python中def意思是聲明函數。Python 使用def 開始函數定義,緊接著是函數名,括號內部為函數的參數,內部為函數的 具體功能實現代碼,如果想要函數有返回值, 在 expressions 中的邏輯代碼中用 return 返回。expressions實例def function():print('This is a function')a = 1+2print(a)function 的函數,函數沒有不接受參數,所以括號內部為空,緊接著就是 函數的功能代碼。如果執行該腳本,發現并沒有輸出任何輸出,因為我們只定義了函數,而并沒有執行函數。 這時我們在 Python 命令提示符中輸入函數調用 function(), 注意這里調用函數的括號不能省略。那么函數內部的功能代碼將會執行,輸出結果:This is a function。
1、使用while循環
定義一個累加求和函數sum1(n),函數代碼如下:
?
2、使用 for循環
定義一個累加求和函數sum2(n),函數代碼如下:
?
3、使用遞歸函數
定義一個累加求和函數sum3(n),函數代碼如下:
?
二、使用了三種實現累加求和的方法,分別定義了三個函數。
1、對0-100實現累加求和,令n=100,分別調用三個函數,
代碼如下:
?
2、 控制臺的輸出結果都為:5050
?
3、這里需要注意的是:
1、在while循環中需要定義初始值和累加變量,防止出現死循環;
分享文章:python函數代碼 python函數代碼大全
文章路徑:http://vcdvsql.cn/article46/dooddhg.html
成都網站建設公司_創新互聯,為您提供關鍵詞優化、網站改版、網站策劃、品牌網站制作、面包屑導航、App設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯