六星源課堂:Python-變量進階你會嗎
變量是python中一個非常重要的內(nèi)容,本文將從變量的引用,變量的可變和不可變性類型、局部變量以及全局變量三個方面進一步分析變量在python中的是如何作用的,以及不同類型變量的用法
一、變量的引用
? ?python的變量和數(shù)據(jù)都是保存在內(nèi)存當中的,并且函數(shù)的參數(shù)傳遞以及返回值都是靠引用傳遞的。
1.1 引用的概念
? ?在python中
? ?1)變量和數(shù)據(jù)分開儲存
2)數(shù)據(jù)保存在內(nèi)存中的一個位置
? ?3)變量保存著數(shù)據(jù)中的一個地址
? ?4)變量中記錄數(shù)據(jù)的地址就叫做引用
5)使用id()函數(shù)可以查找變量的地址
注:如果變量已經(jīng)被定義,當給一個變量賦值時,本質上是修改了數(shù)據(jù)的引用
1.2? 函數(shù)的參數(shù)傳遞和返回值的傳遞
? ??python的函數(shù)的實參和返回值靠引用來傳遞

二、可變型變量與不可變型變量
不可變型變量:變量中的數(shù)據(jù)不可以被更改
? ? 1)數(shù)字類型:int,bool,float,complex,long(4,y)
? ? 2)字符串:str
? ? 3)??元組:tuple
2 . ?可變型:變量中的數(shù)據(jù)可以被更改
? ??1)列表 list
? ??2)字典?dict

注:1.如果給可變類型變量賦新值,變量的引用就會修改,變量不在對之前的數(shù)據(jù)引用而改為對新數(shù)據(jù)的引用
三、局部變量與全局變量
? python中局部,全局變量的定義與使用大致與C語言的相同 ,
? 局部變量是定義在函數(shù)內(nèi)部的變量,只能在函數(shù)內(nèi)部使用
? 全局變量是定義在函數(shù)外部的變量,所有函數(shù)的內(nèi)部都可以使用這個變量
3.1 局部變量?
???1)局部變量是函數(shù)內(nèi)部定義的變量,只能在函數(shù)內(nèi)部使用
? ?2)局部變量使用后會被系統(tǒng)回收,無法在下一個函數(shù)中使用,因此不同函數(shù)可以使用相同變量,彼此之間互不影響
?作用:在函數(shù)內(nèi)部臨時保存函數(shù)所需要使用的數(shù)據(jù)

3)局部變量的生命周期:局部變量的生命生命周期指的是變量從被定義到被使用的過程,局部變量在函數(shù)執(zhí)行時被創(chuàng)建,函數(shù)執(zhí)行結束后被回收,在局部變量的生命周期內(nèi),變量用于儲存函數(shù)內(nèi)部使用到的臨時數(shù)據(jù)
3,2 全局變量
???全局變量是在外部定義的變量,所有函數(shù)內(nèi)部都可以使用全局變量

注:若函數(shù)需要處理變量是會先在函數(shù)內(nèi)部尋找是否存在指定名稱的局部變量,如果沒有則會在函數(shù)外部尋找全局變量。
1)函數(shù)不能修改全局變量的引用
? ? ?在函數(shù)的內(nèi)部可以通過全局變量的引用獲取對應的數(shù)據(jù),但不允許修改對應引用獲取的數(shù)據(jù)即用賦值語句修改全局變量的值

注:函數(shù)內(nèi)部只是定義了一個與局部變量名字相同的變量,并沒有修改全局變量的值,如何給全局變量和局部變量命名這里不過多深究
2)在函數(shù)內(nèi)部修改全局變量的值
? ??如果要修改全局變量,應該用global函數(shù)聲明

以上就是本次分享的全部內(nèi)容了,希望對你有所幫助,六星源課堂為你打造編程世界,歡迎前往~