1. 程式人生 > >python基礎學習筆記——初識函式

python基礎學習筆記——初識函式

什麼是函式

我們目前為止,已經可以完成一些軟體的基本功能了,那麼我們來完成這樣一個功能:約x

1 2 3 4 5 pint( "拿出手機" ) print
( "開啟陌陌" ) print ( "找個漂亮的妹子" ) print ( "問她,約不約啊!" ) print ( "ok 走起" )

ok so easy我們已經完成了對一個功能的描述,那麼問題來了,我還想在約一次怎麼搞,是不是就是在寫一遍

1 2 3 4 5 6 7 8 9 10 11 12 13 # 約一次 pint( "拿出手機" ) print ( "開啟陌陌" ) print ( "找個漂亮的妹子" ) print ( "問她,約不約啊!" ) print ( "ok 走起" )   # 再約一次 pint( "拿出手機" ) print ( "開啟陌陌" ) print ( "找個漂亮的妹子" ) print ( "問她,約不約啊!" ) print ( "ok 走起" )

ok 非常簡單搞定了,但是我還想約上個10次8次的,怎麼搞,加個迴圈不就行了嗎?

1 2 3 4 5 6 while  True :      pint( "拿出手機" )      print ( "開啟陌陌" )      print ( "找個漂亮的妹子" )      print ( "問她,約不約啊!" )      print ( "ok 走起" )

這樣不就能實現不停的約了嗎?但是呢 我一直約不是幹不了別的了嗎?.人要有節制,有需求了再約,這樣比較好.所以呢這樣寫是不行的

最好是我想什麼時候約就什麼時候約. 好了說的這 我們就這樣做,把約這個事,先計劃好,然後按照安排好的流程.在需要約的時候 把這個約

的流程拿出來執行以下就好了.那麼這裡.我們可以先去定義一個事情或者是功能,等到需要的時候直接去用就好了.那麼這裡定義東西就是一個函式

函式:對程式碼塊和功能的封裝和定義

函式的定義

首先咱們認識一下要實現我們剛說的功能必備的知識點

1 2 def  函式名():      函式體

我們使用def關鍵字來定義函式,函式的定義語法,這裡的函式名的命名規則和變數的命名規則一樣.自己回顧一下變數的命名規則

函式體:就是函式被執行之後要執行的程式碼

我們現在就來實現剛剛我們說的定義一個約x功能:

1 2 3 4 5 6 def  make():      print ( "拿出手機" )      print ( "開啟陌陌" )      print ( "找一個漂亮的妹子" )      print ( "問她,約不約啊" )      print ( "ok 走起" )

哦了,這就定義完了,但是這個時候我們去執行,會發生什麼現象? 什麼都沒有發生.因為我只定義了一個函式.但是還沒有執行過這個函式.

函式的呼叫

使用函式名加小括號就可以呼叫了  寫法:函式名()  這個時候函式的函式體會被執行

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 # 呼叫yue函式   def  make():      print ( "拿出手機" )      print ( "開啟陌陌" )      print ( "找一個漂亮的妹子" )      print ( "問 約不約啊" )      print ( "ok 走起" )     make()    # 這是make函式的呼叫   結果: 拿出⼿手機 開啟陌陌 找個漂亮的妹⼦ 問她, 約不約啊 ok. 走你

函式的執行流程

現在就實現了約一次,我想要約幾次我就只需要

1 2 3 4 5 6 make() make() make() make() make() make()

直接呼叫定義好的函式就可以了  咱們約完之後的得有個結果吧, 比如是約的蘿莉,還是大媽啊總得有個結果,那麼這個結果

怎麼來描述和獲得呢? 這就涉及到函式的返回值啦

函式的返回值

執行完函式之後,我們可以使用return來返回結果

1 2 3 4 5 6 7 8 def  make():      print ( "約你" )      print ( "約我" )      print ( "約他" )      return         print ( "約誰呀" )     # 這句話不會被執行       make()

函式中遇到return,此函式結束.不在繼續執行

我們現在有return返回值,我們試試返回個東西

1 2 3 4 5 6 7 def  make():      print ( "約你" )      print ( "約我" )      print ( "約他" )      return   "美女一枚"       make()

我們現在返回了一個字串,但是返回給誰了呢? 這個返回值返回給函式的呼叫者了,我們來看一下

1 2 3 4 5 6 7 8 9 10 11 12 13 14 def  make():      print ( "約你" )      print ( "約我" )      print ( "約他" )      return  '美女一枚'   girl  =  make() print (girl)   結果: 約你 約我 約他 美女一枚

肯定好多朋友還是不明白上邊怎麼就列印美女一枚了,莫慌看下圖:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1. 定義了一個函式make   2. 呼叫函式   3. 執行函式裡的約你   4. 執行函式裡的約我   5. 執行函式裡的約他   6. 返回給呼叫者一個字串 '美女一枚' ,這個呼叫者就是make()   7. 將返回的字串通過一個等號賦值給白變數girl   8. 列印變數girl的值

函式的返回值可以有多個結果:

1 2 3 4 5 6 7 def  make():         print ( "約你" )         print ( "約我" )         print ( "約他" )         return  "美女一枚" "蘿莉一枚" girl  =  make() print ( type (girl))    # tuple

總結一下:

  1.遇到return,此函式結束,函式後面的東西將不會在執行

  2.return 返回值

    關於返回值:

      如果return什麼都不寫或者乾脆就沒寫return,返回的結果就是None

      如果return後面寫了一哥值,則呼叫者可以接受一個結果

      如果return後面寫了多個結果,則呼叫者可以接受一個tuple,呼叫者可以直接使用解構獲取多個變數

 

OK,完美 可以得到結果了 但是我們約的方式是不是有點問題啊?陌陌現在還能約到嗎?約不到了 我們換探探 那要是過幾天探探也不行了

是不是會有一個替代品,那你們想有一個替代的,你就需要去改程式碼.是不是有點不合適了  最好的方式是想用什麼約就用什麼約  ok 我們也是可以實現的

我們可以在函式後邊的括號裡搞點事情

函式的引數

引數,也就是函式括號裡的內容 函式在呼叫的時候指定一個具體的變數的值 就是引數.寫法如下:

1 2 def  函式名(引數):      函式體  

我們應該把程式碼改一下,能夠實現我剛說的那種效果

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 def  make(chat):      print ( "拿出⼿手機" )      print ( "開啟" + chat)      print ( "找個漂亮的妹⼦子" )      print ( "約不不約" )   make( "陌陌" ) make( "微信" ) make( "探探" ) 結果: 拿出手機   開啟陌陌   找個漂亮的妹⼦   約不約   拿出⼿機   開啟微信   找個漂亮的妹⼦   約不約   拿出手機   開啟探探   找個漂亮的妹⼦   約不約 

搞定了. 我們在呼叫make的時候給chat一個值. 然後再執行函式體. 

引數

  1.形參

    寫在函式宣告的位置的變數叫形參,形式上的一個完整.表示這個函式需要xxx

  2.實參

    在函式呼叫的時候給函式傳遞的值.加實參,實際執行的時候給函式傳遞的資訊.表示給函式xxx

  3.傳參

    給函式傳遞資訊的時候將實際引數交給形式引數的過程被稱為傳參.

1 2 3 4 5 6 7 8 9 def  make(chat):     # chat  形參         print ( "拿出手機" )         print ( "開啟" + chat)         print ( "找個漂亮的妹子" )         print ( "約不約" )       make( "陌陌" )     # 實參 len ( "字串" )     # "字串"在這⾥裡里就是實參 print ( "麻花藤" )     # "麻花藤"就是實參  

引數的分類

  1.位置引數

  約到現在,有沒有想過這麼一個問題,什麼樣的都約麼? 哪裡的都約麼? 不一定吧.比如我現在在北京,我很寂寞,我喜歡小姐姐 

     alex在泰國,很寂寞 來一個就行了 .需要是不一樣的 而我們現在的函式沒沒有這寫功能 那怎麼辦呢? 很簡單 多來幾個引數就好了

1 2 3 4 5 6 7 8 9 10 11 12 13 def  make(chat,addr,age):     # chat  形參      print ( "拿出手機" )      print ( "開啟" + chat)      print ( "找個"  +  addr  + "附近漂亮的"  +  str (age)  +  "歲妹子" )      print ( "約不約" )   make( "陌陌" , "北京" , 18 )     # 實參   結果: 拿出手機 開啟陌陌 找個北京附近漂亮的 18 歲妹子 約不約

上述程式碼分析: 在訪問make()的時候,我們按照位置的順序分別把"陌陌","北京",18賦值給了chat,addr,age,在傳參過程中.系統會按照位置吧實參賦值到形參

練習

編寫函式,給函式傳遞兩個引數a,b  a,b相加 返回a引數和b引數相加的和

def f(a,b):
c = a+b
return c

num_sum = f(5,8)
print(num_sum)
1 結果:  13

編寫函式,給函式傳遞兩個引數a,b 比較a,b的大小 返回a,b中最大的那個數

1 2 3 4 5 6 7 8 9 10 def  f(a,b):      if  a>b:          return  a      else :          return  b   num_sum  =  f( 5 , 8 ) print (num_sum)   結果: 8

比較大小的這個寫法有點麻煩,我們在這裡學一個三元運算子

1 2 3 4 5 6 7 8 def  f(a,b):      =  if  a > b  else  b   #當a>b就把a賦值給c,否則就把b賦值給c      return  c msg  =  f( 5 , 7 ) print (msg)   結果: 7

關鍵字引數 

位置引數好不好呢?  如果是少量的引數還算OK, 沒有問題. 但是如果函式在定義的時候引數非常多怎麼辦? 程式設計師必須記住, 我有哪些引數, 而且還有記住每個引數的位置, 否則函式就不能正常呼叫了. 那則麼辦呢? python提出了一種叫做關鍵字引數. 我們不需要記住每個引數的位置. 只要記住每個引數的名字就可以了 

1 2 3 4

相關推薦

python基礎學習筆記——初識函式

什麼是函式 我們目前為止,已經可以完成一些軟體的基本功能了,那麼我們來完成這樣一個功能:約x 1 2 3

python基礎學習筆記(五)裝飾器,高階函式

多程序程式設計import multiprocessing def process1(): return 1 def process2(): return 2 p1=multiprocessing.Process(target=process1) p2=m

python基礎學習筆記

好的 留下 path false 找到 __name__ ems 單詞 ups 1 #!/usr/bin/env python 2 #coding=utf-8 3 4 def login(username): 5 if username==‘

Python基礎學習筆記02之list

python基礎 出現的次數 nbsp 增刪改查 新增 列表 insert 就是 下標越界 一、LIst列表 1、定義List ps:計算機裏面起始都是從0開始的 編號也叫下標、索引、角標 例:根據下標取值

Python基礎學習筆記(四)

tde 分割 大括號 val dict 元組 學習筆記 del date 一 認識字典 二 增刪改查 三 常見操作 一 認識字典   字典是一種可變容器模型,且可存儲任意類型對象。   字典的每個鍵值(key=>value)對用冒號(:)分割,每個對之間用逗號(,

Python基礎學習筆記(六)

學習筆記 當前 read 記得 刪除 enc see 各類 準備 一 文件操作 一 文件操作   在寫程序的時候 有時候會需要對程序外部的文件進行操作 這時候就需要需要用到文件句柄對文件進行操作.   打開文件 f = open(‘文件路徑‘,mode=‘打開模式

Python基礎學習筆記(二)

一、Windows平臺 1、下載Python 3.6.4 https://www.python.org/ 2、雙擊安裝即可,注意點選Add python 3.6 to path 3、win+r 輸入cmd 開啟控制檯 輸入python命令,檢視是

內建資料型別(上)---Python基礎學習筆記(四)

內建資料的三大主要型別: 1、數字(整數、浮點數) 2、序列(字串、列表、元組) 3、對映(字典) 按照是否可原地修改值分兩大類: 不可變物件(數字,字串,元組,不可變集合) 可變物件(列表,字典,可變集合) 一、整數(不

內建資料型別(下)---Python基礎學習筆記(六)

一、if-else條件語句 條件語句,條件滿足,執行一部分程式碼,不滿足,執行另一部分程式碼 四種基本格式: 1、單if …① if條件: 條件滿足時執行的程式碼…② …③ 執行順序: S1:執行① S2

面向物件(中)---Python基礎學習筆記(十)

一、單繼承 在程式中,繼承描述的是事物之間的所屬關係,例如貓和狗都屬於動物,程式中便可以描述為貓和狗繼承自動物。 #定義一個父類,如下: class Cat(object): def_in

python基礎學習筆記(一)

最好有點c++基礎來看,,每天都更新一篇吧 這一篇是一些基礎東西 1.運算子2.變數3.基本輸入輸出4.字串5.列表6.元組7.字典8.集合9.簡單的說下迴圈啥的 1.運算子 特別的 a / b:為浮點數,a // b 為整數,丟棄小數部分 a**b 為a的b次方 還有 c // = a,c ** = a;

python基礎學習筆記——運算子

 計算機可以進行的運算有很多種,可不只加減乘除這麼簡單,運算按種類可分為算數運算、比較運算、邏輯運算、賦值運算、成員運算、身份運算、位運算,今天我們暫只學習算數運算、比較運算、邏輯運算、賦值運算 算數運算      以下假設變數:a=10,b=20 比較運算 &nbs

python基礎學習筆記——字串方法

索引和切片: 索引:取出陣列s中第3個元素:x=s[2] 切片:用極少的程式碼將陣列元素按需處理的一種方法。切片最少有1個引數,最多有3個引數,演示如下: 我們假設下面所用的陣列宣告為array=[2,3,4,5,6] 1個引數: array[1:]——從下標為1的元素選擇到最後一個元素,返回

python基礎學習筆記——迴圈語句(while、for)

while 迴圈 流程控制語句 while   1、基本迴圈 while 條件: # 迴圈體 # 如果條件為真,那麼迴圈則執行 # 如果條件為假,那麼迴圈不執行   2、break break 用於退出當層迴圈

python基礎學習筆記——列表及元組

列表 列表的介紹          列表是python的基礎資料型別之一 ,其他程式語言也有類似的資料型別. 列表的索引和切片 列表和字串一樣也擁有索引: lst = ['劉德華','周潤發','周杰倫','向華強'] print(lst[0]

python基礎學習筆記——列表技巧

列表: 迴圈刪除列表中的每⼀個元素 li = [11, 22, 33, 44] for e in li: li.remove(e) print(li) 結果: [22, 44] 分析原因: for的運⾏過程. 會有⼀個指標來記錄當前迴圈的元素是哪⼀個, ⼀開始這個指標指向第0 個. 然後獲取

C++基礎學習筆記函式

//!時間:2017年9月9日(週六)夜 //!內容:C++函式基礎 //!最後更改時間:10分鐘之後,汗! #include <iostream> #include <string> #include <cassert> using

Python基礎學習筆記(1)

《Python快速上手》學習筆記 1.數學操作符 ** 指數 例子:2**3 = 8 // 整除/商數取證 例子:23//4 = 5 23/7 = 3 (向下取整) / 得出是float型 例子: 2/1 = 2.0 1010/5 =

python基礎學習筆記——生成器與推導式

生成器 首先我們來看看什麼是個生成器,生成器本質就是迭代器 在python中有三種方式來獲取生成器   1.通過生成器函式   2.通過各種推到式來實現生成器   3.通過資料的轉換也可以獲取生成器 首先,我們先看一個很簡單的函式:

Python基礎學習筆記(一)

安裝python可以去官網下載安裝包,各個系統安裝步驟可以自行搜尋。記錄python中常用語法:一、print:字串用'' 或者""print('hello') print("hello")連線字串用+二、運算直接在運行臺上用 加減乘除+-*/int() 和 float();