自學Python筆記(二)

作為最最基礎的初學者,尤其是面對中小學生學習Python我想大概了解一下Python,能編個小程序,能看懂一般的程序就可以,如果想深一步的學習還是需要靜下心來好好研究一番,興趣是第一位的,雖然需要緊跟時代需要,但未必讓所有人成為編程大師。

昨天有朋友問我「你是不是想學人工智慧?」說實話我感覺Python真的和人工智慧沒半毛錢關係,就好比鐵匠打了把好刀,鎚子說是我打的一樣。我的同行好多連編程是什麼都搞不明白(不服來辯),學新東西更是沒有動力,所以我還是希望以完全初學者的角度入手來認識Python這個語言。

Python之所以能進入中小學教材,作為動態語言它非常適合初學編程者,它可以讓初學者把精力集中在編程對象和思維方法上,而不用去擔心語法、類型等等外在因素,但這並不代表你可以天馬行空的去寫,有一些基礎的東西還是需要注意的,不然可能會走彎路。

Advertisements

基本知識

1、Python 標識符

標識符用於識別變數、函數、類、模塊以及其他對象的名字,在 Python 里,標識符由字母、數字、下劃線組成,但不能以數字開頭,而起是區分大小寫的。假如以下劃線開頭的標識符是有特殊含義的,後面根據需要(類和面向對象)再特別解釋強調。

在Python 中可以同一行顯示多條語句,方法是用分號 ; 分開,如下:

print ('hello');print ('world');

2.Python 保留字元

下面的列出了Python中的保留字,這些保留字不能用作常數或變數,或任何其他標識符名稱。這些保留字希望初學者都要清楚它們的含義和用法,不明白的地方可以嘗試寫段代碼看看效果。

Python3中的保留字

Advertisements

Python中的保留字的意義:

and 用於表達式運算,邏輯與操作

as 用於類型轉換

assert 斷言,用於判斷變數或條件表達式的值是否為真

break中斷循環語句的執行

class用於定義類

continue繼續執行下一次循環

def用於定義函數或方法

del刪除變數或者序列的值

elif條件語句 與if else 結合使用

else條件語句 條件語句,與if,elif結合使用。也可以用於異常和循環使用

exceptexcept 包括捕獲異常后的操作代碼,與try,finally結合使用

exec用於執行python語句

for循環語句

finally用於異常語句,出現異常后,始終要執行finally包含的代碼塊。與try,except結合使用

from用於導入模塊,與import結合使用

global定義全局變數

if條件語句,與else,elif結合使用

import用於導入模塊,與from 結合使用

in判斷變數是否存在序列中

is判斷變數是否為某個類的實例

lambda定義匿名函數

not用於表達式運算,邏輯非操作

or用於表達式運算,邏輯或操作

pass空的類,函數,方法的佔位符

print列印語句

raise異常拋出操作

return用於從函數返回計算結果

try包含可能會出現異常的語句,與except,finally結合使用

while循環語句

with簡化Python的語句

yield用於從函數依次返回值

3.行和縮進

在Python用縮進來控制類,函數以及其他邏輯判斷。所有代碼塊語句必須包含相同的縮進空白數量,這個必須嚴格執行

如下運行是正確的(吐槽一下頭條的引用,保存后自動對齊了):

心塞~

if True:

print ('Answer')

print ('True')

else:

print ('Answer')

print ('False')

如果如下就會出現「IndentationError: unindent does not match any outer indentation level」錯誤提示。

if True:

print ('Answer')

print ('True')

else:

print ('Answer')

print ('False') #注意這行代碼縮進

4.Python 引號和註釋

Python 可以使用引號( ' )、雙引號( " )表示字元串,引號的開始與結束必須的相同類型的。

python中單行註釋採用 # 開頭,多行註釋使用三個單引號(''')或三個雙引號("""),如下:

# 文件名:helloworld.py

name = "Wuge" # 這是一個註釋

'''

這是多行註釋,使用單引號。

這是多行註釋,使用單引號。

這是多行註釋,使用單引號。

'''

5.Python 的基本運算

本來這部分不打算寫,考慮到給和我一樣的初學者交流用的,最最基礎的東西還是要打的~

Python語言有算術、比較(關係)、賦值、邏輯、位、成員、身份等幾類運算符。

(1)算術運算符:包含+、-、*、/、%、**、//等7個。其中前面4個是我們從小就知道的,後面三個做簡單解釋:

「%」 取模,它的結果是返回除法的餘數,如 9%4,返回的結果是1。

「**」 冪,返回x的y次冪,如2**4 為2的4次方,返回的結果是16。

「//」 取整除,返回商的整數部分,如9//2 返回結果是 4 , 9.0//2返回結果是4.0(提醒一下:如果其中有浮點數結果就是浮點數

(2)比較運算符:其中>、<、>=、<=很容易理解,後面兩個簡單解釋一下:

「==」 等於,比較對象是否相等。

「!=」 「<>」不等於, 比較兩個對象是否不相等。

(3)賦值運算符:說到賦值可不僅僅是「=」這麼簡單,掌握一些技巧可以加快開發速度,除去基本的「=」外還可以與算術運算符結合使用,如「+=」為 加法賦值運算符,如a += b 等效於 a = a + b,其他類推。

(4)邏輯運算符:這個在編程中也是經常用到的。

「and」 "與"運算,如果兩個操作數都為真,則條件成立。

or "或"運算 ,如果兩個操作數中的任何一個成立,則條件成為真。

not "非"運算,用於反轉操作數的邏輯狀態。

(5)位運算符:位運算符是把數字看作二進位來進行計算的,在Python中可以用bin()函數獲得整數的二進位數,位運算對於生活在十進位的世界里的人來說比較抽象,建議好好研究一下。

「&」 按位與運算符:參與運算的兩個值,如果兩個相應位都為1,則該位的結果為1,否則為0;

「|」按位或運算符:只要對應的二個二進位有一個為1時,結果位就為1。

「^」按位異或運算符:當兩對應的二進位相異時,結果為1。

「~」按位取反運算符:對數據的每個二進位位取反,即把1變為0,把0變為1 。

「<<」左移動運算符:運算數的各二進位全部左移若干位,由 << 右邊的數字指定移動的位數,高位丟棄,低位補0。

「>>」右移動運算符:把">>"左邊的運算數的各二進位全部右移若干位,>> 右邊的數字指定了移動的位數。

(6)成員運算符:有兩個「in」和「not in」,字面理解也簡單,就是在指定的序列中能不能找到值。

(7)身份運算符用於比較兩個對象的存儲單元,有兩個「is」和「not is」,在使用中往往與「==」混淆,「is」 用於判斷兩個變數引用對象是否為同一個, == 用於判斷引用變數的值是否相等,這個在後期用到時再慢慢解釋,今天是先了解。

如四則運算一樣上面幾類運算符也是有優先順序別的,如果弄錯了會得到不同的結果,這裡也務必注意。

各類運算符的優先順序別

Python的條件與循環

這一部分我也歸到基本知識裡面了,感覺中小學編程中學到這基本可以寫簡單的小程序了。

(1)條件也就是決策,根據各種條件推斷往哪個方向走然後進行哪些具體的操作,在程序語言中這些條件可以理解為多個求值表達式,這些表達式會產生TRUEFALSE結果,根據結果為TRUE或為FALSE確定要執行的操作和要執行的語句。

if流程

實際應用中條件判斷可以直接用 if語句、或 if…else語句或者多個if語句嵌套使用,分別舉例說明(再次吐槽頭條的引用對齊,理解就好)

if語句單獨使用(如果你需要做漢字輸出需要py文件格式編碼為UTF-8,否則會出現錯誤):

var = 5

if ( var ==5 ) : print ("結果是5")

print ("謝謝使用")

運行結果

if…else語句或elif組合使用

第一種情況是if語句中的條件表達式求值為0或FALSE值時,則執行else語句中的代碼塊。

比如下面例子,輸入採購數量,如果小於10,折扣為9折,如果不小於10,折扣為8折。

amount = int(input("請輸入數量: "))

if amount<10:

discount = amount*0.1

print ("折扣:",discount)

else:

discount = amount*0.2

print ("折扣:",discount)

print ("應付款:",amount-discount)

運行結果

再就是嵌套使用了,在一個嵌套的if構造中,可以有一個if...elif...else構造在另一個if...elif...else結構中。

amount = int(input("請輸入數量: "))

if amount<10:

discount = amount*0.1

print ("折扣:",discount)

else:

if amount>=1000:

discount = amount*0

print ("找我們經理面談吧")

else:

discount = amount*0.2

print ("折扣:",discount)

print ("應付款:",amount-discount)

運行結果

(2)Python循環。程序在一般情況下是按順序執行的,循環語句允許根據設定的條件執行一個語句或語句組多次。常用的有「while 循環」和「for 循環」兩種,和if條件語句一樣也存在「嵌套循環」模式。

while 循環:在給定的判斷條件為 true 時執行循環體,否則退出循環體。

count = 0

while (count < 9):

print ('The count is:', count)

count = count + 1

print ("Good bye!")

運行結果

for 循環:重複執行語句

在C中類似「for (int i = 0; i < 100; i++)」的語句在Python需要利用內置的range()函數,range()是對一系列數字進行迭代的函數,它生成一個算術進化的迭代器,以處理0到n-1的整數,要獲取序列的列表對象,可將其列為list()。

range

舉例如下:

for var in list(range(5)): # 第一個實例

print (var)

for letter in 'Python': # 第二個實例

print ('當前字母 :', letter)

fruits = ['banana', 'apple', 'mango']

for fruit in fruits: # 第三個實例

print ('當前水果 :', fruit)

print ("Good bye!")

運行結果

在循環語句中還需要用到循環控制語句來控制循環。

break語句:終止循環語句並將執行轉移到循環之後的語句。

continue語句:使循環跳過其主體的剩餘部分,並立即重新測試其狀態以進入下一次迭代。

pass語句:當語法需要但不需要執行任何命令或代碼時,Python中就可以使用pass語句,此語句什麼也不做,用於表示「佔位」的代碼。

舉個例子:

print ('break Example:')

for letter in 'Python': # break Example

if letter == 'h':

break

print ('Current Letter :', letter)

print ('continue Example:')

for letter in 'Python': # continue Example

if letter == 'h':

continue

print ('After continue statment.')

print ('Current Letter :', letter)

print (' pass Example:')

for letter in 'Python': # pass Example

if letter == 'h':

pass

print ('This is pass block')

print ('Current Letter :', letter)

print ("Good bye!")

運行結果

今天暫且到這裡,上面的基本知識掌握了,可以嘗試把你的想法用Python基本語言表達一下,說太多也白搭,實踐最重要,趕緊試試吧。

Advertisements

你可能會喜歡