1. 程式人生 > >Python之變數和資料型別

Python之變數和資料型別

定義變數

Python程式中,變數是用一個變數名錶示,變數名必須是大小寫英文,數字和下劃線(_)的組合,且不能用數字開頭。

在Python中,等號“=”是賦值語句,可以把任意資料型別賦值給變數,同一個變數可以反覆賦值,而且可以是不同型別的變數。這種變數本身型別不固定的語言稱為動態語言,與之對應的是靜態語言。

靜態語言在定義變數時必須指定變數型別,如果賦值的時候變數不匹配就會報錯,例如Java就是靜態語言。

例如:int a =123;//a是整數型別變數

           a = “mooc”;//錯誤,不能把字串賦值給整型變數

定義字串

字串可以用“ ”或者' ' 表示

當語句中含有“ ”時可用' '表示,例如:'learn “Python”in mooc'

當語句中含有' '時可用“ ”表示,;例如:”I'm ok . ”

如果語句中既有“ ”又有' ',那麼我們需要對字串的某些特殊字元進行'轉義',python字串用 " \ "轉義。

要想表示字串Bob said“I'm ok”就需要用到\轉義

由於“”和''引起歧義,我們在它們前面插入一個\表示這是一個普通字元,不代表字串的起始,即可表示為

'Bob said \"I\'m ok\".'

轉義字元不計入字串的內容中

常見的轉義字元還有:\n  表示換行

                                  \t   表示一個製表符

                                 \\    表示\字元本身

Python中raw字串與多行字串

如果一個字串中包含很多需要轉義的字元,對每個字元進行轉義就會很麻煩。為了避免這種情況,我們可以在字串前面加一個r,表示這是一個raw字串,裡面的字元就不需要轉義了。例如:r'\(~_~)/  \(~_~)/'

但是r'...'表示法不能表示多行字串,也不能表示包含“”和''的字串。

如果要表示多行字串可以用'''....'''表示,例如:

'''Line 1

Line 2

Line 3'''

這個字串和'Line 1\nLine 2\nLine 3'是一個輸出結果

也可以在多行字串前面加r,這樣一個多行字串也就變成了raw字串。

Python中Unicode字串

print u' 中文'

多行:print u'''中文

'''

raw加多行:print ur''' 

'''

#-*- coding: utf-8 -*-

Python中整數和浮點數

Python支援對整數和浮點數直接進行四則混合運算,運算規則和數學上的四則運算規則完全一致。

使用括號可以提升優先順序,這和數學運算完全一致,注意只能使用小括號,但小括號可以巢狀很多層。

和數學運算不同的是,Python的整數運算結果仍是整數,浮點數運算結果仍是浮點數。但是浮點數和整數混合運算結果就變為了浮點數。

整數的除法運算除不盡的時候,結果是整數,餘數被直接扔掉。如:11/4 ==2

Python有取餘運算。如:11%4 ==3

如果計算11/4的準確結果,按照“整數和浮點數混合運算的結果是浮點數”的法則,把其中一個數變為浮點數再運算就可以了。

11.0/4 ==2.75  或 11/4.0 ==2.75

Python中布林型別

Python支援布林型別的資料,布林型別只有True和False兩種輸出值,但是布林型別有以下幾種運算:

與運算:只有兩個布林值都為True時,計算結果才是True

True and Ture == True

True and False == False

False and True == False

False and False == False

或運算:只要有一個布林值為True,計算結果就是True

True or True == True

True or False == True

False or True == True

False or False == False

非運算:把True變為False,或者把False變為True

not True == False

not False == True

布林運算在計算機中用來做條件判斷,根據計算結果為True或False,計算機可以自動執行不同的後續程式碼。

在Python中,布林型別還可以與其他型別做and,or,not運算,如:

a == True

print a and 'a = T' or 'a = F'

計算結果不是布林型別,而是字串 'a =T’

因為Python把0、空字元' ' 和None看做False其他數值和非空字串看做True,所以

True and 'a=T' 計算結果是'a = T'

繼續計算 'a = T' or 'a =F' 計算結果還是'a =T'

要解釋上述結果,又設計到and和or運算的一條重要法則就是:短路計算

1.在計算 a and b時,如果a是False,則根據與運演算法則,整個結果必定為False,因此返回a;如果a是True,則整個計算結果必定取決於b,因此返回b。

2.在計算a or b時,如果a是True,則根據或運演算法則,真個計算結果必定為True,因此返回a;如果a是False,則整個計算結果必定取決於b,因此返回b。