day10(函數)

来源:https://www.cnblogs.com/HZLS/archive/2019/04/24/10765257.html
-Advertisement-
Play Games

一:函數 二。函數的使用 三,函數的分類 四,函數的返回值 ...


一:函數

# *****
# 函數:完成 特定 功能的代碼塊,作為一個整體,對其進行特定的命名,該名字就代表函數
#    -- 現實中:很多問題要通過一些工具進行處理 => 可以將工具提前生產出來並命名
# => 通過名字就可以找到工具 => 使用工具來解決問題

# 函數的優點: # 1. 避免代碼的冗餘 # 2. 讓程式代碼結構更加清晰 # 3. 讓代碼具有復用性,便於維護 # 函數的四部分 ''' 1. 函數名:使用該函數的依據 2. 函數體:完成功能的代碼塊 3. 返回值:功能完成的反饋結果 4. 參數:完成功能需要的條件信息 ''' # 定義函數的語法:通過def關鍵字來定義 def get_water(water, money): print('收入你的%d元錢') print('給你%s水種') return '礦泉水'

 

二。函數的使用

# *****
# 使用函數:
# 1.根據需求定義函數
# 2.通過函數名找到函數所在的位置(記憶體地址)
# 3.函數名() 執行函數地址中存放的所有代碼塊
#       -- 函數在定義時需要外界的參數,就要在調用時傳入對應的參數
# 4.函數執行完一定有返回結果,通過return關鍵字將結果返回給外界
#       -- 外界需要知道執行結果,用變數接收,反之只執行函數(不需要接收)即可

# 註:函數必須先定義,後使用

# 函數的四部分都可以根據需求的變化而變化
def get_water(water, money):
    print('收入你的%d元錢' % money)
    print('給你%s水種' % water)
    return water

# 需要使用函數,就調用一次
res = get_water('礦泉水', 10)
print(res)

print('玩耍...')
print('又口渴了...')

# 又來需求,在調用一次,代碼可以復用,函數只有一個,代碼結構清晰且不冗餘
res = get_water('王老吉', 20)
print(res)

 

三,函數的分類

# ***

# 1.根據函數體分類
# 空函數: pass來填充函數體的函數
#        -- 優先明確函數名,暫不明確函數體(編程中就存在一些沒有函數體的函數)
def login(): pass  # 在開發初期,可以講所有功能提前列出來,用pass占位著,後期再去填充功能體

# 非空函數:有函數體的函數
def fn2():
    print('函數體')

    
# 2.根據函數參數分類
def add():
    print('功能體不需要外界的參數')
    n1 = input('n1: ')
    n2 = input('n2: ')
    print(n1 + n2)

# 有參函數
def add_two(n1, n2):
    print('功能體需要外界的參數')
    print(n1 + n2)
    
# 3.根據函數返回值分類:所有的函數都有返回值
# 不明確返回值
def low_two(n1, n2):
    # 外部不需要知道內部的執行結果
    print(n1 - n2)

# 明確返回值
def jump_two(n1, n2):
    # 外部需要知道內部的執行結果
    return n1 * n2
res = jump_two(10, 20)
print(res)

 

四,函數的返回值

# *****

# 重點:函數名()
# 1)拿到函數地址 => 2)加()執行函數體 => 3)得到函數的執行結果

# 重點: 返回值的功能
# 1.結束函數;2.將函數的內部數據返回給外部


# 二、應用場景
# 1.不明確return關鍵詞的函數:系統在函數最末尾自動添加了return,返回的是None
def fn1():
    print('普通的函數執行')

res = fn1()      # 一般不需要對這樣的函數進行接收執行結果
print(res)


# 2.明確空return關鍵詞的函數:為了結束函數而return
def print_msg():
    while True:
        msg = input("msg: ")
        if msg == 'q':
            # break
            return      # 在特定的位置需要直接結束函數,但不需要告訴外界某個結果,用空return處理
        print(msg)
    print(msg)        # 在break下可以被執行,在return下不能被執行
res = print_msg()
print(res)


# 3.有明確的返回值需求的函數:
#       -- python中的函數本質上只能返回一個值,
#               -- 值跟在return關鍵詞後
#               -- 可以通過語法上返回多個值,值之間用逗號隔開,但是本質上返回裝有多個值的元組
# 一個值
def get_num():
    num = input('num: ')
    return num
print(get_num())

# 多個值
def get_two_num():
    n1 = input('n1: ')
    n2 = input('n2: ')
    return n1, n2
    # return (n1, n2)
# print(get_two_num())
num1, num2 = get_two_num()  # python的return支持多值返回的語法原因是python中有解壓賦值
print(num1, num2)


# 總結:
# 當用一個值接收函數的返回值,一定沒有問題
#       -- 函數返回一個接收一個;函數返回多個,接收裝有多個值得元組
# 當用多個值接收函數的返回值,採用的是解壓賦值的機制,返回值的個數一定要與接收值得個數相同

 


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

-Advertisement-
Play Games
更多相關文章
  • from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.sup... ...
  • requests模塊 一、發送請求 向某個 發送get請求 發送一個post請求 發送其他類型的請求也都可以 二、傳遞url參數 get請求傳遞參數 post請求傳遞參數 三、響應內容 獲取響應的內容 二進位響應內容 json響應內容 四、指定請求頭 五、複雜的post請求 傳遞類似html表單的數 ...
  • 作業完成人: 學號:20181004011,劉飛宇 學號:20181004023,趙盛陽 1:換選擇幾率高 2:①不換選擇幾率為1/3 ②換選擇:若選中汽車,則換選擇後肯定錯誤;若選中羊,則換選擇後必定正確,因為有兩隻羊,所以正確率為2/3; 3: ...
  • Python基礎之if判斷,while迴圈,迴圈嵌套;if判斷包括 if判斷語法,比較運算符,else語句,邏輯運算符,elif語句,if嵌套;while迴圈包括 while語句語法,賦值運算符,迴圈計算,break和continue;迴圈嵌套包括 print函數的end參數,迴圈嵌套使用,字元串中... ...
  • 一、Hive的幾種數據模型 內部表 (Table 將數據保存到Hive 自己的數據倉庫目錄中:/usr/hive/warehouse) 外部表 (External Table 相對於內部表,數據不在自己的數據倉庫中,只保存數據的元信息) 分區表 (Partition Table將數據按照設定的條件分 ...
  • #include #include void main() { int n,j,i; /*i為行數,j為每行中的項數*/ printf("輸入圖案上三角的高度n:"); scanf("%d",&n); for(i = 1;i = 1;i--) /*列印下三角,(不包括中間行)... ...
  • 需要知識:python,Django框架,前端HTML,CSS,JS,JQuery,Bootstarp,Django的ORM,Auth 一.資料庫表的分析: 1.首先是用戶表,用戶表繼承Django自帶的Auth_user表,目的是可以使用Django封裝好的方法,不用自己手動寫cookie和ses ...
  • 文章大綱 一、Spring mvc介紹二、Spring mvc代碼實戰三、項目源碼下載四、參考文章 一、Spring mvc介紹 1. 什麼是springmvc springmvc是spring框架的一個模塊,springmvc和spring無需通過中間整合層進行整合。springmvc是一個基於m ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...