python--內置函數

內置函數

現在python一共為我們提供了68個內置函數,講述過程:

一、其他中的12個

(一)執行   字符串     類型代碼的執行
1  eval執行有意義的字符串 ,有返回值
 print(eval('1+2'))print(eval("print('美麗')"))    #美麗
2  exec執行 有意義 的字符串,簡單的  流程控制  ,沒有返回值
 exec('for i in range(5):print(i)')    #0,1,2,3,4

注釋:

# exec和eval都可以執行 字符串類型的代碼
# eval有返回值 —— 有結果的簡單計算
# exec沒有返回值 —— 簡單流程控制
# eval只能用在你明確知道你要執行的代碼是什么

3 compile字符串執行 :編譯
ret='for i in range(5):print(i)'
c=compile(ret,'','exec')        #用exec執行,有返回值
exec(c)
ret='1+2+3+4'
c=compile(ret,'','eval') #''引號原本的功能是放
print(eval(c)) # 用eval執行,沒有返回值,所以需要打印
(二)輸入輸出
1   input
input('提示:')
2   print()
l='a'
print(l)                 #a
print(l,end='%%')     #  a%%    end是print中默認的以換行做結尾,這里可以改為%%結尾
print(l,end='%%')    #a%%a%%
print(l,2,3,5,6,sep='%%')     #a%%2%%3%%5%%6      sep是print中元素之間默認用空格隔開,這里可以改成%%
print(l,2,3,5,6)    #a 2 3 5 6
f=open('上課',mode='w',encoding='utf-8')     #打開文件夾,之后通過句柄操作文件
l='mmmm'
print(l,file=f)     #print中file默認在控制臺打印,可以把file=f文件句柄,改成在文件中打印
f.close()
(三)內存相關
1    hash()   #在程序的一次執行中,hash值只有一個,但是再次執行時,hash值就會改變
print(hash((0,2,3))) #-19文件執行的操作43780824

2 id()就是內存地址
print(id(1))
(四)文件操作相關(1)
1    open
f=open('上課')
print(f.writable())    #False
print(f.readable())    #True
print(f.readline())    #把上課文件中的內容讀出來了:mmmm
(五)調用相關
1    callable  判斷是否可以被調用
print(callable(a))    #Flase
print(callable(print))  #True
print(callable(globals))   #globals 加上s
(六)模塊相關
1  import
import time
print(time.time())   #1515230362.92395
等同于以下例子
t=__import__('time')
print(t.time())   #1515230362.92395
# 某個方法屬于某個數據類型的變量,就用.調用
# 如果某個方法不依賴于任何數據類型,就直接調用 —— 內置函數 和 自定義函數
(七)幫助
1   help    查看方法運用
# help(str)
 
(八)查看內置屬性
1 dir 查看變量的方法
print(dir([1,2]))
 
二、 基礎數據類型相關   38個
(一)和數據結構相關(24)
?1.1和數字相關
1    數據類型
bool
int       整形
float   # 浮點數(有限循環小數,無限循環小數)  != 小數 :有限循環小數,無限循環小數,無限不循環小數
complex 復數,不能比較大小  實部+虛部   兩個部分都是浮點數
1+2j
4+5j
2   進制轉換
bin   二進制
print(bin(2))   #0b10
oct   八進制
print(oct(2))   #0o2
hex   十六進制
print(hex(2))   #0x2
3  數學運算
abs  取絕對值print(abs(-1))divmod  除余
print(divmod(9,6))    #(1, 3)  商1  余3

round  小數精確
print(round(2,445))     #2
print(round(2,56))    #2

sum   求和   q求和對象是可迭代的  sum(iterable,start)   start開始加的值
錯誤寫法  print(sum(1,2))
print(sum([1,2,3,4]))    #10
print(sum([1,2,3,4],10))     #   第一個數從10 開始加

min   求最小值
print(min(2,5,6,8))   #2
print(min(2,5,6,8,-0.5,key=abs))   #-0.5

max
print(max(2,5,6,8,-1,-8,key=abs))   #8

pow  求冪運算pow(x,y,z)
print(pow(2,3))    2的3次方
print(pow(2,3,3)) #冪運算之后再取余2
(三)列表和元組   可以強轉
t=(1,2,3,4)
print(list(t))    #[1, 2, 3, 4]
print(tuple(t)    #再轉回元組(1, 2, 3, 4)

?

1.2相關內置函數
1.  reversed  反轉
reverse  反轉
l=[1,3,6,4]
l.reverse()    #反轉l
print(l)
reversed 保留原列表,得到一個反向迭代器 l2
=reversed(l) #生成器 print(l2) #<list_reverseiterator object at 0x018539D0> for i in l2:print(i) #4,6,3,1

?

2  slice   切片
t = (1,2,23,213,5612,342,43)
t1=slice(0,5,2) 
print(t1)    #slice(0, 5, 2)    切片
print(t[t1])  # (1, 23, 5612)     把l從索引0到5開始切片按照每隔2個值切片
化簡:
print(t[slice(0,5,2)])   # (1, 23, 5612)

1.3字符串

3 format #格式化輸出
print('今天很{},我很{},是個{}'.format('美好','美麗','美女'))
print(format('美麗','>20'))    #把字符串以20個長度為標準,左靠齊
print(format('美麗','<20'))     #把字符串以20個長度為標準,右靠齊
print(format('美麗','^20'))    #把字符串以20個長度為標準,居中
4   bytes
需求把gbk編碼的轉換為utf-8,python是unicode編碼,需要先把'你好'轉為gbk 形式
print(bytes('美麗',encoding='GBK'))                                    #等價于==print('美麗'.encode('gbk')) #  #b'\xc4\xe3\xba\xc3'把unicode轉換為gbk的bytes類型
print((bytes('美麗',encoding='gbk')).decode('gbk').encode('utf-8'))    #轉換成功
注釋:
網頁編程是二進制存儲 照片視頻也是二進制 html網頁爬取也是二進制

?

5.bytearray   bytearray(s,encoding='utf-8')  轉換編碼,特點是可以根據字節碼改內容,但是你要提前 知道要改內容的號碼
b_bytes=bytearray('你好',encoding='utf-8')
print(b_bytes)    #'\xe4\xbd\xa0\xe5\xa5\xbd')
print(b_bytes[0])   #228
print(b_bytes[1])   #189

?

6.memoryview 視覺展示,只是給我們看,不占用內存,但是要調用是時候還是會占用內存,用處比較少
memoryview(bytes('hello,eva',encoding='utf-8')

?

?7.ord字符按照unicode轉數字
print(ord(''))    #20320
print(ord('1'))    #49
print(ord('A'))    #65
print(ord('?'))    #10084

?

8、chr數字按照unicode轉字符,  但是從65(A的數字對應65)開始才能轉換
print(chr(97))    #a
print(chr(98))    #
print(chr(65))    #A
 

?

9、ascii   字符在ascii碼中的內容就打印出來,不是就轉換成\u
print(ascii('')     #'\u4f60'
print(ascii('A') )    #'A'

?

10、repr 用于%r格式化輸出    ,不同于print的是:會將打印內容的數據類型也一起打印出來
name='egg'
print('你好%s'%name)   #你好egg
print('你好%r'%name)   #你好'egg'
print(repr('1'))     #'1'
print('1')       #1
print(repr(1))   #1

?

1.4字符串

11.dict

12、set、
13、frozenset

14、len

15、enumerate枚舉
dic={'a':'b','c':'d'}
for k,i in enumerate(dic,1):print(k,i)

?

1.5相關內置函數(8)
16、all 判斷是否有bool值是Flase的值,---一假均假---用中括號寫進要判斷的值,
print(all([' ','ni','你']))    #True
print(all(['','ni','你'])) #Flase
特殊情況 : print(all([])) #Ture
print(all([''])) #Flase

?

?17、any 判斷bool值是否有True的值-----一真均真
print(any([' ','ni','']))    #True
print(any(['','ni','']))    #True
print(all(['']))    #Flase

?

?18、zip  返回一個迭代器,拉鏈功能
?
a=['a','b']  #列表
b=['c','d']
ret=zip(a,b)
for i in ret:    #('a', 'c')('b', 'd')print(i)
a
={'a','b'} #字典 b={'c','d'} ret=zip(a,b) for i in ret:print(i) ##('a', 'c')('b', 'd')和上面效果一樣 #簡化: a=['a','b'] b=['c','d'] c=['e','f'] for i in zip(a,b,c): #('a', 'c', 'e')('b', 'd', 'f')print(i) #字典、列表、元祖混用拉鏈 a=['a','b','g'] #不是一一對應的話,自動去除多余的 b={'c','d']} #dict list tuple 都可以用zip 來拉鏈 c=('e','f']) for i in zip(a,b,c): #('a', 'c', 'e')('b', 'd', 'f')print(i)
 

?

19、filter  filter()函數接收一個函數 f 和一個list,這個函數 f 的作用是對每個元素進行判斷,返回 True或 False,

filter()根據判斷結果自動過濾掉不符合條件的元素,返回由符合條件元素組成的新list。
?
def f(x):return x%2==0
g=filter(f,[1,3,5,6,7,8])    #filter 得到是一個迭代器
for i in g:print(i)               #6 8
filter過濾的功能
def a(z):return z%2==1 #函數返回值為Ture,則放到新的迭代器中 ret=filter(a,[1,2,3,4,5,6]) #函數名不加括號,因為前面filter要來調用函數名,得到的ret是一個迭代器 for i in ret: #不調用不打印print(i) 功能解析:把可迭代的值傳給某個函數,函數來執行
def a(z):return z%2==0 ret=filter(a,[1,2,3,4,5,6]) for i in ret:print(i) 上面那個filter方法等于這個列表推導式的功能 c=[i for i in [1,2,3,4,5,6] if i%2==1] for i in c:print(i)

取出0到100中能夠開方的整數
from math import sqrt def num(s):if sqrt(s)%1==0:return True ret=filter(num,range(0,101)) for i in ret:print(i)
 

?

20、map
Python中的map函數應用于每一個可迭代的項,返回的是一個結果list。如果有其他的可迭代參數傳進來,
map函數則會把每一個參數都以相應的處理函數進行迭代處理。map()函數接收兩個參數,一個是函數,一個是序列,
map將傳入的函數依次作用到序列的每個元素,并把結果作為新的list返回。
?
#例題L = [1, 2, 3, 4, 5, 6, 7, 8]def l(a):     return a**2g=map(l,L)                #map后得到的也是迭代器print(list(g))              #[1, 4, 9, 16, 25, 36, 49, 64]
或者用for
for i in g: print(i)

?

注釋:

# 結論:filter()之后元素個數會發生改變,map()之后元素個數不會改變
# #filter只管篩選,不會改變原來的值 map值會改變

21、sorted   排序,有key,默認Flse  從小到大排序   reverse=True  從大到小排序
iterable:是可迭代類型;
key:傳入一個函數名,函數的參數是可迭代類型中的每一項,根據函數的返回值大小排序;
reverse:排序規則.reverse = True降序或者reverse = False升序,有默認值。
返回值:有序列表:
例
l=[2,1,5,7,-10]
print(sorted(l,key=abs,reverse=True))     #[-10, 7, 5, 2, 1]
等同于sort
l=[2,1,5,7,-10]
l.sort(key=abs,reverse=True)
print(l)          #[-10, 7, 5, 2, 1]

sort使用方法
l=[2,1,5,7,-10]
l.sort()
print(l)   #[-10, 1, 2, 5, 7]

?

?三、匿名函數

?匿名函數:為了解決那些功能很簡單的需求而設計的一句話函數

#這段代碼
def calc(n):return n**n
print(calc(10))#換成匿名函數
calc = lambda n:n**n
print(calc(10))

?

?







?

?

?

?

轉載于:https://www.cnblogs.com/zzy-9318/p/8228139.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/390408.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/390408.shtml
英文地址,請注明出處:http://en.pswp.cn/news/390408.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Nancy簡單實戰之NancyMusicStore(四):實現購物車

原文:Nancy簡單實戰之NancyMusicStore(四)&#xff1a;實現購物車前言 上一篇&#xff0c;我們完成了商品的詳情和商品的管理&#xff0c;這一篇我們來完成最后的一個購物車功能。 購物車&#xff0c;不外乎這幾個功能&#xff1a;添加商品到購物車&#xff0c;刪除購物車中的商…

劍指 Offer 32 - I. 從上到下打印二叉樹

從上到下打印出二叉樹的每個節點&#xff0c;同一層的節點按照從左到右的順序打印。 例如: 給定二叉樹: [3,9,20,null,null,15,7], 3/ \9 20/ \15 7返回&#xff1a; [3,9,20,15,7] 提示&#xff1a; 節點總數 < 1000 解題思路 使用隊列實現層序遍歷 代碼 /*** …

數據庫表命名 單數復數_數據是還是數據是? “數據”一詞是單數還是復數?

數據庫表命名 單數復數Ill cut right to the chase: the word "data" is plural. Its the plural form of Latin word "datum." Many data. One datum.我將緊追其后&#xff1a;“數據”一詞是復數形式。 它是拉丁文“基準”的復數形式。 許多數據。 一個基…

《七步掌握業務分析》讀書筆記六

分析技術和呈現格式 詞匯表 強有力溝通的一個重要內容是一致地使用術語和慣用語。每次談話都涉及對術語的共同理解。 工作流圖&#xff08;也稱為流程圖、UNL活動圖和過程圖&#xff09; 工作流程把一個或多個業務過程的細節可視化地呈現出來&#xff0c;以澄清理解或提出過程改…

Mysql數據庫--語句整理/提升/進階/高級使用技巧

一、基礎 1、說明&#xff1a;創建數據庫CREATE DATABASE database-name 2、說明&#xff1a;刪除數據庫drop database dbname3、說明&#xff1a;備份sql server--- 創建 備份數據的 deviceUSE masterEXEC sp_addumpdevice disk, testBack, c:\mssql7backup\MyNwind_1.dat--- …

1104. 二叉樹尋路

在一棵無限的二叉樹上&#xff0c;每個節點都有兩個子節點&#xff0c;樹中的節點 逐行 依次按 “之” 字形進行標記。 如下圖所示&#xff0c;在奇數行&#xff08;即&#xff0c;第一行、第三行、第五行……&#xff09;中&#xff0c;按從左到右的順序進行標記&#xff1b;…

javascript 代碼_如何開始對JavaScript代碼進行單元測試

javascript 代碼We all know we should write unit tests. But, its hard to know where to start and how much time to devote to tests compared to actual implementation. So, where to start? And is it just about testing code or do unit tests have other benefits?…

個人作業——軟件工程實踐總結作業

一、請回望暑假時的第一次作業&#xff0c;你對于軟件工程課程的想象 1&#xff09;對比開篇博客你對課程目標和期待&#xff0c;“希望通過實踐鍛煉&#xff0c;增強計算機專業的能力和就業競爭力”&#xff0c;對比目前的所學所練所得&#xff0c;在哪些方面達到了你的期待和…

(轉)在阿里,我們如何管理代碼分支?

阿里妹導讀&#xff1a;代碼分支模式的選擇并沒有絕對的正確和錯誤之分&#xff0c;關鍵是與項目的規模和發布節奏相匹配。阿里協同研發平臺在經過眾多實踐歷練后&#xff0c;總結出了一套獨創的分支管理方法&#xff1a;AoneFlow&#xff0c;通過兼備靈活高效與簡單實用的流程…

WIN10系統 截圖或者某些程序時屏幕會自動放大怎么辦

右擊這個應用程序&#xff0c;兼容性&#xff0c;以兼容模式運行&#xff0c;同時勾選高DPI設置時禁止顯示縮放即可

css背景圖片添加url_CSS背景圖片–如何向您的Div添加圖片URL

css背景圖片添加urlSay you want to put an image or two on a webpage. One way is to use the background-image CSS property. 假設您要在網頁上放置一兩個圖片。 一種方法是使用background-image CSS屬性。 This property applies one or more background images to an el…

golang基礎01

1.環境變量&#xff1a;go env//代碼目錄和第三方庫文件set GOPATHC:\Users\hanxiaodong\go//go安裝目錄set GOROOTC:\Gopath里要配置&#xff1a;goroot/bin;和gopath/bin; gopath目錄下三個文件夾&#xff1a;pkg&#xff1a;編譯好的庫文件 .a 文件bin&#xff1a;可執行文件…

hugo 能做web開發嗎_如何自托管Hugo Web應用

hugo 能做web開發嗎After hosting with Netlify for a few years, I decided to head back to self hosting. There are a few reasons for that, but the main reasoning was that I had more control over how things worked. 在Netlify托管了幾年之后&#xff0c;我決定回到…

資源 | 深度學習課程入門與介紹

【1】Andrew NG Deep Learning.ai http://deeplearning.ai/網易云課堂&#xff08;中文字幕&#xff09;&#xff1a;http://mooc.study.163.com/smartSpec/detail/1001319001.htm推薦理由&#xff1a;Andrew Ng老師是講課的能手&#xff0c;很多人認識他是從Stanford的經典《機…

PostCSS 以及 cssnext語法

本文是對近兩天學習postcss的總結&#xff0c;在這里分享給大家。 如有錯誤&#xff0c;還請指正&#xff01; 什么是postcss postcss 一種對css編譯的工具&#xff0c;類似babel對js的處理&#xff0c;常見的功能如&#xff1a; 1 . 使用下一代css語法 2 . 自動補全瀏覽器前綴…

5187. 收集足夠蘋果的最小花園周長

給你一個用無限二維網格表示的花園&#xff0c;每一個 整數坐標處都有一棵蘋果樹。整數坐標 (i, j) 處的蘋果樹有 |i| |j| 個蘋果。 你將會買下正中心坐標是 (0, 0) 的一塊 正方形土地 &#xff0c;且每條邊都與兩條坐標軸之一平行。 給你一個整數 neededApples &#xff0c…

虛擬機 VMware Workstation12 安裝OS X 系統

Windows下虛擬機安裝Mac OS X —– VMware Workstation12安裝Mac OS X 10.11本文即將介紹WIN虛擬MAC的教程。完整詳細教程&#xff08;包含安裝中的一些問題&#xff09;【并且適用其他mac os x版本】Windows下 VM12虛擬機安裝OS X 10.11(詳細教程) 工具/原料 Mac OS X 10.11 鏡…

aws dynamodb_DynamoDB備忘單–您需要了解的有關2020 AWS認證開發人員助理認證的Amazon Dynamo DB的所有信息

aws dynamodbThe emergence of cloud services has changed the way we build web-applications. This in turn has changed the responsibilities of a Web Developer. 云服務的出現改變了我們構建Web應用程序的方式。 反過來&#xff0c;這改變了Web開發人員的職責。 We use…

北大CIO走進龍泉寺交流研討會圓滿舉行

緣起 2016年4月16日&#xff0c;北京大學信息化與信息管理研究中心秘書長姚樂博士與國家非物質文化遺產蔚縣剪紙傳承人周淑英女士一起在龍泉寺拜見了中國佛教協會會長、龍泉寺主持學誠法師。在拜見學誠法師時&#xff0c;姚樂博士與學誠法師聊到了“賢二機器僧”和人工智能。姚…

負載均衡種類

http://blog.csdn.net/zhoudaxia/article/details/23672319DNS DNS輪詢是最簡單的負載均衡方式。以域名作為訪問入口&#xff0c;通過配置多條DNS A記錄使得請求可以分配到不同的服務器。DNS輪詢沒有快速的健康檢查機制&#xff0c;而且只支持WRR的調度策略導致負載很難“均衡”…