1. 程式人生 > 其它 >Python中的變數

Python中的變數

變數

  • 變數是一個儲存位置(地址)
    每個變數都有名字並且包含一個值
    在這裡插入圖片描述
  • 注意:
    • 1.Python中會通過賦值給變數來自動判定資料型別
    • 2.print(item1, item2, item3, …, itemN) 如果某項是一個數字,數字就會被自動轉化為顯示一個字串

變數的命名

  • Python變數命名的基本原則:

    • 必須以字母或下劃線開頭,其他字元只能是字母、數字以及下劃線
    • 不能使用特殊符號,如?、%、$、#、^、&、逗號等
    • 變數名對大小寫敏感
    • 不能使用if或class這樣的保留字
      在這裡插入圖片描述
  • 檢視Python中的所有關鍵字

    import keyword
    print(keyword.kwlist)

  • 可以提高品位和編輯習慣的兩條軍規:

    • 使用描述性的名字,見名知意

    • 使用小寫字母開頭表示變數、全大寫字母表示常量、大寫字母開頭表示自定義型別

    • 其他語言也常用的命名規則

      nick_name = “符合Python命名規則的暱稱變數”
      nickName = “使用駝峰命名規則的暱稱變數”
      NickName = “首字母大寫,在Python中適合命名一個新的自定義型別”
      NICK_NAME = “全部字母大寫,稱為帕斯卡命名法,一般用來命名常量”

定名常量

  • Python中沒有常量機制,一切靠程式設計師自覺!!!

  • 變數的值在程式的執行過程中有可能改變,但是定名常量(常量)代表永遠不會變的固定資料
    在這裡插入圖片描述

  • 使用常量的好處:

    1.不用為了使用同一個值而多次重複輸入

    2.方便一次修改,處處跟新新
    3.描述性的識別符號能夠提高程式的可讀性

資料型別

  • 數字是自然界計數活動的抽象,更是數學運算和推理表示的基礎

    • 確定性:指程式能夠正確且無歧義地讀取資料所代表的型別含義
    • 高效性:指程式能夠為數字運算提供較高的運算速度及較少的儲存代價
  • 支援的數字型別

    • 整數型別:int
    • 浮點數型別:float
    • 複數型別:complex
      在這裡插入圖片描述

標準資料型別

Python3.中有六個標準的資料型別
在這裡插入圖片描述

# 不可變型別
num = 1234              # 整型變數
print("num第一次賦值的地址:", id(num))      # id()函式可以返回某個變數的記憶體地址
num = 4321 print("num第二次賦值的地址:", id(num)) # id()函式可以返回某個變數的記憶體地址 # 元組型別 - 元組元素確定之後不能改變 point_fairy = (160, 80, 60, 70) print(point_fairy[0]) # 可變型別:列表(第五章講解)、集合、字典 list1 = [1, 2, 3, 4, 5] # 列表比元組更加靈活,可以增加或是刪除元素 list1.append(112) # 增加元素 list1.remove(1) # 刪除元素 print(list1) set1 = {1, 2, "3", "4", 5.5} set1.add("今天吃了嗎?") print(set1) # 字典:通過 鍵 - 值 對的方式表示資料 dict1 = { "姓名": "尹天仇", "職業": "少莊主", "出處": "水月洞天", "性別": "男" } print(dict1["姓名"]) print(dict1["職業"]) print(dict1["出處"]) print(dict1["性別"])

使用整型物件

  • 變數在使用前必須被建立

    phone = 110
    print("你好!是", phone, "嗎?")
    
  • 可以從控制檯輸入:

    phone = input("請輸入一個號碼:")
    print("你好!", phone, "為您服務!")
    
  • 字串只能連線字串

    • 解決方案1:把使用者輸入的字串轉換成整型

      phone = input("請輸入一個號碼:")
      print(type(phone))
      phone = int(phone)              # 將變數phone轉換成int型別,再賦值給phone變數
      print("你好!請撥打", phone + 10, "這個號碼。")
      
    • 解決方案2:使用更加強大的eval函式 – 是Python的直譯器

      phone = eval(input("請輸入一個號碼:"))             # 將使用者輸入的字串轉換成數字型別
      print("喂,", phone + 9, "嗎?我是", phone)
      

整數型別

  • 整數型別公有4種進製表示
    在這裡插入圖片描述
    # 不同進位制的整數型別
    num1 = 1024     # 十進位制
    num2 = 0x12EF   # 0x/0X 開頭是十六進位制數字
    num3 = 0o1177   # 0o/0O 開頭的是八進位制數字
    print("num1的十六進位制為:", hex(num1))         # hex函式將十進位制轉換為十六進位制
    print("num的十六進位制為:", hex(id(num1)))
    del num1                # Python中刪除某個變數的引用 delete -> del
    
    # 演示Python用於計算
    print("2的32768次方 = \n", 2 ** 32768)
    # 求數字的位數 - 先將數字轉換成字串,在使用len()函式返回字串的長度
    import time
    start = time.time()         # 統計計算的時間
    print("2的3276811次方一共有", len(str(2 ** 3276811)), "位。")
    print("耗時:", time.time() - start)
    

浮點型

  • Python要求所有浮點數必須帶有小數部分,用以區分浮點型和整數型別

  • 浮點數有兩表示方法:

    • 十進位制表示法:0.0, -88., -2.14,
    • 科學計演算法:96e4, 4.2e-3, 9.8E4
    # 浮點型別
    num1 = 9.18E5       # 科學計數法
    print(num1)
    import sys          # 引入系統模組,檢視浮點型別的基本資訊
    print(sys.float_info)
    # 浮點型有個特點,15位小數內為有效小數 - 一旦超過16位,就會存在誤差
    num1 = 3.1515926575879242        # 小數點後一共有16位
    print("num1 = ", num1)
    import decimal                   # decimal - 數字模組
    num1 = decimal.Decimal('3.15159265758792422222333333')       # decimal.Decimal 數字模組中定義的數字型別,且只能使用單引號
    print(num1)
    

變數的記憶體管理**

在這裡插入圖片描述

變數與資料型別小結

  • 變數

    • 變數是一個儲存位置,每個變數在使用前都必須賦值,變數賦值以後該變數才會被建立
    • 在 Python 中,變數就是變數,它沒有型別,我們所說的"型別"是變數所指的記憶體中物件的型別
  • Python中的資料型別

    • 不可變資料類:數字、字串、元組
    • 可變資料類:列表、集合、字典
  • Python中的數字型別

    • 整數型別、浮點型別和複數型別
  • 注意

    • 1.Python可以同時為多個變數賦值,如a, b = 1, 2
    • 2.一個變數可以通過賦值指向不同型別的物件
    • 3.整數和浮點數混合運算時,結果是浮點數
    • 4.整數或浮點數與複數運算時,結果是複數