Python數據類型之變數

来源:http://www.cnblogs.com/xiangcl/archive/2017/05/16/6861391.html
-Advertisement-
Play Games

變數 在程式設計中,變數(英語:Variable,scalar)是指一個包含部分已知或未知數值或資訊(即一個值)之儲存位址,以及相對應之符號名稱(識別字)。通常使用變數名稱參照儲存值;將名稱和內容分開能讓被使用的名稱獨立於所表示的精確訊息之外。電腦原始碼中的識別字能在執行期間綁扎一個值,且該變數的值 ...


變數

在程式設計中,變數(英語:Variable,scalar)是指一個包含部分已知或未知數值或資訊(即一個值)之儲存位址,以及相對應之符號名稱(識別字)。通常使用變數名稱參照儲存值;將名稱和內容分開能讓被使用的名稱獨立於所表示的精確訊息之外。電腦原始碼中的識別字能在執行期間綁扎一個值,且該變數的值可能在程式執行期間改變。 程式設計中的變數不一定能直接對應到數學中所謂的變數之概念。在程式設計中,變數的值不一定要為方程或數學公式之一部分。程式設計中的變數可使用在一段可重覆的程式:在一處賦值,然後使用於另一處,接著在一次賦值,且以相同方式再使用一次(見迭代)。程式設計中的變數通常會給定一個較長的名稱,以描述其用途;數學中的變數通常較為簡潔,只給定一、兩個字母,以方便抄寫及操作。

一個變數的儲存位址可以被不同的識別字所參照,這種情況稱之為別名。使用其中一個識別字為變數賦值,將會改變透過另一個識別字存取的值。

編譯器必須將代表變數的名稱替代成該數據所在的實際位址。變數的名稱、類型及位址通常會維持固定,但該位址所儲存之數據於程式執行期間則可能會改變。

--以上是維基百科對 《變數(程式設計)》的解釋

  • 我們知道在電腦運行程式時數據都是暫存在記憶體中的,用通俗的話說:就是代指記憶體中某個地址中所保存的內容。

  • 在Python中,上述圖示用代碼表示為(代碼演示均在linux中完成):
ubuntu@VM-0-26-ubuntu:~$ python                                                                 # 在linux命令行模式下進入python互動式環境
Python 2.7.12 (default, Nov 19 2016, 06:48:10)                                                  # 顯示python的版本號信息
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> name = "xiangcl"                                                                            # 在記憶體中創建一個內容為xiangcl,變數名為name的變數
>>> id(name)                                                                                    # 獲得對象的記憶體的地址
3072794496L
  • 在這個例子中就是變數name和字元串xiangcl之間建立了對應的關係。
  • 在Python中,有一句話叫做:對象有類型,變數無類型。
  • 在上述例子中對象xiangcl是字元串類型,這就好比將name這個標簽粘貼在了字元串xiangcl上面。

變數的命名規則

  • 在Python中,變數只能是由字母、數字以及下劃線組成,且不能以數字作為開頭。
  • 下列Python的關鍵字也不能作為變數名使用(需特別註意):
python2.7
>>> import keyword                                   # 引入keyword庫
>>> keyword.kwlist                                   # 查看關鍵字列表
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
>>> keyword.iskeyword("and")                         # 判斷and是否為關鍵字
True                                                 # 返回True,則為python關鍵字,反之不是,在python3中的判斷方法是一樣的,這裡不在重覆
>>> keyword.iskeyword("has")
False

python3.5.2
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

可以看到Python2和Python3的關鍵詞還是有所不同的。

變數的賦值

>>> name1 = "xiangcl"          
>>> name2 = "向常樂"
>>> id(name1)                    
3072443392
>>> id(name2)
3072427744

>>> name1 = "xiangcl"
>>> id(name1)
3072443392
>>> name2 = name1
>>> id(name2)
3072443392


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Java通過Executors提供四種線程池,分別為:newCachedThreadPool創建一個可緩存線程池,如果線程池長度超過處理需要,可靈活回收空閑線程,若無可回收,則新建線程。newFixedThreadPool 創建一個定長線程池,可控制線程最大併發數,超出的線程會在隊列中等待。newS ...
  • 一、Map用法 ...
  • 數組排序演算法:冒泡排序法、選擇排序法、直接插入排序法、快速排序法 ...
  • 雲服務 子系統:後臺管理系統、Restfu服務系統、Dubbo服務/管控/監控中心 Zookeeper註冊中心、報表分析系統、日誌記錄系統、定時調度系統 搜索引擎系統、分散式文件系統、消息系統、SSO單點登錄系統 SOA管控平臺、UI組件系統、OA辦公系統、CMS新聞發佈系統 支付系統、資料庫配置系 ...
  • dropzone.js預設是Ajax上傳圖片給伺服器,那麼如何獲取到圖片名呢?其實我們是可以通過dropzone的success函數獲取到伺服器返回的數據 dropzone.js在HTML的配置如下; ...
  • ———————————————————————————————————————————— 實驗7.4:RS232串口應用實例 設計要求: 通過串口發送接收數據(串口工作方式1) 實現思路: 定時器設置 串口設置 工作方式 波特率 開啟定時/計數器 串口執行 接收數據 發送數據 串口設置 工作方式 波 ...
  • 路由配置 路由組 允許共用路由屬性,例如中間件和命名空間等,我們沒有必要為每個路由單獨設置共有屬性,共有屬性會以數組的形式放到 Route::group 方法的第一個參數中。 中間件('middleware' => 'auth'),驗證用戶是否登錄。 命名空間 ('namespace' => 'Ad ...
  • spring mvc Spring框架(框架即:編程註解+xml配置的方式)MVC是Spring框架的一大特征,Spring框架有三大特征(IOC(依賴註入),AOP(面向切麵),MVC(建模M-視圖V-控制器C)。框架一般用於團隊開發,使用分層的方式使每個人完成不同的模塊,然後再組合在一起,使完成 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...