日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

python 定义变量_第三章(第2节):变量和常量

發(fā)布時間:2023/12/10 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 定义变量_第三章(第2节):变量和常量 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

變量的概念基本上和初中代數(shù)的方程變量是一致的,只是在計算機程序中,變量不僅可以是數(shù)字,還可以是任意數(shù)據(jù)類型,比如我們上節(jié)課剛剛學過的基本數(shù)據(jù)類型或者我們后面要學的自定義數(shù)據(jù)類型。

所謂常量就是不能改變的變量,我們現(xiàn)實世界中存在這樣的不可改變的東西,比如圓周率 π,萬有引力常量 G 等等都是不可改變的量。

本節(jié)我們學習變量和常量的定義和語法。

變量

  • 在程序中我們用一個變量名來表示變量,變量名的寫法必須是大小寫英文,數(shù)字和_的組合,且記不能用數(shù)字開頭。小說明:英文符號 # 表示注釋,# 后面的內(nèi)容程序在執(zhí)行時會忽略掉,只有我們程序員才能看到。
name = "jack" NAME = "jack" _name = "jack" name2 = "jack" 2name = "jack" # 錯誤:數(shù)字不能在前面 name! = "jack" # 錯誤:不支持其它字符
  • Python 中內(nèi)置一些關(guān)鍵字(我們可以使用 keyword 模塊提供的函數(shù)打印出當前 Python 解釋器規(guī)定的所有關(guān)鍵字,注意 Python 版本不同,所規(guī)定的關(guān)鍵字有所變化),雖然這些關(guān)鍵字符合變量的命名規(guī)則,但是 Python 解釋器規(guī)定不能使用這些關(guān)鍵字作為變量名,否則解釋器報語法錯誤。
import keyword print(keyword.kwlist) # 列出當前 Python 解釋器的所有關(guān)鍵字and = 9 # 關(guān)鍵字 and 不可以作為變量名
  • 在 Python 中,英文等號 = 是賦值運算符,可以把任意數(shù)據(jù)類型賦值給變量,同一個變量可以反復賦值,而且可以是不同類型的變量,程序中的等號和數(shù)學上的等號不是一個意思, Python 程序中用兩個等號來表示數(shù)學上的等號。
data = 2 print(data) data = True print(data) data = "老鳥Python" print(data) print(2 == 2)
  • 我們也可以把一個變量賦值給另一個變量,這個操作實際上是修改變量指向令一個變量所指向的數(shù)據(jù),看如下代碼。
strone = "Python" strtwo = strone strone = "Hello"print(strone) print(strtwo)
  • 我們對以上代碼進行分析,看看每一句代碼在內(nèi)存中是如何表示的,對于第一句代碼 strone = "Python",Python 解釋器首先檢查字符串 "Python" 中的每個字符在內(nèi)存中是不是存在,如果不存在就給每個字符分配內(nèi)存空間,如果存在則不給該字符創(chuàng)建內(nèi)存,然后 Python 解釋器再次在內(nèi)存中開辟一塊內(nèi)存(比如內(nèi)存地址為:0x8899aa 的地方)存放字符串 "Python" 中每個字符的地址,然后 Python 解釋器再次在內(nèi)存中開辟一塊內(nèi)存存放 strone 變量(比如內(nèi)存地址為:0x223388), strone 變量的值就是字符串 "Python"的地址。注意:0x 開頭是表示用十六進制表示數(shù)值。

  • 對于第二句代碼 strtwo = strone,Python 解釋器再次在內(nèi)存中開辟一塊內(nèi)存存放 strtwo 變量(比如內(nèi)存地址為:0x223399),然后 Python 解釋器把 strone 變量內(nèi)存里面的值(0x8899aa)賦值給 strtwo 的內(nèi)存,目前執(zhí)行上面兩句代碼后的內(nèi)存模型如下圖。

  • 對于第三句代碼 strone = "Hello",Python 解釋器首先檢查字符串 "Hello" 中的每個字符在內(nèi)存中是不是存在,如果不存在就給每個字符分配內(nèi)存空間,如果存在則不給該字符創(chuàng)建內(nèi)存, Python 解釋器再次在內(nèi)存中開辟一塊內(nèi)存(比如內(nèi)存地址為:0x8899bb 的地方)存放字符串 "Hello" 中每個字符的地址,然后 Python 解釋器把字符串 "Hello" 的地址(0x8899bb)賦值給 strone 的內(nèi)存,最后的結(jié)果是 strone 內(nèi)存的值為 0x8899bb,strtwo 內(nèi)存的值為 0x8899aa,如下圖。

  • 注意:"Hello"字符串中 有兩個 l 字符成員,在 Python 解釋器第一次給 l 分配內(nèi)存后,就不會再給第二個 l 分配內(nèi)存了,所以字符串 "Hello" 中兩個 l 成員的內(nèi)存地址是一樣的,大家可以通過 Python 的 id 函數(shù)驗證一下字符串中兩個 l 成員的地址是否一樣。
strone = "Hello" print(id(strone[2])) # 第一個 <code>l</code> 成員的內(nèi)存地址 print(id(strone[3])) # 第二個 <code>l</code> 的內(nèi)存地址

常量

  • 所謂常量就是不能改變的變量,Python 中定義常量和其它語言中定義常量不同,比如 c++ 語言可以在變量名前加上關(guān)鍵字 const 來定義這個變量是常量,常量在定義的時候必須初始化,在這之后就不能修改該常量的值,否則編譯器會報錯。 Python 語言沒有關(guān)鍵字可以把一個變量定義成一個常量,所以 Python 語言本身并沒有常量的語法定義,但我們一般對全大寫字母命名的變量來假定它是常量,程序員本身約定成俗就行了。
PI = 3.14159 # 告訴程序員變量 PI 不要修改。 PI = 3.2 # 雖然修改編譯器不會報錯,但最好不要修改。 print(PI)
  • 在任何編程語言中,字符串都是存放在常量區(qū),所以我們都說字符串是常量值,也就是說任何一個變量的值如果是字符串的話,我們則不能通過該變量修改字符串內(nèi)的值。
strone = "Hello" strone[1] = "x" # Python 解釋器會報錯
  • Python 基本類型中的數(shù)字,字符串,None 和 bool 值(True 和 False)本身不能修改,我們通常把這些數(shù)據(jù)類型的值叫做右值,但在 Python2 中布爾值可以修改。
8 = 9 # 8是右值,并且 8 本身不符合變量名命名規(guī)則 "hello" = "byebye" # "hello" 是右值,并且不符合變量名命名規(guī)則 None = 8 # None 是右值,不可以修改 False = True # False 是右值,不可以修改

本節(jié)重要知識點

  • 深刻理解 Python 語言中變量的內(nèi)存模型。
  • 要知道 python 中的常量的約定寫法。

作業(yè)

畫出三句代碼 dataone = 8, datatwo = 5, dataone = datatwo 每一步的內(nèi)存模型。

總結(jié)

以上是生活随笔為你收集整理的python 定义变量_第三章(第2节):变量和常量的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。