要在 Python 中查看和打印局部變量和全局變量的列表,可以使用 和 內置函數。這些函數返回一個字典,分別包含當前作用域中所有局部變量和全局變量的名稱和值。然后,您可以使用字典的方法循環(huán)訪問鍵值對并將其打印到輸出中。locals()globals()items()
成都創(chuàng)新互聯公司成立于2013年,是專業(yè)互聯網技術服務公司,擁有項目網站設計制作、成都網站設計網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元文圣做網站,已為上家服務,為文圣各地企業(yè)和個人服務,聯系電話:13518219792
下面是如何使用 and 函數在 Python 中打印局部變量和全局變量的示例:locals()globals()
此代碼定義函數中的全局變量和局部變量。然后,它使用 and 函數分別打印局部變量和全局變量的列表。運行此代碼時,它將輸出以下內容:global_varlocal_varlocals()globals()
如您所見,該函數返回一個包含局部變量的字典,而該函數返回一個包含全局變量 、 和 的字典。您可以使用此方法在 Python 中查看和打印任何范圍內的局部變量和全局變量列表。locals()local_varglobals()__name__global_varprint_vars
回答不易望請采納
查看python內置函數的方法:1、打開Python IDLE編輯器;2、輸入" dir(__builtins__)"命令,按下回車鍵(Enter)得到Python全部內置變量和函數。
如何查看 Python 全部內置變量和內置函數?
1 如圖,打開 Python IDLE,我用的 是 Python 3.7 ,界面有個性定制。你的版本不同,界面有差異,但是操作方法應該是一樣的。
2 輸入 dir(__builtins__)
按下回車鍵(Enter)。
3 也可以:
import builtins
dir(builtins)
按下回車鍵(Enter)。
得到的結果和 dir(__builtins__) 是一樣的。
4 那么這返回的一大堆到底是什么東西?
可以看到,返回的結果是以 [ 開頭以 ] 結尾,說明是個列表,我們看看這列表里一共有多少個元素?
輸入:
len(dir(__builtins__))
得到一個數字,154 ,說明當前版本的 Python 內置的常量和函數總數是 154 。
5 我們再重新輸出一下這個列表,逐個打印出來,更好看一點。
for item in dir(__builtins__):
print(item)
按下兩次回車鍵(Enter)。按照默認的字母順序,先是大寫字母 A-Z,然后是下劃線(_)開頭的,然后是小寫字母 a-z ,為什么是這個順序?因為按照 ASCII 碼表,表示小寫字母的數字比表示大寫字母的數字要大,而表示下劃線(_)的數字居中,所以如此。
6 print() 就是 Python 3 的默認函數。我們試試:
print('Hello World')
builtins.print('Hello World')
__builtins__.print('Hello World')
運行結果如下,可以看到,結果是一樣的。
dir()本身就是 Python 的內置函數,利用它,我們可以查看對象的全部方法和屬性,對于掌控全局,了解全貌很有用。
課程推薦:Python快速教程之從入門到精通
python內置函數是什么?一起來看下吧:
python內置函數有:
abs:求數值的絕對值
abs(-2) 2
pmod:返回兩個數值的商和余數
pmod(5,2) (2,1) pmod(5.5,2) (2.0,1.5)
bool:根據傳入的參數的邏輯值創(chuàng)建一個布爾值
bool()?#未傳入參數 False bool(0)?#數值0、空序列等值為False False bool(1) True
all:判斷可迭代對象的每個元素是否都為True值
all([1,2])?#列表中每個元素邏輯值均為True,返回True True ?all(())?#空元組 True ?all({})?#空字典 True
help:返回對象的幫助信息
help(str)? Help?on?class?str?in?module?builtins: class?str(object) |??str(object='')?-?str |??str(bytes_or_buffer[,?encoding[,?errors]])?-?str |?? |??Create?a?new?string?object?from?the?given?object.?If?encoding?or |??errors?is?specified,?then?the?object?must?expose?a?data?buffer |??that?will?be?decoded?using?the?given?encoding?and?error?handler. |??Otherwise,?returns?the?result?of?object.__str__()?(if?defined) |??or?repr(object). |??encoding?defaults?to?sys.getdefaultencoding(). |??errors?defaults?to?'strict'. |?? |??Methods?defined?here: |?? |??__add__(self,?value,?/) ??????????Return?self+value.
_import_:動態(tài)導入模塊
index?=?__import__('index') index.sayHello()
locals:返回當前作用域內的局部變量和其值組成的字典
def?f(): ????print('before?define?a?') ????print(locals())?#作用域內無變量 ????a?=?1 ????print('after?define?a') ????print(locals())?#作用域內有一個a變量,值為1 ?f?f() before?define?a? {}? after?define?a {'a':?1}
input:讀取用戶輸入值
s?=?input('please?input?your?name:') please?input?your?name:Ain ?s 'Ain'
open:使用指定的模式和編碼打開文件,返回文件讀寫對象
#?t為文本讀寫,b為二進制讀寫 ?a?=?open('test.txt','rt') ?a.read() 'some?text' ?a.close()
eval:執(zhí)行動態(tài)表達式求值
eval('1+2+3+4') 10
除了上述舉例的函數之外,內置函數按分類還可分為:
1、數學運算(7個)
2、類型轉換(24個)
3、序列操作(8個)
4、對象操作(7個)
5、反射操作(8個)
6、變量操作(2個)
7、交互操作(2個)
8、文件操作(1個)
9、編譯操作(4個)
10、裝飾器(3個)
(1)Lambda函數
用于創(chuàng)建匿名函數,即沒有名稱的函數。它只是一個表達式,函數體比def簡單很多。當我們需要創(chuàng)建一個函數來執(zhí)行單個操作并且可以在一行中編寫時,就可以用到匿名函數了。
Lamdba的主體是一個表達式,而不是一個代碼塊。僅僅能在lambda表達式中封裝有限的邏輯進去。
利用Lamdba函數,往往可以將代碼簡化許多。
(2)Map函數
會將一個函數映射到一個輸入列表的所有元素上,比如我們先創(chuàng)建了一個函數來返回一個大寫的輸入單詞,然后將此函數應有到列表colors中的所有元素。
我們還可以使用匿名函數lamdba來配合map函數,這樣可以更加精簡。
(3)Reduce函數
當需要對一個列表進行一些計算并返回結果時,reduce()是個非常有用的函數。舉個例子,當需要計算一個整數列表所有元素的乘積時,即可使用reduce函數實現。
它與函數的最大的區(qū)別就是,reduce()里的映射函數(function)接收兩個參數,而map接收一個參數。
(4)enumerate函數
用于將一個可遍歷的數據對象(如列表、元組或字符串)組合為一個索引序列,同時列出數據和數據下標,一般用在for循環(huán)當中。
它的兩個參數,一個是序列、迭代器或其他支持迭代對象;另一個是下標起始位置,默認情況從0開始,也可以自定義計數器的起始編號。
(5)Zip函數
用于將可迭代的對象作為參數,將對象中對應的元素打包成一個個元組,然后返回由這些元組組成的列表
當我們使用zip()函數時,如果各個迭代器的元素個數不一致,則返回列表長度與最短的對象相同。