好程式設計師Python教程系列分享之Python語言元素之變數
好程式設計師 Python教程系列分享之 Python語言元素之變數 , 經常被外行問到兩個問題,其一是“什麼是(計算機)程式”,其二是“寫(計算機)程式能做什麼”,這裡我們先來回答這兩個問題。程式是指令的集合,寫程式就是用指令控制計算機做我們想讓它做的事情。那麼,為什麼要用Python語言來寫程式呢?因為Python語言簡單優雅,相比C、C++、Java這樣的語言,Python對初學者更加友好,當然這並不是說Python不像其他語言那樣強大,Python幾乎是無所不能的,還能用來粘合其他語言開發的系統,所以也被戲稱為“膠水語言”。
一些計算機常識
計算機的硬體系統通常由五大部件構成,包括:運算器、控制器、儲存器、輸入裝置和輸出裝置。其中,運算器和控制器放在一起就是我們通常所說的中央處理器,它的功能是執行各種運算和控制指令。剛才說過了,程式是指令的集合,寫程式就是將一系列的指令按照某種方式組織到一起,然後透過這些指令去控制計算機做我們想讓它做的事情。今天我們大多數人使用的計算機都是“馮·諾依曼體系結構”的計算機,這種計算機有兩個關鍵點:一是要將儲存裝置與中央處理器分開;二是將資料以二進位制方式編碼。
二進位制是一種“逢二進一”的計數法,跟我們人類使用的“逢十進一”的計數法沒有實質性的區別,人類因為有十根手指所以使用了十進位制,因為在數數時十根手指用完之後就只能進位了。當然凡事都有例外,瑪雅人可能是因為長年光著腳的原因把腳趾頭也算上了,於是他們使用了二十進位制的計數法,在這種計數法的指導下,瑪雅人的歷法就與我們平常使用的歷法不一樣。按照瑪雅人的歷法,2012年是上一個所謂的“太陽紀”的最後一年,而2013年則是新的“太陽紀”的開始,後來這件事情被以訛傳訛的方式誤傳為”2012年是瑪雅人預言的世界末日“的荒誕說法。今天很多人都在猜測,瑪雅文明之所以發展緩慢跟使用了二十進位制是有關係的。對於計算機來說,二進位制在物理器件上來說是最容易實現的(高電壓表示1,低電壓表示0)。不是說寫程式的人必須都需要知道十進位制與二進位制如何相互轉換,大多數時候我們也用不上這些知識,但是我們必須要知道的是我們的計算機使用二進位制,不管什麼資料到了計算機記憶體中都是以二進位制形式存在的。
變數和型別
在程式設計中,變數是一種儲存資料的載體。簡單的說,變數是儲存資料的一塊記憶體空間,變數的值可以被讀取和修改,這是所有計算和控制的基礎。計算機能處理的資料有很多種型別,除了數值之外還可以處理文字、圖形、音訊、影片等各種各樣的資料。雖然最終資料都是以二進位制的形態存在的,但是我們可以用不同型別的變數來表示資料型別的差異。Python中的資料型別很多,而且也允許我們自定義新的資料型別(這一點在後面會講到),我們先介紹幾種常用的資料型別。
· 整型(int):Python中可以處理任意大小的整數,而且支援二進位制(如 0b100 ,換算成十進位制是4)、八進位制(如 0o100 ,換算成十進位制是64)、十進位制( 100 )和十六進位制( 0x100 ,換算成十進位制是256)的表示法。
· 浮點型(float):浮點數也就是小數,之所以稱為浮點數,是因為按照科學記數法表示時,一個浮點數的小數點位置是可變的,浮點數除了數學寫法(如 123.456 )之外還支援科學計數法(如 1.23456e2 )。
· 字串型(str):字串是以單引號或雙引號括起來的任意文字,比如 'hello' 和`"hello"。
· 布林型(bool):布林值只有 True 、 False 兩種值,要麼是 True ,要麼是 False 。
變數命名
對於每個變數我們需要給它取一個名字,就如同我們每個人都有屬於自己的響亮的名字一樣。在Python中,變數命名需要遵循以下這些規則和注意事項。
· 變數名由字母(廣義的Unicode字元,不包括特殊字元)、數字和下劃線構成,數字不能開頭。
· 大小寫敏感(大寫的 a 和小寫的 A 是兩個不同的變數)。
· 不要跟關鍵字(有特殊含義的單詞,後面會講到)和系統保留字(如函式、模組等的名字)衝突。
當然,作為一個專業的程式設計師,給變數命名時做到見名知意也是非常重要的。
變數的使用
下面透過幾個例子來說明變數的型別和變數使用。
"""
使用變數儲存資料並進行加減乘除運算
Version: 0.1
Author: 駱昊
"""
a = 321
b = 12
print(a + b) # 333
print(a - b) # 309
print(a * b) # 3852
print(a / b) # 26.75
在Python中可以使用 type 函式對變數的型別進行檢查。程式設計中函式的概念跟數學上函式的概念是一致的,數學上的函式相信大家並不陌生,它包括了函式名、自變數和因變數。如果暫時不理解這個概念也不要緊,我們會在後續的內容中專門講解函式的定義和使用。
"""
使用type()檢查變數的型別
Version: 0.1
Author: 駱昊
"""
a = 100
b = 12.345
c = 'hello, world'
d = True
print(type(a)) # <class 'int'>
print(type(b)) # <class 'float'>
print(type(c)) # <class 'str'>
print(type(d)) # <class 'bool'>
可以使用Python中內建的函式對變數型別進行轉換。
· int() :將一個數值或字串轉換成整數,可以指定進位制。
· float() :將一個字串轉換成浮點數。
· str() :將指定的物件轉換成字串形式,可以指定編碼。
· chr() :將整數轉換成該編碼對應的字串(一個字元)。
· ord() :將字串(一個字元)轉換成對應的編碼(整數)。
下面的例子為大家演示了Python中的型別轉換。
"""
Python中的型別轉換
Version: 0.1
Author: 駱昊
"""
a = 100
b = 12.345
c = 'hello, world'
d = True
# 整數轉成浮點數
print(float(a)) # 100.0
# 浮點型轉成字串 (輸出字串時不會看到引號喲)
print(str(b)) # 12.345
# 字串轉成布林型 (有內容的字串都會變成True)
print(bool(c)) # True
# 布林型轉成整數 (True會轉成1,False會轉成0)
print(int(d)) # 1
# 將整數變成對應的字元(97剛好對應字元表中的字母a)
print(chr(97)) # a
# 將字元轉成整數(Python中字元和字串表示法相同)
print(ord('a')) # 97
總結
在Python程式中,我們可以使用變數來儲存資料,變數有不同的型別,變數可以做運算(下一課會有詳細的講解),變數還可以進行型別轉換。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2688124/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師Python教程系列分享之Python語言元素之運算子程式設計師Python
- 好程式設計師Python教程分享python之變數程式設計師Python變數
- 好程式設計師Python培訓分享函數語言程式設計之匿名函式程式設計師Python函數函式
- 好程式設計師Python培訓分享Python系列之字串的使用程式設計師Python字串
- 好程式設計師Python培訓分享Python系列之迴圈結構程式設計師Python
- Python之函數語言程式設計Python函數程式設計
- 好程式設計師大資料教程分享Scala系列之閉包程式設計師大資料
- Python學習之函數語言程式設計Python函數程式設計
- 好程式設計師Java教程分享Java之設計模式程式設計師Java設計模式
- 好程式設計師web前端教程JavaScript系列之HTTP程式設計師Web前端JavaScriptHTTP
- 好程式設計師Python教程分享Python常見面試問題程式設計師Python面試
- 好程式設計師Python教程分享常見的Python面試題程式設計師Python面試題
- 好程式設計師Python教程分享Python到底是什麼程式設計師Python
- python函數語言程式設計之yield表示式形式Python函數程式設計
- 好程式設計師Python培訓分享Python程式設計師面試技巧程式設計師Python面試
- 好程式設計師Java教程系列之異常定義程式設計師Java
- 好程式設計師大資料教程Scala系列之類程式設計師大資料
- 好程式設計師Python培訓分享Python系列之分支結構程式設計師Python
- 好程式設計師分享MyBatis之動態SQL語句程式設計師MyBatisSQL
- Python函數語言程式設計入門教程Python函數程式設計
- Java技術分享之函數語言程式設計!Java函數程式設計
- Java技術分享之函數語言程式設計Java函數程式設計
- 好程式設計師Java培訓分享Java之命名、標示符、變數程式設計師Java變數
- 好程式設計師web前端分享web測試之Js中的變數程式設計師Web前端JS變數
- 好程式設計師Java教程分享Java語法程式設計師Java
- 好程式設計師JavaScript教程分享JavaScript中變數和作用域程式設計師JavaScript變數
- 好程式設計師Python培訓分享Python面試寶典之基礎篇-03程式設計師Python面試
- 好程式設計師Java教程分享Vue外掛之Axios程式設計師JavaVueiOS
- 好程式設計師Java教程分享Java面試題之Hibernate程式設計師Java面試題
- 好程式設計師大資料教程Scala系列之繼承程式設計師大資料繼承
- 函數語言程式設計實戰教程(Python版)函數程式設計Python
- 好程式設計師雲端計算教程分享Shell程式設計之for迴圈結構程式設計師
- python函數語言程式設計Python函數程式設計
- 好程式設計師Python教程系列第5講-分支結構程式設計師Python
- 好程式設計師大資料分享Scala系列之柯里化程式設計師大資料
- 好程式設計師Java教程分享Java難點解析之泛型程式設計師Java泛型
- 好程式設計師Java實用教程系列之物件的轉型程式設計師Java物件
- 好程式設計師大資料教程分享Scala系列之Option_偏函式_String程式設計師大資料函式