ql的python学习之路-day7
生活随笔
收集整理的這篇文章主要介紹了
ql的python学习之路-day7
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
函數與函數式編程
一.編程模式分為三種:
1.面向對象編程:類----->關鍵字class
2.面向過程編程:過程----->關鍵字def,沒有return
3.函數式編程:函數----->關鍵字def,有return返回值(注:函數式編程與我們學習的函數完全不是一回事)
面向過程編程是沒有返回值的函數式編程,在python中過程可以看做函數,只是python默認過程沒有返回值。
面向過程編程就是把一段段零散的代碼通過def定義成一塊塊代碼,需要調用的時候就拿出來使用。
函數式編程就是一種抽象程度很高的編程范式,純粹的函數式編程語言編寫的函數沒有變量,因此任意一個函數,只要輸入是確定的,輸出就是確定的
python對函數式編程提供部分支持,由于python允許使用變量,所以python不是純粹的函數式編程語言。
1 #!/user/bin/env python 2 #-*-coding:utf-8 -*- 3 #Author: qinjiaxi 4 #函數 5 def func1(): 6 """testing1""" 7 print('in the func1') 8 return 0 9 #過程 10 def func2(): 11 """testing2""" 12 print('in the func2') 13 x = func1()#調用函數 14 y = func2()#調用過程 15 print('func1 return: {}'.format(x))#函數有返回值返回定義函數時的0 16 print('func2 return: {}'.format(y))#過程沒有返回值返回None二.為什么要使用函數
1.避免代碼重復(避免代碼的重復,把代碼封裝到函數中,調用時只調用函數)
2.保持一致性(調用函數時)
3.可擴展容易擴展(修改函數時,其他調用函數的地方都跟著變動)
?三.函數的返回值
1.返回值個數=0,返回None
2.返回值個數=1,返回object(本身)
3.返回值個數>1,返回tuple(元組)
四.函數為什么要有返回值
返回整個函數的運行結果,根據返回結果進行后面的操作
五.函數的參數
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # Author:qinjiaxi 4 5 #位置參數和關鍵字參數 6 def test(x,y): 7 print(x,y) 8 test(1,2)#1,2是位置參數,按照位置來傳遞函數參數,與形參一一對應 9 test(y = 1, x = 2)#此時y和x是關鍵字參數,將形參賦值與形參順序無關 10 "其中x,y是形參,1、2是實參" 11 "位置參數和關鍵字參數共同使用的時候:必須位置參數放在前面,否則報錯" 12 13 #默認參數 14 def test1(x, y =2): 15 print(x,y) 16 test1(1) 17 "默認參數:在定義函數的時候給形參賦值" \ 18 "默認參數的特點:調用函數的時候,默認參數非必須傳遞,如果傳遞就修改之前的賦值" \ 19 "默認參數的用途:1.提前固定值,默認安裝值 2.連接數據庫時使用默認參數可以固定端口號" \ 20 21 #參數組(也叫收集參數) 22 #傳遞多個參數 23 def test2(*args): 24 print(args) 25 test2(1,2,3,4,5)#接受多個實參,將參數傳進去得到一個元組 26 test2(*[1,2,3,4,5])# args = tuple([1,2,3,4,5]) 27 28 def test3(x, *args): 29 print(x) 30 print(args) 31 test3(1,2,3,4,5)#將1傳給1,其他的以元組的形式傳遞給args 32 33 #傳遞多個字典參數 34 def test4(**kwargs): 35 print(kwargs) 36 test4(name = 'qinlang', age = 3)#接收關鍵字參數變成字典 37 test4(**{'name': 'qinlang', 'age': '3'})#kwargs = dict({'name':'qinlang', 'age':'3'}) 38 "功能:把N個關鍵字參數,轉換為字典的方式" 39 40 def test5(name,**kwargs): 41 print(name) 42 print(kwargs) 43 test5('秦朗', x = 111 ,y =222, age = 8)#先接受位置參數,然后把關鍵字參數變成字典 44 45 def test6(name, age = 3, **kwargs): 46 print(name) 47 print(age) 48 print(kwargs) 49 test6('秦朗',hobby = 'play',age = 3.5)#先接受位置參數,然后接受默認參數,最后將關鍵字參數變成字典 50 51 "總結:*args接受的是位置參數,如果調用函數的時候不傳遞則返回一個空元組" 52 " *kwargs接受的是關鍵字參數,如果調用函數的時候不傳遞則返回一個空字典" 53 " 默認參數在調用的時候可以寫可以不寫,如果寫的話有兩種方式一是在固定位置寫值、二是以關鍵字參數傳遞" 54 " 最后強調,位置參數一定得放在關鍵字參數的后面"?
?
?
?
轉載于:https://www.cnblogs.com/qinlangsky/p/9459054.html
總結
以上是生活随笔為你收集整理的ql的python学习之路-day7的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Day13_01_Java中的加解密之B
- 下一篇: Python 五角星的画法 five s