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。