歡迎加入QQ討論群258996829
麥子學(xué)院 頭像
蘋果6袋
6
麥子學(xué)院

Python學(xué)習(xí)之內(nèi)置函數(shù)和匿名函數(shù)詳解

發(fā)布時(shí)間:2017-08-08 15:22  回復(fù):0  查看:2770   最后回復(fù):2017-08-08 15:22  

本文和大家分享的主要是python內(nèi)置函數(shù)和匿名函數(shù)相關(guān)內(nèi)容,一起來看看吧,希望對(duì)大家學(xué)習(xí)python有所幫助。

  一、內(nèi)置函數(shù)

  由python內(nèi)部定義好我們可以直接調(diào)用的函數(shù)就叫內(nèi)部函數(shù)。python一共給我們68個(gè)內(nèi)置函數(shù):

Python學(xué)習(xí)之內(nèi)置函數(shù)和匿名函數(shù)詳解


上面就是內(nèi)置函數(shù)的表,68個(gè)函數(shù)都在這兒了。我標(biāo)注的紅色在前面經(jīng)常出現(xiàn)大家比較熟悉。這個(gè)表的順序是按照首字母的排列順序來的,你會(huì)發(fā)現(xiàn)都混亂的堆在一起。比如,octbinhex都是做進(jìn)制換算的,但是卻被寫在了三個(gè)地方。。。這樣非常不利于大家歸納和學(xué)習(xí)。那我把這些函數(shù)分成了7大類。有助于大家總結(jié)和記憶。

  內(nèi)置函數(shù)思維導(dǎo)圖:

Python學(xué)習(xí)之內(nèi)置函數(shù)和匿名函數(shù)詳解

其中在七個(gè)分類中有詳細(xì)分類。中標(biāo)注紅色為必須掌握,黃色為重點(diǎn)掌握,其他的作為了解。

  二、內(nèi)置函數(shù)部分詳解

  1、作用域相關(guān)(locals,globals

  基于字典的形式獲取局部變量和全局變量

  globals()——獲取全局變量的字典

  locals()——獲取執(zhí)行本方法所在命名空間內(nèi)的局部變量的字典

  def func():

  x = 1

  y = 2

  print(locals())  #打印局部作用域中的名字

  print(globals()) #打印全局作用域中的名字

  View Code

  2、其他

  s = input("請(qǐng)輸入內(nèi)容 : ")  #輸入的內(nèi)容賦值給s變量

  print(s)  #輸入什么打印什么。數(shù)據(jù)類型是str

  input輸入

  def print(self, *args, sep=' ', end='\\n', file=None): # known special case of print

  """

  print(value, ..., sep=' ', end='\\n', file=sys.stdout, flush=False)

  file:  默認(rèn)是輸出到屏幕,如果設(shè)置為文件句柄,輸出到文件

  sep:   打印多個(gè)值之間的分隔符,默認(rèn)為空格

  end:   每一次打印的結(jié)尾,默認(rèn)為換行符

  flush: 立即把內(nèi)容輸出到流文件,不作緩存

  """

  print輸出源碼剖析

  import timeimport sysfor i in range(0,101,2):

  time.sleep(0.1)

  char_num = i//2      #打印多少個(gè)#

  per_str = '%s%% : %s\\n' % (i, '*' * char_num) if i == 100 else '\\r%s%% : %s'%(i,'*'*char_num)

  print(per_str,end='', file=sys.stdout, flush=True)

  進(jìn)度條(了解)

  3、數(shù)據(jù)類型相關(guān)

  num = 123num1 = [1,2,3]num2 = "hello"type(num,num1,num2) #返回變量的數(shù)據(jù)類型

  type

  4、內(nèi)存相關(guān)

  id(o) o是參數(shù),返回一個(gè)變量的內(nèi)存地址

  hash(o) o是參數(shù),返回一個(gè)可hash變量的哈希值,不可hash的變量被hash之后會(huì)報(bào)錯(cuò)。

hash實(shí)例

  hash函數(shù)會(huì)根據(jù)一個(gè)內(nèi)部的算法對(duì)當(dāng)前可hash變量進(jìn)行處理,返回一個(gè)int數(shù)字。

  *每一次執(zhí)行程序,內(nèi)容相同的變量hash值在這一次執(zhí)行過程中不會(huì)發(fā)生改變。

  5、文件操作相關(guān)

  open()  打開一個(gè)文件,返回一個(gè)文件操作符(文件句柄)

  操作文件的模式有r,w,a,r+,w+,a+ 6種,每一種方式都可以用二進(jìn)制的形式操作(rb,wb,ab,rb+,wb+,ab+)

  可以用encoding指定編碼

  open()

  r,w,a,r+,w+,a+,(都可以+b)

  f = open('tmp','r+')

  print(f.read(3))

  f.seek(5)

  f.write('ccccccc')#不要一邊寫一邊讀

  f.close()

  r+打開文件

  如果直接寫 從頭覆蓋

  如果讀了再寫 追加

  如果seek指定了光標(biāo)的位置 就在從該位置開始覆蓋著寫

  open

  6、模塊操作相關(guān)

  import time #導(dǎo)入time模塊

  7、幫助方法

  在控制臺(tái)執(zhí)行help()進(jìn)入幫助模式。可以隨意輸入變量或者變量的類型。輸入q退出

  或者直接執(zhí)行help(o),o是參數(shù),查看和變量o有關(guān)的操作。。。

  8、和調(diào)用相關(guān)

  def func():pass

  print(callable(func))  #參數(shù)是函數(shù)名,可調(diào)用,返回True

  print(callable(123))   #參數(shù)是數(shù)字,不可調(diào)用,返回False

  判斷是否調(diào)用

  9、查看參數(shù)所屬類型的所有內(nèi)置方法

  dir() 默認(rèn)查看全局空間內(nèi)的屬性,也接受一個(gè)參數(shù),查看這個(gè)參數(shù)內(nèi)的方法或變量

  print(dir(list))  #查看列表的內(nèi)置方法print(dir(int))  #查看整數(shù)的內(nèi)置方法

  查看內(nèi)置方法

  10、str類型代碼的執(zhí)行

  print(123)"print(456)"  #字符串eval("print(456)")  #字符串->轉(zhuǎn)換成python代碼去執(zhí)行

  exec("print(789)")

  num = 1+2+3

  num = eval("1+2+3")  #執(zhí)行print(num)

  num2 = exec("4+5+6") #執(zhí)行,沒有返回值print(num2)

  View Code

  11、和數(shù)字相關(guān)

  數(shù)字——數(shù)據(jù)類型相關(guān):bool,intfloat,complex

  數(shù)字——進(jìn)制轉(zhuǎn)換相關(guān):binoct,hex

  數(shù)字——數(shù)學(xué)運(yùn)算:absdivmod,min,max,sum,roundpow

  #絕對(duì)值print(abs(-12))

  #返回(除,余)print(divmod(7,4))

  #最小值 最大值print(min(1,2,3,4))print(max(1,2,3,4))

  #求和print(sum((1,2,3,4)))  #print(sum(1,2,3,4))這個(gè)報(bào)錯(cuò)因?yàn)椴皇切蛄?/span>print(sum([1,2,3,4]))print(sum((1,2,3,4)))

  #小數(shù)精確print(round(3.14159,1))print(round(3.14159,2))print(round(3.14159,3))

  #冥運(yùn)算print(pow(2,4))print(2**4)

  數(shù)學(xué)運(yùn)算

  12、和數(shù)據(jù)結(jié)構(gòu)相關(guān)

  序列——字符串相關(guān)的:str,format,bytes,bytesarry,memoryvieword,chr,asciirepr

  #位置print(format('test', '<20>40'))print(format('test', '^40'))

  #字符編碼的轉(zhuǎn)換s = "你好"

  sb = bytes(s,encoding='utf-8')print(sb)

  ret = sb.decode('utf-8')print(ret)

  #格式化輸出print(repr('1234'))print(repr(1234))

  字符串相關(guān)

  序列:reversed,slice

  #倒敘

  l = [1,2,3,4]print(list(reversed(l)))

  reversed

  數(shù)據(jù)集合——字典和集合:dictset,frozenset

  數(shù)據(jù)集合:lensorted,enumerateall,any,zip,filter,map

  filtermap

  sorted方法

  未完待續(xù)!?。?/span>

  三、匿名函數(shù)

  匿名函數(shù) 簡(jiǎn)單的需要用函數(shù)去解決的問題 匿名函數(shù)的函數(shù)體 只有一行

  也叫lambda表達(dá)式

  #這段代碼def calc(n):

  return n**n

  print(calc(10))

  #換成匿名函數(shù)

  calc = lambda n:n**n

  print(calc(10))

  匿名函數(shù)


Python學(xué)習(xí)之內(nèi)置函數(shù)和匿名函數(shù)詳解

#函數(shù)名 = lambda 參數(shù) :返回值

#參數(shù)可以有多個(gè),用逗號(hào)隔開

#匿名函數(shù)不管邏輯多復(fù)雜,只能寫一行,且邏輯執(zhí)行結(jié)束后的內(nèi)容就是返回值

#返回值和正常的函數(shù)一樣可以是任意數(shù)據(jù)類型

 

來源:博客園

您還未登錄,請(qǐng)先登錄

熱門帖子

最新帖子

?