-
字符串是Python程序重要的數據類型,到目前為止,我們輸出的字符串的內容都是固定的,但有時候通過字符串輸出的內容不是固定的,這個時候需要使用format來處理字符串,輸出不固定的內容。
字符串format由兩個部分組成,字符串模板和模板數據內容組成,通過大括號{}
,就可以把模板數據內容嵌到字符串模板對應的位置。#?字符串模板 template?=?'Hello?{}' #?模板數據內容 world?=?'World' result?=?template.format(world) print(result)?#?==>?Hello?World
如果模板中
{}
比較多,則容易錯亂,那么在format的時候也可以指定模板數據內容的順序。#?指定順序 template?=?'Hello?{0},?Hello?{1},?Hello?{2},?Hello?{3}.' result?=?template.format('World',?'China',?'Beijing',?'imooc') print(result)?#?==>?Hello?World,?Hello?China,?Hello?Beijing,?Hello?imooc. #?調整順序 template?=?'Hello?{3},?Hello?{2},?Hello?{1},?Hello?{0}.' result?=?template.format('World',?'China',?'Beijing',?'imooc') print(result)?#?==>?Hello?imooc,?Hello?Beijing,?Hello?China,?Hello?World.
除了使用順序,還可以指定對應的名字,使得在format過程更加清晰。
#?指定{}的名字w,c,b,i template?=?'Hello?{w},?Hello?{c},?Hello?,?Hello?{i}.' world?=?'World' china?=?'China' beijing?=?'Beijing' imooc?=?'imooc' #?指定名字對應的模板數據內容 result?=?template.format(w?=?world,?c?=?china,?b?=?beijing,?i?=?imooc) print(result)?#?==>?Hello?World,?Hello?China,?Hello?Beijing,?Hello?imooc.
查看全部 -
如果一個字符串包含很多需要轉義的字符,對每一個字符都進行轉義會很麻煩。為了避免這種情況,我們可以在字符串前面加個前綴
r
,表示這是一個?raw?字符串,里面的字符就不需要轉義了。例如:r'\(~_~)/?\(~_~)/'
但是
r'...'
表示法不能表示多行字符串,也不能表示包含'
和?"
的字符串。如果要表示多行字符串,可以用
'''...'''
表示:'''Line?1 Line?2 Line?3'''
上面這個字符串的表示方法和下面的是完全一樣的:
'Line 1\nLine 2\nLine 3'
還可以在多行字符串前面添加
r
,把這個多行字符串也變成一個raw字符串:r'''Python?is?created?by?"Guido". It?is?free?and?easy?to?learn. Let's?start?learn?Python?in?imooc!'''
查看全部 -
前面我們講解了什么是字符串。字符串可以用
' '
或者" "
括起來表示。如果字符串本身包含
'
怎么辦?比如我們要表示字符串?I'm OK?
,這時,可以用" "
括起來表示:"I'm?OK"
類似的,如果字符串包含
"
,我們就可以用' '
括起來表示:'Learn?"Python"?in?imooc'
但是,如果字符串既包含
'
又包含"
怎么辦?這個時候,就需要對字符串中的某些特殊字符進行“轉義”,Python字符串用
\
進行轉義。要表示字符串
Bob said "I'm OK"
由于'
和"
會引起歧義,因此,我們在它前面插入一個\
表示這是一個普通字符,不代表字符串的起始,因此,這個字符串又可以表示為'Bob?said?\"I\'m?OK\".'
注意:轉義字符?
\
不計入字符串的內容中。常用的轉義字符還有:
\n
表示換行\t
?表示一個制表符\\
表示?\
?字符本身查看全部 -
與運算
只有兩個布爾值都為 True 時,計算結果才為 True。
True?and?True?#?==>?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?0?or?99)?#?==>?99
得到的計算結果不是布爾類型,而是數字99,這是為什么呢?
因為Python把0、空字符串和None看成False,其他數值和非空字符串都看成True
需要注意的是,not計算的優先級是高于and和or的。
短路計算
在計算
a and b
時,如果 a 是 False,則根據與運算法則,整個結果必定為 False,因此返回 a;如果 a 是 True,則整個計算結果必定取決與 b,因此返回 b。在計算
a or b
時,如果 a 是 True,則根據或運算法則,整個計算結果必定為 True,因此返回 a;如果 a 是 False,則整個計算結果必定取決于 b,因此返回 b。
所以Python解釋器在做布爾運算時,只要能提前確定計算結果,它就不會往后算了,直接返回結果。
查看全部 -
Print (“郭銘邦”)查看全部
-
1、列表的pop()方法,pop()方法默認刪除列表的最后一個元素,并返回
2、pop()方法,除了可以刪除最后一個元素以外,pop()還可以接收一個參數,指定需要刪除的元素的位置。
name?=?L.pop(2)
查看全部 -
1?、注意,
append()
方法總是將元素添加到list的尾部。2、insert()方法和append()方法不一樣,insert()方法需要兩個參數,分別是需要插入的位置,以及需要插入的元素。?
查看全部 -
切片的時候,list[1:2:3]中的值:
1表示起始位置,2表示終止位置(如果為空,則表示切到末尾),3表示步長值。1、2同時為空,即從頭切到尾。
查看全部 -
list可以放入數字、字符串等數據類型,list不對放入其中的類型進行判斷,也就是說,list可以同時放入任意類型的數據,這是Python這門語言決定的
查看全部 -
注意if和while 之后的換行縮進
查看全部 -
小數點位數
使用Python計算小數的時候,經常需要保留小數點后若干位,可以使用round()函數來處理,這里先了解round的調用方式,使用兩個參數,第一個是需要保留小數點位數的數值,第二個是保留的位數。
num?=?10?/?3 print(num)?#?==>?3.3333333333333335 #?使用round保留兩位小數 round(num,?2)?#?==>?3.33
查看全部 -
地板除
Python除了普通除法以外,還有一個特殊的除法被稱為
地板除
,對于地板除
,得到的結果會忽略純小數的部分,得到整數的部分,地板除使用//
進行。10//4?#?==>?2 10//2.5?#?==>?4.0 10//3?#?==>?3
查看全部 -
Python數字支持取模運算,使用百分號
%
表示取模。print(3?%?2)?#?==>?1 print(33?%?10)?#?==>?3 print(99?%?30)?#?==>?9
恰當使用取模運算,可以判斷一個數是否為偶數,當一個數對2取模結果為0時,則這個數為偶數,否則為奇數。
print(3?%?2)?#?==>?1?因此3為奇數 print(33?%?2)?#?==>?1?因此33為奇數 print(100?%?2)?#?==>?0?因此100為偶數
查看全部 -
a?=?1?#?這個時候a存儲的是整數類型 print(a) a?=?'ABC'?#?這個時候a存儲的是字符串類型 print(a)
這是Python這類語言特有的特性,我們稱之為動態語言,與之對應的是靜態語言,Python、Javascript等等都是動態語言,Java、C、C++等等屬于靜態語言。
查看全部 -
特別注意: 這一系列條件判斷會從上到下依次判斷,如果某個判斷為 True,執行完對應的代碼塊,后面的條件判斷就直接忽略,不再執行了。
查看全部
舉報