和作用域相關(guān)
locals() 返回當(dāng)前作用域中的名字
globals() 返回全局作用域中的名字
def func():
a = 10
print(locals()) # 當(dāng)前作用域中的內(nèi)容
print(globals()) # 全局作用域中的內(nèi)容
print("今天內(nèi)容很多")
func()
# {'a': 10}
# {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__':
# <_frozen_importlib_external.SourceFileLoader object at 0x0000026F8D566080>,
# '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins'
# (built-in)>, '__file__': 'D:/pycharm/練習(xí)/week03/new14.py', '__cached__': None,
# 'func': <function func at 0x0000026F8D6B97B8>}
# 今天內(nèi)容很多
和迭代器生成器相關(guān)
range() 生成數(shù)據(jù)
next() 迭代器向下執(zhí)行一次, 內(nèi)部實(shí)際使⽤用了__ next__()⽅方法返回迭代器的下一個(gè)項(xiàng)目
iter() 獲取迭代器, 內(nèi)部實(shí)際使用的是__ iter__()⽅方法來獲取迭代器
for i in range(15,-1,-5):
print(i)
# 15
# 10
# 5
# 0
lst = [1,2,3,4,5]
it = iter(lst) # __iter__()獲得迭代器
print(it.__next__()) #1
print(next(it)) #2 __next__()
print(next(it)) #3
print(next(it)) #4
字符串類型代碼的執(zhí)行
eval() 執(zhí)行字符串類型的代碼. 并返回最終結(jié)果
exec() 執(zhí)行字符串類型的代碼
compile() 將字符串類型的代碼編碼. 代碼對象能夠通過exec語句來執(zhí)行或者eval()進(jìn)行求值
s1 = input("請輸入a+b:") #輸入:8+9
print(eval(s1)) # 17 可以動態(tài)的執(zhí)行代碼. 代碼必須有返回值
s2 = "for i in range(5): print(i)"
a = exec(s2) # exec 執(zhí)行代碼不返回任何內(nèi)容
# 0
# 1
# 2
# 3
# 4
print(a) #None
# 動態(tài)執(zhí)行代碼
exec("""
def func():
print(" 我是周杰倫")
""" )
func() #我是周杰倫
code1 = "for i in range(3): print(i)"
com = compile(code1, "", mode="exec") # compile并不會執(zhí)行你的代碼.只是編譯
exec(com) # 執(zhí)行編譯的結(jié)果
# 0
# 1
# 2
code2 = "5+6+7"
com2 = compile(code2, "", mode="eval")
print(eval(com2)) # 18
code3 = "name = input('請輸入你的名字:')" #輸入:hello
com3 = compile(code3, "", mode="single")
exec(com3)
print(name) #hello
輸入輸出
print() : 打印輸出
input() : 獲取用戶輸出的內(nèi)容
print("hello", "world", sep="*", end="@") # sep:打印出的內(nèi)容用什么連接,end:以什么為結(jié)尾
#hello*world@
內(nèi)存相關(guān)
hash() : 獲取到對象的哈希值(int, str, bool, tuple). hash算法:(1) 目的是唯一性 (2) dict 查找效率非常高, hash表.用空間換的時(shí)間 比較耗費(fèi)內(nèi)存
s = 'alex'print(hash(s)) #-168324845050430382lst = [1, 2, 3, 4, 5]print(hash(lst)) #報(bào)錯(cuò),列表是不可哈希的 id() : 獲取到對象的內(nèi)存地址s = 'alex'print(id(s)) #2278345368944
文件操作相關(guān)
open() : 用于打開一個(gè)文件, 創(chuàng)建一個(gè)文件句柄
f = open('file',mode='r',encoding='utf-8')
f.read()
f.close()
模塊相關(guān)
__ import__() : 用于動態(tài)加載類和函數(shù)
# 讓用戶輸入一個(gè)要導(dǎo)入的模塊
import os
name = input("請輸入你要導(dǎo)入的模塊:")
__import__(name) # 可以動態(tài)導(dǎo)入模塊
幫 助
help() : 函數(shù)用于查看函數(shù)或模塊用途的詳細(xì)說明
print(help(str)) #查看字符串的用途
調(diào)用相關(guān)
callable() : 用于檢查一個(gè)對象是否是可調(diào)用的. 如果返回True, object有可能調(diào)用失敗, 但如果返回False. 那調(diào)用絕對不會成功
a = 10
print(callable(a)) #False 變量a不能被調(diào)用
#
def f():
print("hello")
print(callable(f)) # True 函數(shù)是可以被調(diào)用的
查看內(nèi)置屬性
dir() : 查看對象的內(nèi)置屬性, 訪問的是對象中的__dir__()方法
print(dir(tuple)) #查看元組的方法