day9__基礎(函數基礎)

来源:https://www.cnblogs.com/mr-xiong/archive/2020/06/25/13190854.html
-Advertisement-
Play Games

一 初識函數 函數的優勢: 1,減少代碼的重覆性。 2,使代碼可讀性更好。 def date(): print("拿出手機") print("打開陌陌") print('左滑一下') print('右滑一下') print("找個漂亮的妹子") print("問她,約不約啊!") print("ok ...


一 初識函數

函數的優勢:

1,減少代碼的重覆性。

2,使代碼可讀性更好。

def date():
    print("拿出手機")
    print("打開陌陌")
    print('左滑一下')
    print('右滑一下')
    print("找個漂亮的妹子")
    print("問她,約不約啊!")
    print("ok 走起")


date()  # 調用函數

二. 函數的結構與調用

  • 函數的結構:
def 函數名():
	函數體

def 關鍵詞開頭,空格之後接函數名稱和圓括弧(),最後還有一個":"。

def 是固定的,不能變,他就是定義函數的關鍵字。

空格 為了將def關鍵字和函數名分開,必須空(四聲),當然你可以空2格、3格或者你想空多少都行,但正常人還是空1格。

函數名:函數名只能包含字元串、下劃線和數字且不能以數字開頭。雖然函數名可以隨便起,但我們給函數起名字還是要儘量簡短,並且要具有可描述性

函數體:縮進,函數中儘量不要出現print

括弧:是必須加的

def date():
    print("拿出手機")
    print("打開陌陌")
    print('左滑一下')
    print('右滑一下')
    print("找個漂亮的妹子")
    print("問她,約不約啊!")
    print("ok 走起")
  • 函數的調用

    s1=[1,2,3,4,5]
    s2='sdfsdfsdfdsf'
    def a(s):
        count = 0
        for i in s:
            count+=1
        print(count)
    
    a(s2)
    

三. 函數的返回值

一個函數就是封裝一個功能,這個功能一般都會有一個最終結果的,比如你寫一個登錄函數,最終登錄成功與否是不是需要返回你一個結果?還有咱們是不是都用過len這個函數,他是獲取一個對象的元素的總個數,最終肯定會返回一個元素個數這樣的結果:

用到python中的一個關鍵字:return

在函數中遇到return直接結整函數

retuen有兩個功能:

  • 結束函數不在繼續執行
  • 會給函數執行者返回值

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

def date():
    print("拿出手機")
    print("打開陌陌")
    return
    print('左滑一下')
    print('右滑一下')
    print("找個漂亮的妹子")
    print("問她,約不約啊!")
    print("ok 走起")
date()

輸出結果:
    拿出手機
    打開陌陌

2)return 會給函數的執行者返回值。

def date():
    print("拿出手機")
    print("打開陌陌")
    print('左滑一下')
    print('右滑一下')
    print("找個漂亮的妹子")
    print("問她,約不約啊!")
    print("ok 走起")
    return '約會成功~!'
a = date()
print(a)
    輸出結果:
    拿出手機
    打開陌陌
    左滑一下
    右滑一下
    找個漂亮的妹子
    問她,約不約啊!
    ok 走起
    約會成功~!    

如果返回多個值,是以元組的形式返回的。如下:

def date():
    print("拿出手機")
    print("打開陌陌")
    print('左滑一下')
    print('右滑一下')
    print("找個漂亮的妹子")
    print("問她,約不約啊!")
    print("ok 走起")
    return '約會成功~!','123','xxxxxx'
a = date()
print(a)
輸出結果:
    拿出手機
    打開陌陌
    左滑一下
    右滑一下
    找個漂亮的妹子
    問她,約不約啊!
    ok 走起
    ('約會成功~!', '123', 'xxxxxx')

總結一下:

  1.終止函數,return下麵的(函數內)的代碼不會執行。

  2.return 會給函數的執行者返回值。

      可函數的執行者返回值

      如果return後面寫了多個結果,,返回給調用者一個tuple(元組),調用者可以直接使用元組的結構獲取多個變數。

def date():
    print("拿出手機")
    print("打開陌陌")
    print('左滑一下')
    print('右滑一下')
    print("找個漂亮的妹子")
    print("問她,約不約啊!")
    print("ok 走起")
    return '漂亮的妹子','小蘿莉', '成熟女性'
g1,g2,g3 = date()
print(g1, g2, g3)  # 漂亮的妹子 小蘿莉 成熟女性

四. 函數的傳參

將一些數據傳到函數裡面的,然後讓裡面的代碼利用上這個數據產生我們想要的結果,在返回。

舉個例子:

def date(sex):
    print("拿出手機")
    print("打開陌陌")
    print('設置篩選條件:性別: %s' %sex)
    print("找個漂亮的妹子")
    print("問她,約不約啊!")
    print("ok 走起")
	
date('女')

函數的參數可以從兩個角度劃分:

  • 形參

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

  • 實參

    在函數調用的時候給函數傳遞的值.加實參,實際執行的時候給函數傳遞的信息.表示給函數xxx

1、實參:
def date(sex):  # 函數定義時(參數) 這個就是形參
    print("拿出手機")
    print("打開陌陌")
    print('設置篩選條件:性別: %s' %sex)
    print("找個漂亮的妹子")
    print("問她,約不約啊!")
    print("ok 走起")

date('女')  # 函數執行時(參數) 這個就是實參
# 這個過程就是:代碼運行到date('女')開始執行此函數同時將字元串'女'這個數據傳遞給變數sex,然後執行函數中的代 # 碼。如果遇到sex,其實就是使用'女'這個數據。
1)實參角度:
  • 位置參數

位置參數就是從左至右,實參與形參一一對應。

def date(sex, age, hobby):
    print("拿出手機")
    print("打開陌陌")
    print('設置篩選條件:性別: %s,年齡:%s,愛好:%s' %(sex, age, hobby))
    print("找個漂亮的妹子")
    print("問她,約不約啊!")
    print("ok 走起")
date('女','25~30','唱歌')

練習

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

def f(a,b):
    if a>b:
        return a
    else:
        return b
num_sum = f(5,8)
print(num_sum)
結果:8
  • 關鍵字參數 
def date(sex, age, hobby):
    print("拿出手機")
    print("打開陌陌")
    print('設置篩選條件:性別: %s,年齡:%s,愛好:%s' %(sex, age, hobby))
    print("找個漂亮的妹子")
    print("問她,約不約啊!")
    print("ok 走起")
date(hobby='唱歌',sex='女',age='25~30',)
  • 混合參數

    def date(sex, age, hobby):
        print("拿出手機")
        print("打開陌陌")
        print('設置篩選條件:性別: %s,年齡:%s,愛好:%s' %(sex, age, hobby))
        print("找個漂亮的妹子")
        print("問她,約不約啊!")
        print("ok 走起")
    date('女',hobby='唱歌',age='25~30',)
    

    混合參數, 位置參數必須在關鍵字參數前面

2)形參角度:

  • 位置參數

位置參數其實與實參角度的位置參數是一樣的,就是按照位置從左至右,一一對應

def date(sex, age, hobby):
    print("拿出手機")
    print("打開陌陌")
    print('設置篩選條件:性別: %s,年齡:%s,愛好:%s' %(sex, age, hobby))
    print("找個漂亮的妹子")
    print("問她,約不約啊!")
    print("ok 走起")
date('女','25~30','唱歌')
  • 預設參數
def stu_info(name, age, sex='男'):   #sex='男'就是一個預設參數
    print("錄入學生信息")
    print(name, age, sex)   
    print("錄入完畢")
stu_info("張強", 18)

練習:

def date(osname,cpu_info,ram_info):
    print("====osname: %s ===="% osname )
    print("+  CPU: %s        +"% cpu_info)
    print('+  記憶體: %s        +'%  ram_info)
    print("==================")

osname = input('請輸入系統名稱:')
cpu_info= input('請輸入CPU型號:')
ram_info=input('請輸入記憶體大小:')
date(osname,cpu_info,ram_info)
輸出結果:
    ====osname: Centos ====
    +  CPU: E52620        +
    +  記憶體: 128G        +
    ==================

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • it行業學歷 只是在闡述一個事實。目前隨便打開-家招聘網站的IT崗位,不管是開發、測試還是運維等等,基本上都是要求至少大專及以上學歷(大型企業都至少是985、211本科畢業),當然還沒達到全部的用人企業都要求那麼誇張 作為你來說,技術自我感覺還可以,至少說明你學習能力還可以,也有進取心,你不比別人差 ...
  • 客戶有個網站要改版,找新來的設計重新做了圖 設計圖紙上是一排5個顯示,字體用的22px。當然,px設計圖是750px寬度的,用iphone6來模擬的話,跟實際顯示存在2倍關係,也就是實際字體是11px,我表示無法實現,改成了12px大小 設計圖長這樣 寫前端的時候我改成了12px,畫風瞬間變得十分局 ...
  • 作者:愛前端不愛戀愛鏈接:https://zhuanlan.zhihu.com/p/143590337來源:知乎著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。 1.郵箱 export const isEmail = (s) => { return /^([a-zA-Z0-9_- ...
  • 如今,隨著物聯網時代的到來和網路營銷的日益發展,前端技術比以往更加火熱。我們可以看到Web應用與新技術趨勢緊密相連,而這直接導致了前端行業廣闊的就業前景。正因如此,學習前端的朋友越來越多了。為了幫助大家可以更高效地學習,本文為大家總結了一些零基礎開始學前端的建議,希望大家可以少走一些不必要的彎路。 ...
  • onload和window.onload的使用時的區別? 1.onload在標簽元素中使用。 2.window.onload在script中直接使用。 3.當出現多個onload,總是最後的覆蓋前面出現的,也就是只使用最後一次出現的onload的內容 註意:在body裡面使用window.onloa ...
  • 在 JavaScript 中, null 用於對象, undefined 用於變數,屬性和方法。 對象只有被定義才有可能為 null,否則為 undefined。 如果我們想測試對象是否存在,在對象還沒定義時將會拋出一個錯誤。 正確的方式是我們需要先使用 typeof 來檢測對象是否已定義: if ...
  • 一、微服務架構設計中經常需要處理的問題羅列: API Gateway 內部服務間互相調用 服務發現 服務容錯、熔斷、降級 服務部署 數據處理 二、設計模式 1、微服務-聚合器設計模式: 聚合器調用多個服務實現應用程式所需的功能。它可以是一個簡單的 WEB 頁面,將檢索到的數據進行處理展示。它也可以是 ...
  • 新一代的微服務架構 Service Mesh 博客原文地址 (https://elfgzp.cn/2020/06/21/新一代的微服務架構 Service Mesh 由於最近在工作中在做 Service Mesh 的落地項目,有非常多的感觸,所以想寫一篇文章來分享這個「新一代的微服務架構 Servi ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...