Python:[4]變量,表達式和語句?

Python(英國發音:/ˈpaɪθən/ 美國發音:/ˈpaɪθɑːn/),是一種面向對象、直譯式計算機編程語言,具有近二十年的發展歷史,成熟且穩定。它包含了一組完善而且容易理解的標準庫,能夠輕鬆完成很多常見的任務。它的語法簡捷和清晰,儘量使用無異義的英語單詞,與其它大多數程序設計語言使用大括號不一樣,它使用縮進來定義語句塊。

Python:[4]變量,表達式和語句

工具/原料

Python

2.1 變量和類型

變量是指向各種類型值的名字,以後再用到某個值時,直接引用這個名字即可,不用在寫具體的值。在Python中,變量的使用環境非常寬鬆。沒有明顯的變量聲明,而且類型不是固定的。你可以把一個整數賦值給變量,如果覺得不合適,把字符串賦值給它完全可以。

>>> x = 100

>>> print x

100

>>> x = "China"

>>> print x

China

在別的語言中這是不允許的,若把字符串賦值給整數變量是錯誤的。我覺得這樣做是合理的,難道書櫃只能放書,擱別的東西就不行嗎?字符串必須以引號標記開始,並以之標記結束。如果你不能確定變量或數據的類型,就用解釋器內置的函數type確認。如下:

>>> type("Hello,World!")

(type 'str')

>>> type(17)

(type 'int')

>>> x = "QHD"

>>> type(x)

“Hello,World!”屬於字符串類型,變量x也是字符串類型,17屬於整數類型。

帶有小數點的數字叫做浮點數。檢查3.0是否為浮點數。如下:

>>> type(3.0)

(type 'float')

只要是用雙引號或單引號括起來的值,都屬於字符串。例如:

>>> type("31")

(type 'str')

>>> type("2.5")

(type 'str')

>>> type("P001")

2.2 變量名和關鍵字

程序中的變量名要有實際意義。變量名可以是由數字和字符組成的任

意長度的字符串,但必須以字母開頭。python是區分大小寫的。舉個例子

來說,Name和name是兩個不同的變量名。請看下面的例子:

>>> Name = "pi"

>>> name = "da"

>>> print name, Name

da pi

符號“_”連接由多個單詞組成的變量名。請看下面的例子:

>>> my_name = "pi da qing"

>>> print my_name

pi da qing

如果定義了一個錯誤的變量名,解釋器顯示語法錯誤。請看下面的例

子:

>>> 1_first = "第一名"

SyntaxError: invalid syntax

>>> my$ = "dollar"

SyntaxError: invalid syntax

>>> print = 12345

SyntaxError: invalid syntax

變量1 ¯rst不應以數字開頭;變量my$包含非法的字符;變量名print與python定

義的關鍵字print重名,所以print不能再當作變量名了。python定義了28個

關鍵字:

and continue else for import not raise assert def except from in or return

break del exec global is pass try class elif finally if lambda print while

2.3 語句

語句是Python解釋器可以執行的命令。我們已經知道兩條語句:打印和賦值。

賦值語句有兩個作用:一是建立新的變量,二是將值賦予變量。任何變量在使用時,都必須賦值。否則,被視為不存在的變量。下面例子有三條賦值語句。第一個是將值“How are you?”賦值給字符串變量message;第二個是將18賦值給整數變量n;第三個是將數字3.1415926賦值給浮點變量pi。當打印不存在的變量時,系統給出錯誤信息。如下:

>>> message = "How are you?"

>>> n = 18

>>> pi = 3.1415926

>>> print abc #錯誤語句,沒有該變量。

NameError: name 'i' is not defined

一般的情況下,我們用狀態圖表示變量的狀態。左邊是變量的名稱,右邊是變量值,中間的箭頭指向值。狀態圖顯示了賦值語句的最終操作結果(如圖 2.1)。

Python:[4]變量,表達式和語句

也可以用函數type檢查變量的類型。變量的類型就是它所指向的值的類型。

>>> type(message)

(type 'str')

>>> type(n)

(type 'int')

>>> type(pi)

(type 'float')

打印語句print輸出表達式的計算結果。單個變量也可以看作是表達式。如果你想在一行打印多個變量,可以用逗號將這些變量隔開,逗號禁止換行。例如:

>>> x = 3

>>> y = 8.9

>>> print x, y, "hello", 9

3 8.9 hello 9

>>> print x, '\t', y, "\t", "hello", "\t", 9

3 8.9 hello 9

第二個print語句用製表符將這些變量隔開。

下面是一些特殊符號的打印方法:

>>> #打印單引號

>>> print "''"

''

>>> #打印雙引號

>>> print '""'

""

>>> #打印換行符

>>> print '\n'

>>> #打印反斜槓

>>> print '\\'

\

2.4 表達式

表達式由值、變量和運算符組成。如果在命令行上輸入表達式,解釋

器驚醒計算,並顯示結果:

>>> 23.3 + 1.2

24.5

單一的值或變量也可以當作是表達式:

>>> 45

45

>>> x = 1.2

>>> x

1.2

計算表達式和打印值是有很大區別的,要注意區分。

>>> "I am free!"

'I am free!'

>>> message = "I am free!"

>>> message

'I am free!'

>>> print message

I am free!

>>> print "I am free!"

I am free!

當Python顯示錶達式的值時,顯示的格式與你輸入的格式是相同的。如果

是字符串,就意味著包含引號。而打印語句輸出的結果不包括引號,只有

字符串的內容。

在腳本文件中,任何表達式都被認為是合法的語句,但是這個語句不

做任何事。你可以試著運行下面的腳本文件。

# 表達式在腳本文件不做任何事。

12345

34.90

"I am free!"

3 + 5

這個腳本根本沒有任何輸出。

2.5 運算符和操作數

運算符是像加號和減號之類的特殊符號。運算符操作的對象是操作數。

符號+, -, / ,()的意義與數學中的意義基本相同。一個星號代表的是乘法,兩個星號代表的是乘冪。請看下面的例子:

下面的例子都是合法的Python表達式:

20 + 32

hour - 1

hour * 60 + minute

minute / 60

5 ** 2

(5+9) * (15-7)

操作數還可以是變量,當運算執行前,變量被它所指向的值替代。

>>> 3 * 4

12

>>> 3 ** 4

81

>>> x = 9

>>> y = 6

>>> x * y

54

需要注意的是除法運算。如果除數和被除數都是整數,那麼結果是截調小數部分的整數。解決的辦法是將除數和被除數任意之一加小數點,或是加小數點和零。例如:

>>> 5 / 2

2

>>> 5.0 / 2

2.5

>>> 5 / 2.0

2.5

>>> 5 / 2.

2.5

模數操作符“%”計算兩個整數的餘數:

>>> print 5 \% 3

2

>>> print 123 \% 12

3

Python還支持複數的運算。複數有兩種表示方法,一種如:

>>> a = 1 + 5j

>>> b = 4j

另一種是用函數的方法:

>>> x =complex(1, 5)

>>> print x

(1+5j)

複數也能夠進行數學運算:

>>> a = 3 +3j

>>> b = 4 + 4j

>>> print a + b

(7+7j)

>>> print a - b

(-1-1j)

>>> print a * b

24j

>>> print a / b

(0.75+0j)

2.6 運算的順序

如果表達式中有不止一個運算符,那麼計算的順序依靠“優先規則”。Python運算符的“優先規則”和算術的相同。以下關於“優先規則”的建議:

小括號有最高的優先級。在表達式中,括號內的首先計算。我們可以利用括號使表達式更容易讀懂,而不影響計算結果。

乘冪運算的優先級僅次於小括號。例如:

>>> (1 + 3) ** 2

16

>>> 3 * 3 ** 2

27

乘法和除法的優先級相同,比加減法的優先級高。加減法的優先級也是相同的。例如:

>>> 2 + 3 * 3 + 2

13

>>> 4 - 10 / 5

2

>>> 4 * 5 / 2

10

具有相同優先權的運算符從左到右進行計算。

2.7 字符串操作

通常情況下,字符串放在雙引號或單引號之間。字符串不能進行除法、減法和字符串之間的乘法運算,下面的操作都是非法的:

>>> "hello" / 3

TypeError: unsupported operand type(s) for /: 'str' and 'int'

>>> string = "string"

>>> string - 1

TypeError: unsupported operand type(s) for -: 'str' and 'int'

>>> string * "hello"

TypeError: unsupported operand type(s) for *: 'str' and 'str'

加法“+”能夠連接兩個字符串成為一個字符串。例如:

>>> string1 = "Red"

>>> string2 = "Hat"

>>> print string1 + string2

RedHat

由於“Red”和“Hat”沒有空格,所以它們非常親密的連在一起。如果想讓字符串之間有空格,可以建一個空字符變量,插在相應的字符串之間讓它們隔開,或是在字符串中加入相應的空格。

>>> space = " "

>>> str1 = "A"

>>> str2 = "B"

>>> str3 = "C"

>>> print str1 + space + str2 + space + str3

A B C

>>> astr = 'Linux '

>>> bstr = ' Unix '

>>> cstr = 'OS/2'

>>> print astr + bstr + cstr

Linux Unix OS/2

符號“”也可以操作字符串。只是其中一個操作數必須是字符串,另一個必須是整數。字符串被重複整數遍。例如:

>>> 3 * "Love"

'LoveLoveLove'

>>> string = "python"

>>> string * 2

'pythonpython'

2.8 組合

到目前為止,我們已經學習了程序的幾大元素:變量,表達式和語句。但只是孤立的學習,還沒有考慮怎樣把他們組合起來,完成一項具體的操作。例如,我們可以把加法操作和打印語句結合起來,顯示加法表達式的結果:

>>> print 10 + 9

19

實際上,加法操作發生在打印操作之前,所以這兩個動作不是同時發生的。任何涉及到數字,字符串和變量的表達式都可作為Print語句的參數。

例如:

>>> interest = 0.003

>>> saving = 12345.98

>>> print "Total: ", saving + saving * interest

Total: 12383.01794

賦值語句,即等號“=”的右邊可以是任意的表達式。表達式的值是什麼類型,變量就是什麼類型。

>>> int = 5

>>> str = "hello"

>>> var = int * 7

>>> type(var)

>>> var = str + " world"

>>> type(var)

有一點要記住,賦值語句的左邊不能出現表達式。像下面的語句是非法的:

>>> name + 9 = 10 #錯誤的賦值語句。

SyntaxError: can't assign to operator

2.9 註釋

當程序越來越複雜時,讀懂它就變得非常困難。程序的各部分之間緊密銜接,想依靠部分的代碼來了解整個程序要做的,是困難的。因此,好的習慣是在程序中加入適當的註釋,以解釋它要做的事情。註釋必須以符號“#”開始:

# 打印1+1的結果

print 1 + 1

註釋可以單獨佔一行,也可以放在語句行的末尾:

print 1 + 1 # 打印1+1的結果

從符號“#”開始,到這一行的末尾之間的所有內容都被忽略,這部分對程序沒有影響。註釋信息主要是方便了程序員,一個新來的程序員通過註釋信息,能夠較快的瞭解程序所做的;原來的程序員在經過一段時間後,可能對自己的程序不瞭解了,利用註釋信息就能較快的熟悉。

變量, 字符串, 表達式, 語句,
相關問題答案