Python從入門到放棄(三):基本語句和語法
一.一些改變
1.Python增加了什麼
相比起C++或者其他一些語言,Python增加了一個冒號”:”.所有的python複合語句,都是首行由冒號來提醒,這個一定不能夠掉了!且接下來是以縮排的形式來書寫.(C++或者一些語言是大括號括起來的).後面會看到這個冒號是怎麼用的.
2.python捨棄了什麼
1.很多的括號可以去掉,比如if後面的括號能夠去掉,while後面的括號能夠去掉,等等
2.終止一行就是終止語句,所以不需要分號”;”作為程式的終止的標誌.
3.縮排的結束就是一段複合程式碼塊的結束!!!
二.賦值
有語言的基礎的發現,賦值還是和以前的賦值方式差不多,但是Python有了更多的方便的新特點.
Ⅰ.一些概念
a)賦值語句建立物件引用值(因此,python變數更加像是指標)
b)變數名在首次賦值的時候會被建立
c)變數名在引用之前必須先賦值
d)知道執行隱式賦值的操作(模組匯入,函式和類的定義等等)
Ⅱ.基本賦值方式
基本賦值方式我們已經見得很多了,就是傳統的賦值方式比如a=2啊巴拉巴拉這些,很簡單.但是要注意之前說的,即使變數被賦值,也能夠指向其他的物件.所以說非常靈活.這個就不舉例子了.
Ⅲ.序列賦值
在python中,序列是能夠相互混合賦值的,只要兩邊都是序列就行!,但是兩邊的長度(就是元素的個數)要相同,不相同的話會報錯.
很簡單,舉個例子一看就會,看例子就行.
上面的兩邊都是同一型別的,元組對元組,列表對列表.事實上,前面已經說了,序列賦值能夠混合.通暢情況下,python會從左到右,把右側序列中的元素賦值給左側序列中的變數。
這部分其實很簡單,也很重要,後面很多簡化的賦值要用到他們.
Ⅳ.擴充套件序列解包(python3)
之前說序列賦值的時候,就有說明,元素的數量一定要相等,不然會報錯.但是有時候只要用一些變數就能夠接收右邊物件中的值,那這時候就要用到擴充套件的序列解包.名詞很裝逼,其實一點也不難.擴充套件的序列解包中你一定能夠看到一個*號,那是幹嘛的呢?
不裝逼,直接看例子就懂了.
Ⅴ.多目標賦值
多目標賦值聽上去很裝,其實就是傳統的連續賦值,多個等號的那種.
事實上,就是隻有一個物件,全部變數都指向記憶體中的同一個物件.所以,要是對於某些原地修改的物件.一個改變,那麼其他的變數也會受到影響.所以,有時候需要copy或者是獨立設定.
Ⅵ.增強賦值語句
也是聽上去很厲害,其實就是c語言語法的一個模仿(但是真的挺好用的).適用於任何的支援隱式二元表示式的型別.
是不是很眼熟,哈哈
很簡答,這個挺好用的,例子就不舉了…(例子表示很可憐)
三.輸入和列印
Ⅰ.列印
先講列印是因為列印是用的頻率很高的操作.
python3中的print函式.
格式為:print([object,……][,seq=’ ’][,end=’\n’][,file=sys.stdout])
1.sep是在每個物件的文字之間插入的一個字串.預設傳遞單個空格;要是不想輸出物件之間有空格,可以傳遞一個空字串.
2.end是放在列印文字末尾的一個字串.預設傳遞換行符.
3.file指定了文字將要傳送到的檔案,標準流或者其他類似於檔案的物件.預設是sys.stdout.
看一個例子
Ⅱ.輸入
四.判斷
提起判斷和迴圈,首要就要提到比較.所以首先說一下比較和一些邏輯有關的關鍵字.
大小比較:
x>y;x<y;x>=y;x<=y #和C或者C++一樣
相等關係:
x==y;x!=y; #和C或者C++一樣
x is y #完全一樣的物件
邏輯詞:
x and y #與運算,類比於C中的x&&y
x or y #或運算,類比於C中的x||y
not x #取反,類比於C中的!x
判斷的一般形式是:
if test1: #後面":"不能夠掉因為要跟複合語句了,或者硬記下來
<statements1> #要縮排.要是有多句話,保持一致的縮排
elif test2: #類比else if
<statements2>
else:
<statements3>
一個例子:
要是年齡大於20就買房,否則不買房
結果是yes
其實就到這裡就夠了,真的真的沒有什麼好多講的….注意格式,不要漏掉冒號”:”注意要縮排.就行了.
五.迴圈
基本的迴圈有兩種:while(通用迴圈)和for(遍歷序列物件內的元素).
Ⅰ.while
模板:
常用:
while(test): //不要忘記:和縮排
<statements1>
else: //else是可選的
<statements2>
通用:
while(test1):
<statements1>
if <test2>:
break
if<test3>:
continue
else:
<statement2>
注意:想要else這個語句有用的話,前面的break就不能夠生效。它能夠退出當前的一整個迴圈結構,包括else
基本例子:
break,continue,pass和迴圈else
1.break(跳出最近所在的迴圈,跳過整個迴圈語句)
2.continue:跳到最近所在迴圈的開頭處
3.pass :什麼也不做,只是佔空位語句
4.else :正常離開迴圈的時候就執行(前面沒有break語句)
依然是和C很相似的結構.就不多說了.實踐中用就知道了.
Ⅱ.for
用它來遍歷序列物件內的元素,並且對每個元素執行一個程式碼塊
語法模板:
for <target> in <object>:
<statement>
else:
<statement>
當python執行for迴圈時,會逐個將序列物件中的元素賦給目標然後為每個元素執行迴圈主體。
基本例子
列表
元組和字串
for迴圈中的序列賦值
遍歷字典
以上就是基本了,還有很多比如巢狀的if和巢狀的for都沒有講,是因為這些和語言無關而和邏輯有關.好的邏輯自然知道怎麼去巢狀或者其他的.