91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python函數基礎的示例分析

發布時間:2021-07-16 14:08:47 來源:億速云 閱讀:97 作者:小新 欄目:開發技術

小編給大家分享一下Python函數基礎的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

一、什么是命名關鍵字參數?

格式: 在*后面參數都是命名關鍵字參數。

特點:

1、約束函數的調用者必須按照Kye=value的形式傳值。

2、約束函數的調用者必須用我們指定的Key名。

def auth(*args,name,pwd):
  print(name,pwd)
auth(pwd='213',name='egon')
def register(name,age):
  print(type(name),type(age))
register(123,[1,2,3])

以上輸出:

egon 213
<class 'int'> <class 'list'>

二、函數的嵌套

1、函數的嵌套調用:在函數內又調用了其他函數

def max2(x,y):
  if x > y:
    return x
  else:
    return y
def max3(x,y,z):
  res1=max(x,y)
  res2=max(res1,z)
  return res2
print(max3(88,99,100))

以上輸出:

100

2、函數的嵌套定義:在函數內又定義其他函數。

def func1():
  print('from func1')
  def func2(): #func2=內存地址
    print('from func2')
  print(func2) #<function func1.<locals>.func2 at 0x0000024907A098C8>
  func2()
  func2()
  func2()
func1()

以上輸出:

from func2
from func2
from func2

三、函數的名稱空間

1、名稱空間:存放名字與值綁定關系的地方

x=888888888
def func():
  pass

2、名稱空間分為三類

(1)內置名稱空間:存放python解釋器自帶的名字,在解釋器啟動時就生效,解釋器關閉則失效。

(2)全局名稱空間:文件級別的名字,在執行文件的時候生效,在文件結束或者在文件執行期間被刪除則失效。

x=1
def f1():
  def f2():
    print(x)
  f2()
f1()
if 10 > 3:
  y=33333
while True:
  xxxxx=123123123

以上輸出:

1

(3)局部名稱空間:存放函數自定義的名字(函數的參數以及函數內的名字都存放與局部名稱空間),在函數調用時臨時生效,函數結束則失效。

注意:

加載順序:內置名稱空間-------->>全局名稱空間------->>>局部名稱空間

查找名字:局部名稱空間-------->>全局名稱空間------->>>內置名稱空間

def f1():
  # len=1
  def f2():
    # len=2
    print(len)
  f2()
f1()

以上輸出:

global

3、作用域

全局作用域:包涵的是內置名稱空間與全局名稱空間的名字。

特點:

  • (1)在任何位置都能夠訪問的到

  • (2)該范圍內的名字會伴隨程序整個生命周期

局部作用域:包含的是局部名稱空間的名字

特點:

  • (1)只在函數內使用

  • (2)調用函數時生效,調用結束失效

四、函數對象

1、函數在python中是第一類對象

(1)可以被引用

x=1
y=x
def bar():
  print('from bar')
f=bar
f()

以上輸出:

from bar

(2)可以當做參數傳入

x=1
def func(a):
  print(a)
func(x)

以上輸出:

1

(3)可以當做函數的返回值

代碼(1)

x=1
def foo():
  return x
res=foo()
print(res)

以上輸出:

1

代碼(2)

def bar():
  print('from bar')
def foo(func): #func=<function bar at 0x00000225AF631E18>
  return func #return <function bar at 0x00000225AF631E18>
# print(bar)
f=foo(bar) #f=<function bar at 0x00000225AF631E18>
# print(f)
f()

以上輸出:

from bar

(4)可以當做容器類型的元素

x=1
l=[x,]
print(l)
def get():
  print('from get')
def put():
  print('from put')
l=[get,put]
# print(l)
l[0]()

以上輸出:

[1]
from get

注意:

1、 func可以被引用

f=func

2、func可以當做參數傳給x

3、func還可以當做返回值

4、可以當做容器中類型的元素

函數查詢登錄功能的引用:

def auth():
  print('請登錄:')
def reigster():
  print('注冊:')
def search():
  print('查看:')
def transfer():
  print('轉賬')
def pay():
  print('支付')
dic={
  '1':auth,
  '2':reigster,
  '3':search,
  '4':transfer,
  '5':pay
}
def interactive():
  while True:
    print('''
    1 認證
    2 注冊
    3 查看
    4 轉賬
    5 支付
    '''
    )
    choice = input('請輸入編號:').strip()
    if choice in dic:
      dic[choice]()
    else:
      print('非法操作')
interactive()

五、閉包函數

閉:指的是定義在函數內部的函數

作用域關系,在函數定義階段就規定死了,與調用位置無關

def outter():
  x=2
  def inner():
    # x=1
    print('from inner',x)
  return inner
f=outter() #f=inner
def foo():
  x=1111111111111111111111111111
  f()
foo()

以上輸出:

from inner 2

1、閉包函數:

(1)定義在函數內部的函數

(2)并且該函數包含對外部函數作用域中名字的引用,該函數就稱為閉包函數

了解:

為函數體傳值的方式

方式一:將值以參數的形式的傳入

利用爬蟲獲取網站的源代碼:

import requests:
def get(url):
  response=requests.get(url)
  if response.status_code == 200:
    print(response.text)
get('https://www.baidu.com')

方式二

import requests
import time
def outter(url): #url='https://www.baidu.com'
  # url='https://www.baidu.com'
  def get():
    response=requests.get(url)
    if response.status_code == 200:
      print(response.text)
  return get
baidu=outter('https://www.baidu.com')
python=outter('https://www.python.org')
baidu()
print('=====================>')
time.sleep(3)
baidu()

以上是“Python函數基礎的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

若尔盖县| 建昌县| 鄂托克旗| 车险| 铁岭县| 罗平县| 论坛| 丹江口市| 德兴市| 巴林右旗| 偏关县| 通辽市| 富平县| 桓台县| 黑山县| 江油市| 滨州市| 象州县| 尖扎县| 黑水县| 汉沽区| 武宁县| 犍为县| 噶尔县| 萨嘎县| 元朗区| 尼勒克县| 沁水县| 时尚| 临泽县| 玉溪市| 浏阳市| 都昌县| 化德县| 普安县| 大田县| 渭源县| 濮阳市| 普洱| 永顺县| 宜君县|