從零學習Python—調用函數def用法(上)

2020-12-16 路遙知知馬力哦

今天咱們繼續學習新一課,調用函數 def 的用法,咱們先來看例子:

def name():print('xiao xin')name()name()

def 的用法規則就是這樣,小括號不能省,小括號裡可以有內容也可以沒有內容,這裡我們稍候代入例子來講,後面還要接冒號,後面的代碼就是調用的代碼,咱們只用輸入 name(),就可以調用上面的代碼了。

就是像是收納箱一樣,咱們分類了的東西,放入到了一個name()的箱子裡,咱們要用到它時,直接輸入箱子的名字name(),就能找出裡的東西了。

好了,咱們在這個簡單的例子上加一點東西,讓它豐富起來:

def name(you):print(you.title()+' it is time to go home')name('xiao xin')

這裡的you叫作形參,'xiao xin'則為實參,這裡實參替換了形參,列印出了結果,這裡的實參可以換成任意其它的值,也可以無限次的調用。

不知道有沒有把大家繞暈呢?反正我當時學到這裡,我一下子就聯想到了之前學到的input()了,畢竟機器不與人互動,那就太沒意思了,於是我直接修改了一條代碼,就得到了我想要的結果:

def name(you):print(you.title()+' it is time to go home')name(input('you name'))

上圖是代碼和結果,我在這裡提到這個事,是希望大家把之前講過的東西拿出來用用,填鴨式的學習很呆,也會慢慢喪失興趣。

實際上的使用中可能包含多個形參,因此函數調用中也可能包含多個實參。向函數傳遞實參的方式很多,可使用位置實參,這要求實參的順序與形參的順序相同;也可使用關鍵字實參,其中每個實參都由變量名和值組成;還可使用列表和字典。

我們先來看看位置實參:

def parents(left,right):print('on the left is '+left)print('\non the right is '+right)parents('father','mother')

其實就是一一對應,順序不能有錯,中間用逗句隔開,其它的都和開頭一樣,沒有太多難點。

我們再來看看關鍵字實參,用它就不用考慮順序的問題:

def parents(left,right):print('on the left is '+left)print('\non the right is '+right)parents(right='mother',left='father')

有點像賦值的感覺,在關鍵字實參中一定要準確的知道形參名,不然就會報錯了。

如果從最開始就知道其中一個形參對應的實參,我們還可以把它簡化一下:

def parents(left,right='mother'):print('on the left is '+left)print('\non the right is '+right)parents('father')

這裡要注意的是,要按照順序,如果我們把 def parents(left,right='mother')

改成 def parents(right='mother',left) ,運行代碼就會發現出錯,當然我們也可以用關鍵字來進行指定。

調用函數def 也可以和if 結合使用,現在我們的名字中有個字的,也有三個字的,我們利用def 來試著寫一寫:

def name(first_name,last_name,middle_name=''):if middle_name: name = first_name +' '+ middle_name + ' '+last_nameprint(name)else: name = first_name+' '+last_nameprint(name)name('yuan','xin','xiao')name('xiao','xin')

這裡有兩個細節:1.我沒有用到關鍵字實參,所以我把middle_name放在了最後

2.middle_name=' ' 給了它一個字符串

3.middle_name如果不為空,則為True

其它的應該都好理解了,我就不細講了。

下面還有def與while、列表以及字典的一塊用法,我們下節再講。

相關焦點

  • Python裝飾器以及高級用法
    大多數人在學習Python時都跟裝飾器做過鬥爭,所以如果這對你來說很奇怪,不要感到沮喪,因為同樣的大多數人都可以克服這種苦難。在本教程中,我將逐步介紹了解裝飾器的過程。首先我假設你已經可以編寫基本函數和基本類。如果你不能做這些事,那麼我建議你在回到這裡之前先學習如何去做到編寫基本函數和基本類(除非你迷路了,在這種情況下你可以原諒)。
  • python高階函數:map、filter、reduce的替代品
    什麼是高階函數?高階函數是一種將函數作為參數,或者把函數作為結果返回的函數,map函數、sorted函數就是高階函數的典型例子。map函數在小編以前的文章中做過相應的知識分享。sorted函數是python的內置函數,它的可選參數key用於提供一個函數,它可以將函數應用到各個元素上進行排序。根據單詞長度,使用sorted函數對一個列表進行排序。
  • Python嵌套函數:外部函數與內部函數
    在學習條件判斷IF時,我們就知道「嵌套」的概念,而函數也是可以利用嵌套的。即函數內部可以再定義函數,俗稱嵌套函數。【1】嵌套函數語法我們從一個最簡單的案例著手:def outer():print("outer running!")
  • Python突破12306最後一道防線,實現自動搶票(附源碼)
    然後你所開發的模擬的任何行為,都會自動完成,你只需要坐在電腦面前,像看電影一樣看著屏幕上各種動作自動完成然後收集結果即可。這裡還是要推薦下小編的Python學習群:483546416,不管你是小白還是大牛,小編我都歡迎,不定期分享乾貨,包括小編自己整理的一份2017最新的Python資料和0基礎入門教程,歡迎初學和進階中的小夥伴。在不忙的時間我會給大家解惑。
  • PySpark源碼解析,用Python調用高效Scala接口,搞定大規模數據分析
    flatbuffer 是一種比較高效的序列化協議,它的主要優點是反序列化的時候,不需要解碼,可以直接通過裸 buffer 來讀取欄位,可以認為反序列化的開銷為零。我們來看看 Python 進程收到消息後是如何反序列化的。
  • python入門第九課:函數的定義及多種參數傳遞方式
    我可以定義一個輸出函數favorite_book(),每次調用這個函數時會列印出「我最喜歡的書是:某某書」,請看代碼:def favorite_book(book):"""輸出我最喜歡的書""" print('我最喜歡的書是:'
  • 好程式設計師Python培訓分享Python如何調用RPC接口
    Python如何調用RPC接口是很多Python開發工程師比較關心的問題,本篇文章好程式設計師Python培訓小編就給喜歡Python開發的小夥伴們分享一下Python調用RPC接口的詳解,文中有詳細的代碼列出有很好的參考價值,喜歡的小夥伴就隨小編一起來看一下吧,希望對大家有所幫助。
  • 軟體工程師的試煉之地:53道Python面試問答題
    編寫一個裝飾器,該裝飾器會在調用另一個函數時記錄日誌。編寫裝飾器函數。這需要一個函數func作為參數。它還定義了一個函數log_function_called,該函數調用func()並執行一些代碼print(f'{func}called。')。
  • Python入門基礎之map()、reduce()函數使用
    本文環境都是基於python3.X的,畢竟要學會擁抱未來,擁抱新的知識。Python3 現在已經發展的差不多了。1、 map()函數map()是 python 內置的高階函數,它接收一個函數 f 和一個 list,並通過把函數 f 依次作用在 list 的每個元素上,得到一個新的object並返回。
  • 來一點Python面向對象第一級進階的東西
    python面向對象中的反射:通過字符串的形式操作對象相關屬性.python中的一切事物都是對象(都可以使用反射)四個可以實現自省的函數下列方法適用類和對象(一切皆對象,類本身也是一個對象)__init__(self, name):self.name = name # 2試驗 def __str__(self): # return'我是str方法,列印對象時調用的就是我,我是存在於object類中' # 1試驗return'my name is %s' %
  • C語言函數調用過程中的內存變化解析
    局部變量的作用域為什麼僅限於函數內?這個調用不是指C 語言上的函數調用的語法,而是在內存的視角下,函數的調用過程。本文將從C 語言調用實例,內存視角,反彙編代碼來探討C 語言函數的調用過程,也可以說是C 語言函數調用過程圖解。通過這個C 語言函數調用過程圖解,同學們將會知道,C 語言函數在調用時,內存空間是怎樣變化的。 要想理解這一個過程還好涉及到函數棧幀的概念。
  • 新手請進:每個Python程式設計師都應該知道的10個縮寫詞
    基本上,只使用命令行工具(例如Mac中的Terminal)就能夠開始學習Python,如今macOS系統已經附帶了Python。學習過程中,我們會逐漸熟悉它的數據結構、控制流、類、函數和其他基本知識。還有一件有趣的事人們不常提起:我們時不時就會遇到Python中的各種首字母縮寫詞。
  • 53個Python經典面試題詳解
    它還定義了一個名為log_function_called的函數,它先執行列印出一些「函數func被調用」的信息(print(f'{func} called.')),然後調用函數func。最後返回定義的函數。
  • 「Python爬蟲實戰系列(1)」——解析365淘房網
    :主要作用配置url,循環獲取頁面,生成DataFrame類型變量來保存數據def main():# 主函數,調用get_page_html和parse_page完成爬取任務# 獲取的關鍵字:主要作用:精確解析下載到的HTML,獲得網址、租金、小區名稱、詳細地理位置、戶型、房間面積信息def parse_page(html):# 分析頁面內容的函數 # 由於每個網頁有多條房屋出租的信息,每條信息用字典保存,整個網頁信息用列表保存
  • 第十四課我們研究一下常用的print()函數,翻看了一下Python寶典
    前面學習的循環是減少代碼重複的一種手段,那麼接下來要學習的函數也是減少重複性代碼的另一種手段。它的定義是:什麼意思呢?我們之前寫的代碼只能執行一次,但是函數中的代碼可以使用多次。拆分解讀:第一行:def的全稱是define, 譯為定義;fun是函數名字,自己起的;(x)這裡是函數的參數,參數名字也是自己起;不要忘了最後的冒號:江湖秘籍:涉及到的符號都是英文的哦。第二行:def下一行縮進的內容叫做函數體,這是函數要實現的功能。
  • 用python分析上海二手房數據,用幾十行代碼爬取大規模數據!
    pip3 install lxml二、原始碼1、導入beautifulsoup和requests庫# -*- coding: utf-8 -*-from bs4 import BeautifulSoupimport requests2、寫爬蟲主函數
  • python學習路線分享
    學習python不知道如何下手,不知道要學哪些知識,看完下面這些你就知道了。把下面的知識學完,就是一個合格的「捕蛇」者了。AAA軟體教育目錄基礎知識學習(MOOC嵩天+零散知識) 無基礎不能高樓,合抱之木,生於毫末,九層之臺
  • Python中可迭代對象、迭代器以及iter函數的兩個用法詳解
    當我們使用for循環時,解釋器會調用內置的iter()函數,調用前首先會檢查對象是否實現了__iter__()方法,如果有就調用它獲取一個迭代器(接下來會講)。加入沒有__iter__()方法,但是實現了__getitem__()方法,解釋器會創建一個迭代器並且按順序獲取元素。如果這兩個方法都沒有找到,就會拋出TypeError異常。
  • python實現釘釘自動打卡
    老師也成一個「合格」的主播,感謝XXX童鞋的禮物、666扣起來老師為了營造一個好的學習環境,直播風格也是獨具一格。釘釘到底有什麼功能為大眾所用呢?為什麼要寫釘釘打卡?說下思路吧用python調用adb命令通過x,y點位來操作手機,在寫個定時器就好了,簡單吧。