日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

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

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

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

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

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

變量

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

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

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

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

常量

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

本節重要知識點

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

作業

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。