python基礎(15):內置函數(一)

1. 內置函數

什麼是內置函數? 就是python給你提供的,拿來直接⽤的函數,好比print,input等等,截⽌到python版本3.6.2 python⼀共提供了68個內置函數。他們就是python直接提供給咱們的,有
⼀些咱們已經⽤過了,有⼀些尚未⽤過,還有⼀些須要學完了⾯向對象才能繼續學習的,今天咱們就認識⼀下python的內置函數。
做⽤域相關:
locals():返回當前做⽤域中的名字
globals():返回全局做⽤域中的名字
迭代器相關:
range():⽣成數據
next():迭代器向下執⾏⼀次, 內部實際使⽤了__next__()⽅法返回迭代器的下⼀個項⽬
iter():獲取迭代器, 內部實際使⽤的是__iter__()⽅法來獲取迭代器
字符串類型代碼的執⾏:
eval():執⾏字符串類型的代碼. 並返回最終結果
print(eval("2+2")) # 4
n = 8
print(eval("2+n")) # 10
def func():
  print(666)
eval("func()") # 666
exec():執⾏字符串類型的代碼
exec("""
for i in range(10):
   print(i)
""")
exec("""
def func():
   print("我是周杰倫")
func()
""")
compile():將字符串類型的代碼變異,代碼對象可以經過exec語句來執⾏或者eval()進⾏求值
'''
參數說明:
 1. resource 要執⾏的代碼, 動態代碼⽚段
 2. ⽂件名, 代碼存放的⽂件名, 當傳⼊了第⼀個參數的時候, 這個參數給空就能夠了
 3. 模式, 取值有3個,
 1. exec: ⼀般放⼀些流程語句的時候
 2. eval: resource只存放⼀個求值表達式.
 3. single: resource存放的代碼有交互的時候. mode應爲single
'''
code1 = "for i in range(10): print(i)"
c1 = compile(code1, "", mode="exec")
exec(c1)

code2
= "1+2+3" c2 = compile(code2, "", mode="eval") a = eval(c2) print(a)
code3
= "name = input('請輸⼊你的名字:')" c3 = compile(code3, "", mode="single") exec(c3) print(name)
有返回值的字符串形式的代碼⽤eval(),沒有返回值的字符串形式的代碼⽤exec(),⼀般不多⽤到compile()。
輸入和輸出相關:
input():獲取⽤戶輸入的內容
print():打印輸出
內存相關: 
hash():獲取到對象的哈希值(int, str, bool, tuple)
id():獲取到對象的內存地址
⽂件操做相關: 
open():⽤於⼝打開⼀個⽂件,建立⼀個⽂件句柄
模塊相關:
__import__():⽤於動態加載類和函數
幫助: 
help():函數⽤於查看函數或模塊⽤途的詳細說明
調⽤相關: 
callable():⽤於檢查⼀個對象是不是可調⽤的,若是返回True,object有可能調⽤失敗,但若是返回False,那調⽤絕對不會成功
查看內置屬性: 
dir():查看對象的內置屬性,⽅法,訪問的是對象中的__dir__()⽅法
基礎數據類型相關:  
  數字相關: 
bool():將給定的數據轉換成bool值,若是不給值,返回False
int():將給定的數據轉換成int值,若是不給值, 返回0
flfloat():將給定的數據轉換成flfloat值,也就是⼩數
complex():建立⼀個複數,第⼀個參數爲實部,第⼆個參數爲虛部,或者第⼀個參數直接⽤字符串來描述複數
  進制轉換: 
bin():將給的參數轉換成⼆進制
otc():將給的參數轉換成八進制
hex():將給的參數轉換成⼗六進制
  數學運算: 
abs():返回絕對值
divmode():返回商和餘數
round():四捨五入
pow(a, b):求a的b次冪,若是有三個參數,則求完次冪後對第三個數取餘
sum():求和
min():求最⼩值
max():求最⼤值
和數據結構相關: 
  列表和元組: 
list():將⼀個可迭代對象轉換成列表
tuple():將⼀個可迭代對象轉換成元組
reversed():將⼀個序列翻轉, 返回翻轉序列的迭代器
slice():列表的切片
st = "⼤家好, 我是麻花藤"
s = slice(1, 5, 2)
print(st[s])
  字符串相關: 
str():將數據轉化成字符串
format():與具體數據相關, ⽤於計算各類⼩數, 精算等
# 字符串
print(format('test', '<20')) # 左對⻬
print(format('test', '>20')) # 右對⻬
print(format('test', '^20')) # 居中
# 數值
print(format(3, 'b')) # ⼆進制
print(format(97, 'c')) # 轉換成unicode字符
print(format(11, 'd')) # ⼗進制
print(format(11, 'o')) # ⼋進制
print(format(11, 'x')) # ⼗六進制(⼩寫字⺟)
print(format(11, 'X')) # ⼗六進制(⼤寫字⺟)
print(format(11, 'n')) # 和d⼀樣
print(format(11)) # 和d⼀樣
# 浮點數
print(format(123456789, 'e')) # 科學計數法. 默認保留6位⼩數
print(format(123456789, '0.2e')) # 科學計數法. 保留2位⼩數(⼩寫)
print(format(123456789, '0.2E')) # 科學計數法. 保留2位⼩數(⼤寫)
print(format(1.23456789, 'f')) # ⼩數點計數法. 保留6位⼩數
print(format(1.23456789, '0.2f')) # ⼩數點計數法. 保留2位⼩數
print(format(1.23456789, '0.10f')) # ⼩數點計數法. 保留10位⼩數
print(format(1.23456789e+10000, 'F')) # ⼩數點計數法.
bytes():把字符串轉化成bytes類型
s = "你好"
bs = s.encode("UTF-8")
print(bs)
s1 = bs.decode("UTF-8")
print(s1)
bs = bytes(s, encoding="utf-8") # 把字符串編碼成UTF-8
print(bs)
bytearray():返回⼀個新字節數組。這個數字⾥的元素是可變的,而且每一個元素的值得範圍是[0,256)
ret = bytearray('alex',encoding='utf-8')
print(ret[0])
print(ret)
memoryview():查看bytes在內存中的狀況
# 查看bytes字節在內存中的狀況
s = memoryview("麻花藤".encode("utf-8"))
print(s)
ord():輸入字符找帶字符編碼的位置
chr():輸入位置數字找出對應的字符
ascii():是ascii碼中的返回該值 不是就返回\u...
# 找到對應字符的編碼位置
print(ord('a'))
print(ord(''))
# 找到對應編碼位置的字符
print(chr(97))
print(chr(20013))
# 在ascii中就返回這個值. 若是不在就返回\u...
print(ascii('a'))
print(ascii(''))
repr():返回⼀個對象的string形式
# repr 就是原封不動的輸出, 引號和轉義字符都不起做⽤
print(repr('⼤家好,\n \t我叫周杰倫'))
print('⼤家好我叫周杰倫')

# %r 原封不動的寫出來 name = 'taibai' print('我叫%r' % name)
  數據集合:
dict():建立⼀個字典
set():建立⼀個集合
frozenset():建立⼀個凍結的集合,凍結的集合不能進⾏添加和刪除操做
  其餘相關: 
len():返回⼀個對象中的元素的個數
sorted():對可迭代對象進⾏排序操做(講完lamda後再講這個)
enumerate():獲取集合的枚舉對象
lst = ["alex", "wusir", "taibai"]
for index, el in enumerate(lst):
  print(str(index)+"==>"+el)
all():可迭代對象中所有是True,結果纔是True
any():可迭代對象中有⼀個是True,結果就是True
print(all([1,2,True,0]))
print(any([1,'',0]))
zip():函數⽤於將可迭代的對象做爲參數,將對象中對應的元素打包成⼀個個元組,而後返回由這些元組組成的開了表,若是各個迭代器的元素個數不⼀致,則返回列表⻓度與最短 的對象相同
l1 = [1,2,3,]
l2 = ['a','b','c',5]
l3 = ('*','**',(1,2,3))
for i in zip(l1,l2,l3):
  print(i)
fifilter():過濾(講完lamda)
map():會根據提供的函數對指定序列作映射(lamda)
相關文章
相關標籤/搜索