1. 程式人生 > >Python從入門到放棄(三):基本語句和語法

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都沒有講,是因為這些和語言無關而和邏輯有關.好的邏輯自然知道怎麼去巢狀或者其他的.