1. 程式人生 > >python D13 內建函式

python D13 內建函式

# 1、內建函式
# 什麼是內建函式? 就是python給你提供的. 拿來直接⽤的函式, 比如print., input等等. 截⽌
# 到python版本3.6.2 python⼀共提供了68個內建函式. 他們就是python直接提供給我們的. 有
# ⼀些我們已經⽤過了. 有⼀些還沒有⽤過. 還有⼀些需要學完了⾯向物件才能繼續學習的. 今
# 天我們就認識⼀下python的內建函式.

# 不熟悉的函式:
# 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()

# callable() ⽤於檢查⼀個物件是否是可調⽤的. 如果返回True, object有可能調⽤失敗, 但
# 如果返回False. 那調⽤絕對不會成功

# float() 將給定的資料轉換成float值. 也就是⼩數
# complex() 建立⼀個複數. 第⼀個引數為實部, 第⼆個引數為虛部. 或者第⼀個引數直接
# ⽤字串來描述複數
# 進位制轉換:
# bin() 將給的引數轉換成⼆進位制
# otc() 將給的引數轉換成八進位制
# hex() 將給的引數轉換成⼗六進位制

# 數學運算:
# abs()
# 返回絕對值
# divmode()
# 返回商和餘數
# round()
# 四捨五入
# pow(a, b)
# 求a的b次冪, 如果有三個引數.則求完次冪後對第三個數取餘

# 和資料結構相關:
# 列表和元組:
# list() 將⼀個可迭代物件轉換成列表
# tuple() 將⼀個可迭代物件轉換成元組
# reversed() 將⼀個序列翻轉, 返回翻轉序列的迭代器
# slice() 列表的切片
# st = "⼤家好, 我是麻花藤"
# s = slice(1, 5, 2)
# print(st[s]) # slice:可用於多個檔案切割位置相同,而split()只能執行一次一個目標

# memoryview() 檢視bytes在記憶體中的情況
# # 檢視bytes位元組在記憶體中的情況
# s = memoryview("麻花藤".encode("utf-8"))
# print(s) # <memory at 0x00ED04A8>

# ord() 輸入字元找帶字元編碼的位置
# chr() 輸入位置數字找出對應的字元
# ascii() 是ascii碼中的返回該值 不是就返回\u...

# repr() 返回⼀個物件的官⽅表⽰形式
# repr 輸出⼀個字串的官⽅表示形式.
# print(repr('⼤家好,\n \t我叫周杰倫')) # '⼤家好,\n \t我叫周杰倫'
# print('⼤家好我叫周杰倫') #⼤家好我叫周杰倫

# # 當想輸出"\"或"\n"等可在列印的字串前面加r
# print(r"你是大燒餅\n嗎") # 你是大燒餅\n嗎

# sorted() 對可迭代物件進⾏排序操作(講完lamda後再講這個)
# enumerate() 獲取集合的列舉物件 # 遍歷索引和列表元素
# lst = ["alex", "wusir", "taibai"]
# for index, el in enumerate(lst):
# print(str(index)+"==>"+el)
# 輸出結果:0==>alex
# 1==>wusir
# 2==>taibai
# all() 可迭代物件中全部是True,

# x = [1, 2, 3, 4, 5, 7]
# for c, c1 in enumerate(x):
# print(c, c1)

# all() 可迭代物件中全部是True, 結果才是True
# any() 可迭代物件中有⼀個是True, 結果就是True
# zip() 函式⽤於將可迭代的物件作為引數, 將物件中對應的元素打包成⼀個個元組, 然
# 後返回由這些元組組成的開了表. 如果各個迭代器的元素個數不⼀致, 則返回列表⻓度與最短
# 的物件相同.
# l1 = [1,2,3,]
# l2 = ['a','b','c',5]
# l3 = ('*','**',(1,2,3))
# for i in zip(l1,l2,l3): # zip是將l1、l2、l3對應的所以打包在一起,只能用for迴圈遍歷出來
# print(i)
# 列印結果:
# (1, 'a', '*')
# (2, 'b', '**')
# (3, 'c', (1, 2, 3))