012函數

来源:http://www.cnblogs.com/-nbloser/archive/2017/12/21/8076542.html
-Advertisement-
Play Games

#函數定義def f(): print('love Q')f()##參數#形參和實參def add(a,b): print(a+b)add(7,5)def print_info(name,age): print('name:%s' % name) print('age:%d' % age)print ...


#函數定義
def  f():
    print('love Q')
f()

##參數
#形參和實參
def add(a,b):
    print(a+b)
add(7,5)

def  print_info(name,age):
    print('name:%s' % name)
    print('age:%d' % age)
print_info('xia',21)                         #必須參數
print_info(age = 20,name = 'qiu') #關鍵字參數

#預設參數,
def  print_info(name,age,sex='male'):
    print('name:%s'%name)
    print('age:%d'%age)
    print('sex:%s'%sex)
print_info('xia',21)
print_info('qing',20,'female')


#不定長的的參數,用個*加一個變數名是保存在元組裡面,**兩個是在字典裡面
def  print_info(*args,**kwargs):
    for  i  in  args:                    #這個是元組
        print(i)
    for  x  in  kwargs:               #這個是字典
        print(x,kwargs[x])
print_info('xia',21,'male',job='it',lover='qing')      位置不能錯
把列表的各個元素傳進去,在列表前面加個*  ,eg:*[1,2,3]
把字典的各個元素傳進去,在字典前面加**,eg:**{'name':'xia','lover':'q'}                         ##在後面的jango會經常使用

#這裡預設參數放左邊
def  print_info(sex='male',*args,**kwargs):
    print(sex)
    for  i  in  args:#這個是元組
        print(i)
    for  x  in  kwargs:#這個是字典
        print(x,kwargs[x])
print_info('female','xia',21,'male',job='it',lover='qing')

##return
和其他語言基本一樣
不同的是,python可以返回多個對象,只是放在元組裡面

##高階函數(假的):函數的形參有函數,通過函數調用函數
def  my_func(a,b,f):
    return   f(a)+f(b)
def  f(n):
    return  n * n
print(my_func(3,4,f))
函數名也是一個變數,可以賦值給其他變數


###作用域

LEGB

x=int(2.9)    #built_in
局部變數不能改變全局變數,要改變就+Global
嵌套作用域的的使用nonlocal關鍵字

函數的階乘與遞歸,因為和c語言還有Java都是一樣,我很清晰,所以就不再總結了,重在使用,經典:漢諾塔問題。
遞歸註意,必須有一個結束條件


##內置函數
python裡面就有的函數
#filter(function, iterable) 函數   #實現對迭代器過濾

#map函數實現對迭代器的操作
str=['q','h']
def  func(s):
    return''.join([s,'xia'])
ret=map(func,str)
print(list(ret))


#reduce函數
from  functools  import  reduce
def  add1(x,y):
    return   x+y
print(reduce(add1,range(1,11)))           ##實現的過程是先取前面兩個操作,然後返回去,再從里取兩個操作
也可以實現階乘


#lambda函數
a=1;b=2
mysum=lambda   a,b:  a+b          #實現了a+b,用法lambda+空格+參數+冒號+空格+操作
和reduce配合使用


 


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

-Advertisement-
Play Games
更多相關文章
  • 首先要說明的是,咱現在不是高手,最多還是一個半桶水,算是入了JS的門。談不上經驗,都是一些教訓。 這個時候有人要說,“靠,你丫半桶水,憑啥教我們”。您先別急著罵,先聽我說! 你叫一個大學生去教小學數學,不見得比一個初中生教得好。因為大學生早已經過了那個階段,都忘記自己怎麼走過來的了。而對於初中生,剛 ...
  • public interface People { public void work(); } public class RealPeople implements People { public void work() { System.out.println("工作中..."); } } /**... ...
  • 適配器模式分為兩種:類適配器模式和對象適配器模式。廢話不多說,直接上代碼。 1、類適配器模式 2、對象適配器模式 ...
  • public interface Shape { public void outputShape(); } class Circle implements Shape { public void outputShape() { System.out.println("this is a circle... ...
  • 全文檢索這個系列在幾前年寫過lucene的文章,而現在看來它確實已經老了,它的兒子孫子都出來了,已經成為現在檢索行列的主流,像solr,elasticsearch等,今天我們主要來看一個solr在aspnetcore里的使用,也就是增刪改查之類的,比較容易! nuget包:solrnet 註入方式: ...
  • Vivado是Xilinx(賽靈思)公司出品的開發軟體平臺,適用於Zedboard開發板。本文介紹了Vivado2017.3的在Win10安裝和可能遇到的問題。 ...
  • 數據模型是開發軟體的最重要的部分,因為它們對應用程式有著深遠的影響:不僅是軟體的編寫方式,而且也影響我們如何解決的問題的方式。第二篇讀書筆記,我們聊一聊數據模型的設計。 1.數據模型的分層 作為一個開發者來說,在一個複雜的應用程式中,是存在很多 分層模型 的,但基本思想還是一樣的:每一層都提供了一個 ...
  • 基於cookie做用戶驗證時, 敏感信息不適合放在cookie中. a. Session原理 cookie是保存在用戶瀏覽器端的鍵值對 session是保存在伺服器端的鍵值對 首先生成一個隨機字元串, 並只將隨機字元串通過cookie保存在瀏覽器端 在隨機字元串對應的字典中, 設置相應的字典 1 c ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...