Python初入學習筆記(三)--變量和數據類型

Python 變量和數據類型

目錄

  1. 保留字
  2. 標識符
  3. 變量
  4. 基本數據類型

保留字

    保留字是Python語言中已經被賦予特定意義的一些單詞,在程序開發時不可以把這些保留字作爲變量、函數、類、模塊以及其他對象的名稱來使用。
    Python中的保留字如下表所示
    

and

as

assert break class continue
def del elif else except finally
for from False global if import
in is lambda nonlocal not None
or pass raise return try True
while with yield      


    PS:注意Python中是嚴格區分大小寫的。即if是保留字,但是IF卻不在保留字的範疇內。
    當然了隨着版本的更新,保留字可能會有所改動,而Python中保留字還一顆橢過交互式的終端來查看:
    在交互式終端中一次輸入如下兩行代碼:    

import keyword
keyword.kwlist

效果如圖所示

標識符

    標識符簡單的理解解釋一個名字,就像我們每個人都有自己的名字用於區分。而我們Python中的標識符主要用於標識區分 變量、函數、類、模塊以及其他對象的名稱。
    Python語言標識符命名規則如下:
    1)有字母、下劃線"_"和數字組成,且開頭字符不能爲數字。(目前Python只允許使用ISO-Latin字符集裝那個的字符A~Z和a~z)
    2)不能使用Python中的保留字。
    3)區分字母大小寫。
    4)Python中以下劃線開頭的標識符具有特殊意義,一般避免使用相似的標識符。
        拓展:
            A-以單下劃線開頭的標識符:不能直接訪問的類屬性,也不能通過 import * import ..導入
            B-以雙下劃線開頭的標識符:類的私有成員
            C-以雙下劃線開頭和結尾的標識符:Python專用標識。例如__init__()標識構造函數。
    注意:在Python語言中,漢字作爲標識符是被允許的,如“姓名="涵帥"”,在程序中也不會出現錯誤,如下圖所示:
    
    但是建議不要使用漢字作爲標識符!


變量

    變量的理解

    在Python中,變量我們可以理解爲名字,或者理解爲標籤更合適一些。
    在其他的許多編程語言中,我們大多稱之爲 把數值存儲在變量中,即存在計算機內存的摸一個指定位置
    但是在Python中,變量相當於標籤的存在,就好像在一間課室中有50人,固定座位,我定義:班長=張三。我就可以通過班長可以準確找到張三這個人。通過id()方法函數可以找出他的位置;若我重新賦值:班長=李四,這是我在通過班長找到的就是李四,id()方法函數調用出來的就是李四的位置。
    那麼問題來了,我們在編程中很多時候不同的變量的值是一樣的,那麼他們在內存存儲上有什麼區別嗎?
    我們用代碼示例來看一下,代碼以及運行結果如圖:    

T_num1 = 1
print(id(T_num1))
#觀察輸出內存地址

T_num2 = 1
print(id(T_num2))
#觀察輸出內存地址

T_num3 = 1
print(id(T_num3))
#觀察輸出內存地址

以上示例不難發現,三個變量名是不同的,賦予的數值一樣,對應的內存地址也一樣

我問再做幾個不同的例子看一下:

T_num1 = 1
print("T_num1內存地址爲:"+str(id(T_num1)))
#觀察輸出內存地址

T_num1 = 2
print("T_num1內存地址爲:"+str(id(T_num1)))
#觀察輸出內存地址

T_num1 = 5
print("T_num1內存地址爲:"+str(id(T_num1)))
#觀察輸出內存地址

第二個示例:三個變量名是相同的,依次賦予的數值不一樣,對應的內存地址隨之不同

T_num1 = 1
print("T_num1內存地址爲:"+str(id(T_num1)))
#觀察輸出內存地址
T_num2 = 2
print("T_num2內存地址爲:"+str(id(T_num2)))
#觀察輸出內存地址

T_num3 = 5
print("T_num3內存地址爲:"+str(id(T_num3)))
#觀察輸出內存地址

第三個示例:三個變量名不同,賦予的數值也不一樣,對應的內存地址也不同

綜上總結:變量的內存地址是根據數值改變而改變的,數值相同的變量對應的內存地址一樣。

這也是我們爲什麼說Python中的變量描述爲標籤更合適一些:在Python語言中,當我們將一直數值賦給一個或者變量時,實質上就是將對應的值打上一個或者多個標籤,當變量的值改變是,我們就將這個標籤去下貼在內心的數值上。就航向我們平常閱讀紙質書籍,今天看了一部分後爲,在最後閱讀的位置夾上便籤,第二天閱讀結束再講便籤改到細心地閱讀位置,整一個過程便籤歲閱讀位置改變而改變;就好比我們Python中變量內存地址隨着數值的改變而改變 一個道理。

        變量的定義和使用

        在Python中,不需要先聲明變量及其類型,直接複製即可創建各種類型的變量。但需要注意的是變量的命名並非任意,需遵循以下幾條規則:

           1)變量名必須是一個有效的標識符

           2)變量名不能是Python中保留字

           3)慎用小寫字母l(L)和大寫字母O

           4)變量名一般選用有意義的單詞構成

        變量賦值通過等號"="完成,語法格式:變量名 = value

        另外,由於Python是動態型語言;即變量類型可以隨時變化 ;我們利用type()方法函數返回變量類型。示例如下:

基本數據類型

    1)數字類型
        整數:整數數值,即無小數部分摻雜
            十進制數:0~9組成,逢十進一
            八進制數:0~7組成,逢八進一,並且以0o開頭;例如:0o123轉化成十進制數就是83(注意在Python3中是以0o開頭,而Python中是以0開頭)
            十六進制數:0~9和A~F組成,逢十六進一,並且以0x/0X開頭;例如0x25轉換成十進制數是37,0Xb01e轉換成十進制數就是45086
            二進制數:由0和1兩個基數構成,逢二進一;例如,101轉換成十進制數就是5,1010轉換成十進制數就是10
        浮點數:整數部分和小數部分構成;浮點數也可以使用科學計數法標識
            注意:使用浮點數計算式,會存在小數位數不確定的情況;示例如下:


            所有編程語言都存在這個問題,忽略多餘位數即可
        複數:與數學中的複數完全一致,有實部和虛部組成,其中j和J都表示虛部;表示一個複數時,將其實部和虛部相加即可。複數賦值有兩種方法,示例如下:

但需注意的是虛部的一定要寫出來,例如我們數學中標識1+j,在python編程中就要寫成1+1j,示例如下:
    2)字符串類型:連續的字符序列,可以是計算機能表示的一切字符的集合;字符串屬於不可變序列,通常用單引號“ '' ”、雙引號“ "" ”或者三引號“ ''' ''' ”括起來。三種形式只是形式差別,無語義差別,其中,一組單雙引號內的字符串必須在一行,三引號可以分佈多行。示例如下:


    3)布爾類型 :表示真/假的值;在Python中,標識符True和False被解釋爲布爾值。並且布爾值也可以轉換爲數值:

          True-->1 ; False-->0


    數據類型轉換問題

              Python是動態性語言,不想java或者C一樣扎UN高壓熊聲明變量類型。但是,雖然不用聲明類型,但有時依然需要用到類型轉換,有些地方不進行類型轉換甚至會報錯。

             一次整理相關類型轉換方法函數如下表所示:

函數 作用
int(x) 將x轉換成整數類型
float(x) 將x轉換成浮點類型
complex(real[,imag]) 創建一個複數
str(x) 將x轉換成字符串
repr(x) 將x轉換成表達式字符串
eval(x) 計算在字符串中有效的Python表達式,並返回一個對象
chr(x) 將x轉換成一個字符
ord(x) 將一個字符x轉換爲他所對應的整數值
hex(x) 將一個整數x轉換成爲一個十六進制字符串
oct(x) 將一個整數x轉換成爲一個八進制字符串

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章