01 python初體驗


print() 函數(shù)由兩部分組成,分別是?指令?和?內容。指令可以理解為要 Python 做什么事情,上圖中的指令是 print,就是要 Python 去打印,但是要打印什么內容呢,如果你不告訴 Python,它會一頭霧水的。所以括號內的內容就是要打印的東西。
引號的作用就是告訴 Python:我引號里面的東西你不用管了,你不需要搞清楚它是什么意思。所以 Python 執(zhí)行打印指令時,它會原封不動地把引號內的內容搬到屏幕上顯示出來。你也可以把引號簡單理解為通行令。
此時,計算機會乖乖地執(zhí)行你的命令,直接把引號內的內容打印出來。
注意:包裹字符串的引號一定要用英文的引號。如果你用了中文的引號,Python 就不認識這個引號,運行失敗。
我們在不需要被 Python 解析(理解)的引號前加上反斜杠(?\),這樣一來,Python 在讀到?\'?時,就會恍然大悟:嗯,這個單引號我不要處理,把它當做要打印的內容就行了!

轉義字符是一種特殊的字符,在 Python 中,我們使用轉義字符還可以表示換行等特殊字符。被用來?換行?的轉義字符是?\n。我們可以在需要換行的地方加上?\n。

02 數(shù)據(jù)類型


變量?就像一個盒子,我們把東西收納進去并貼上標簽(name)便于以后使用。把東西放進盒子里的這個過程被稱為?賦值,盒子上的標簽便是?變量名。和通過標簽名能知道盒子里的東西是什么一樣,我們通過變量名便能得到變量存儲的內容。
既然叫?變量,顧名思義盒子里的東西是可以改變的。變量這個盒子的容量有限,每次只能存放一個東西。我們再往同一個盒子里放入別的東西,之前放入的東西便被擠出來,只留下最后一次放入的東西。
Python 中?=?表示賦值(把右邊的內容放到左邊的盒子里),而不是判斷相等。Python 中判斷左右兩邊是否相等的是比較運算符(==)

對于變量的命名,我們需要遵守以下規(guī)范:

下面是幾個壞名字的示例:
a='孔明'
b='188'
c='男'
當你的代碼中出現(xiàn)大量的諸如 a、b、c 這種隨意的變量名時,代碼可讀性將會非常差!
比如你在第 1 行定義了變量,在第 100 行將變量打印了出來。當你看到?print(a)?你根本不知道 a 是什么,而?print(name)?則能一眼看出打印的是姓名。
當變量名起得隨意,就和給盒子上隨意亂貼標簽一樣,我們無法通過標簽名判斷盒子里的東西,標簽名就變得毫無意義。
因此我們一定要認真、慎重地給變量起名字。

計算機的本質其實就是一臺計算的機器,它的主要任務是處理數(shù)據(jù)。數(shù)據(jù)是構成編程世界的重要元素,不同的數(shù)據(jù)屬于不同的類型。
Python 有很多數(shù)據(jù)類型。字符串是我們要學到的第一種數(shù)據(jù)類型,它是編程語言中表示文本的數(shù)據(jù)類型。
在字符串類型里,包括文本的引號不僅能使用單引號('),還能使用雙引號("),兩者效果沒有區(qū)別,但一定要前后保持統(tǒng)一。
注意:對初學者來說,很多人經(jīng)常不小心使用了中文的單引號(‘ 或 ’)和雙引號(“ 或 ”)導致報錯,找了半天發(fā)現(xiàn)是引號打錯了。其實,仔細看看還是很容易辨別出中文引號的英文引號的。要記住,Python 代碼中的所有符號、標點都是英文的。
字符串的加法運算
在 Python 中字符串拼接的方法很簡單,只要使用?+?將需要拼接的內容連在一起就可以了。我們來看看代碼怎么寫:
name='周瑜'
wife='小喬'
print(name+'的夫人是'+wife)
# 輸出:周瑜的夫人是小喬
整數(shù)?和我們數(shù)學課本中定義的一樣:是正整數(shù)、負整數(shù)和零的統(tǒng)稱,它是沒有小數(shù)點的數(shù)字。整數(shù),英文為 integer,簡寫做 int。能用數(shù)字代表的值我們一般都用整數(shù)類型(簡稱整型)的變量來存儲,比如年齡、人數(shù)、出生年等等。
因為 Python 是能理解所有的整數(shù),所以整數(shù)是不需要加引號的,如果你給整數(shù)加了引號,那它就會變成字符串。
整數(shù)是沒有小數(shù)點的數(shù)字,與此相對,浮點數(shù)則是帶小數(shù)點的數(shù)字,比如溫度、里程、體重等使用浮點數(shù)類型。下面打印的三個值都是浮點數(shù):
print(36.5)
print(-5.3)
print(1.0)
浮點數(shù)的英文名是 float。浮點數(shù)和整數(shù)相比只是多了個小數(shù)部分,因為都是數(shù)字,所以運算規(guī)則大部分一樣。你可以對浮點數(shù)進行前面學過的四則運算。

很多時候你可能搞不清楚某個變量是存放的是什么類型的數(shù)據(jù),這時可以使用 Python 內置的 type() 函數(shù)來查看數(shù)據(jù)的類型。
print(type('hi'))
# 輸出:<class 'str'>
print(type(666))
# 輸出:<class 'int'>
type()?函數(shù)返回的內容是?<class 'xxx'>?這樣的格式,分別對應著不同的格式。str?表示字符串類型,int?表示整數(shù)類型,float?表示浮點數(shù)類型。


03 條件分支


if...else… 語句由條件和兩個代碼塊組成,可以抽象為如下結構:
if判斷條件:
????代碼塊1
else:
????代碼塊2
這里的判斷條件一般使用比較運算符進行比較,常見的比較運算符有?==(等于)、!=(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)。
代碼行首的留白在編程里有個專業(yè)的叫法——縮進。Python 的代碼塊是通過縮進來定義代碼塊范圍的。代碼行的縮進決定了代碼的縮進層級,相同縮進層級的代碼具有相同的縮進??s進一般使用兩個空格或者四個空格,但是一定要記住要保持一致,不能一會用兩個空格,一會用四個空格。
speed=100
ifspeed>60:
????print('超速了')
else:
????print('車速正常')
第 3 行和第 5 行都縮進了,因此它們分別從屬于?if speed > 60:?和?else:,相當于跟在大哥后面的小弟。當條件成立時,if speed > 60:?后面的小弟便出來干活了。當條件不成立時,則?else:?后面的小弟出來干活。
else?和?if?都是大哥,屬于同級。雖然?else?在?if?語句后面,但?else?是不用縮進的。
04 input函數(shù)

有了?輸入?魔法,程序就好像有了對話的功能,計算機根據(jù)你的回答進行對應的處理,計算機能聽懂你說的話。

執(zhí)行輸入指令(input)和之前學過的打印指令(print)的方法類似。上圖 input() 函數(shù)的內容就是顯示在屏幕上的問題。
現(xiàn)在我們已經(jīng)可以通過 input() 函數(shù)在屏幕上顯示問題,下一步就是怎么拿到用戶回答問題的答案。

為了看到 answer 里面存放的是什么內容,可以通過 print() 函數(shù),打印 answer 變量。
通過 input() 函數(shù)拿到的結果(answer)是什么類型的數(shù)據(jù)呢?
答案是:字符串!
對于 input() 函數(shù)來說,不管用戶輸入的回答是什么,比如整數(shù) 33、小數(shù) 3.14 或者火星文,Python 都會統(tǒng)一把它轉換為字符串類型。
由于我們使用賦值運算符?=?把 input() 函數(shù)的字符串結果,賦給了變量 answer,所以這個變量也一定是字符串類型。
