Python3程序設計指南:01 過程型程序設計快速入門
- 2019 年 10 月 16 日
- 筆記
大家好,從本文開始將逐漸更新Python教程指南系列,為什麼叫指南呢?因為本系列是參考《Python3程序設計指南》,也是作者的學習筆記,希望與讀者共同學習。
.py文件中的每個估計都是順序執行的,從第一行開始,逐行執行的。
Python的8個關鍵要素
1、數據類型
- int整數(正整數或負整數)
- Python所能表示的整數大小隻受限於機器內存
- 使用int()可以將字符串轉換為整數,允許字符串頭尾帶有空格,例如:int("68")
- str字符串(Unicode字符序列)
- 使用方括號([])來存取字符串序列中的某一項
- 使用str()幾乎可以將任何數據項轉換為字符串
2、對象引用
- 定義:存儲某種數據類型的變量
- 語法:objectReference=value
-
不需要預先的聲明語句,也不需要指定數據類型
- 在Python中,"="的作用是將對象引用與內存中的某對象進行綁定,如果對象引用已經存在,就簡單的進行綁定,以便引用」=「操作符右面的對象;如果對象引用尚未存在,就由」=「操作符創建對象引用。
- 限制:不能與任何Python關鍵字相同
-
Python使用 「動態類型」 機制,也就是說,在任何時刻,只要需要,某個對象引用都可以重新引用一個不同的對象(可以是不同的數據類型)。
temp = 123 print(temp, type(temp)) temp = 'hello' print(temp, type(temp)) output: 123 <class 'int'> hello <class 'str'>
3、組合數據類型
- 元組和列表可以用於存儲任意數量、任意類型的數據項。元組是固定的,創建之後就不能改變;列表是可變的,在需要的時候,可以插入或者移除數據項。
- 實質上,列表與元組並不真正存儲數據項,而是存放對象引用,創建列表與元組時(以及在列表中插入數據項時),實際上是使用其給定的對象引用的副本,在字面意義項(比如整數或字符串)的情況下,會在內存中創建適當數據類型的對象,而存放在列表或元組中的才是對象引用。
- 點(存取屬性)操作符用於存取某對象的屬性
4、邏輯操作符
4.1 身份操作符:is。
- 並不必須對進行比較的對象本身進行檢查,is操作符只需要對對象所在的內存地址進行比較——同樣的地址存儲的是同樣的對象。
a = [1, 'abc'] b = [1, 'abc'] print(a is b) a = (1, 'abc') b = (1, 'abc') print(a is b) a = b print(a is b) output: False False True
4.2 比較操作符:==、!=、>、>=、<、<=
- 與身份運算符不同,比較運算符進行的是值比較,即比較兩個引用對象所指向的值。
a = [1, 'abc'] b = [1, 'abc'] print(a is b) a = (1, 'abc') b = (1, 'abc') print(a is b) a = b print(a is b) output: True True True
- 結鏈比較
a = 9 print(0 <= a <= 10) output: True
4.3 成員操作符:in。
in來測試成員關係,用not in來測試非成員關係。
# in運算符 a = (3, 45, 'hello', {'name': 'lisi'}) print(45 in a) string = 'zhangsan|wanger' print('|' in string) output: True True
4.4 邏輯運算符:and、or與not。
- and與or都使用short-circuit邏輯,並返回決定結果的操作數——而不是返回布爾值(除非實際上就是布爾操作數)。
- not返回布爾型結果
5、控制流語句
在Python中,一塊代碼,也就是說一條或者多條語句組成的序列,稱為suit。
5.1 if語句(if…elif…else…)
語法:
if boolean_expression1: suite1 elif boolean_expression2: suite2 else: suite3
5.2 while語句
while語句用於0次或多次執行某個suite,循環執行的次數取決於while循環中布爾表達式的狀態,其語法為:
while boolean_expression: suite
5.3 for…in語句
for循環語句重用了關鍵字in,其語法為:
for variable in iterable: suite
5.4 基本的異常處理
Python的很多函數與方法都會產生異常,並將其作為發生錯誤或重要事件的標誌。其語法為:
try: try_suite except exception1 as variable1: exception_suite1 ... except exceptionN as variableN: excetpion_suiteN
其中as variable部分是可選的。
6、算術操作符
-
int數據類型是固定的,一旦賦值就不能改變
- 除法操作符(/)產生一個浮點值
- 剝離操作符(//)產生一個整數值
- 增強賦值操作符
- 不可變數據類型:a+=8:a+8之後產生新的int對象,並與a重新綁定
- 可變數據類型:使用+=後,原始值改變,不會重新綁定
- a+=b與a=a+b區別:前者只查詢一次a的值,有更快的可能性
- 字符串列表+=和append的區別
- li = [‘aaa’,’bbb’] li += ‘ccc’ => li = [‘aaa’,’bbb’,’c’,’c’,’c’]
- li = [‘aaa’,’bbb’] li.append( ‘ccc’) => li = [‘aaa’,’bbb’,’ccc’]
7、輸入/輸出
- 內置input()函數,用來接收用戶的輸入,輸入之後按Enter鍵結束輸入
- 內置print()函數可以輸出所有python數據類型
8、函數的創建與調用
創建函數語法:
def functionName(arguments): suite
- arguments可選,如果為多個參數,用逗號隔開
- 每個函數有一個返回值,默認為None,可以使用return value來制定返回值,可以是一個值,也可以是一組值
- 執行def時會創建一個函數對象,同時創建一個帶有指定名的對象引用
實例
為了熟悉以上關鍵要素,我們用一個實例來練習一下:
創建一個生成隨機整數組成的網格程序,用戶可以規定需要多少行、多少列,以及整數所在的區域。
- 首先引入random模塊,該模塊用於生成隨機數:
import random
-
構建獲取用戶輸入函數
該函數需要3個參數:msg為提示信息,minimum為最小值,default為默認值。該函數的返回值有兩種情況:default(用戶沒有輸入直接按Enter鍵),或者一個有效的整數。
def get_int(msg, minimum, default): while True: try: line = input(msg) # 如果輸入值為空並且default不為None if not line and default is not None: return defalut # 將輸入轉為整形 i = int(line) # 如果輸入值小於最小值,提示用戶 if i < minimum: print("must be >=", minimum) else: return i # 異常處理 except ValueError as e: print(e)
- 讓用戶輸入相關的值
# 用戶輸入行數 rows = get_int('rows:', 1, None) # 用戶輸入列數 columns = get_int('columns', 1, None) # 用戶輸入最小值 minimum = get_int('minimum(or Enter for 0):', -10000, 0) default = 1000 # 如果最小值大於default,default設置為最小值的2倍 if default < minimum: default = 2 * minimum # 用戶輸入最大值 maximum = get_int('maximum (or Enter for' + str(default) + ')', minimum, default)
- 根據用戶輸入輸出隨機值:
row = 0 while row < rows: line = '' column = 0 while column < columns: # 生成一個大於minimum,小於maximum的隨機整數 i = random.randint(minimum, maximum) s = str(i) # 讓每個數佔10個字符,為了輸出整齊 while len(s) < 10: s = ' ' + s line += s column += 1 print(line) row += 1
以下為輸出信息:
rows:5 columns7 minimum(or Enter for 0):-1000 maximum (or Enter for1000)1000 -871 -205 426 820 986 369 238 -389 485 388 -907 243 346 -912 -885 528 50 -572 744 519 -128 785 -747 -565 -390 522 -357 933 -144 947 -949 -409 105 954 708
註:本文知識介紹Python的8個關鍵要素,但是並沒有完全介紹,比如數據類型不只包括整形和字符串,後面的文章中還會詳細介紹。
本文由博客一文多發平台 OpenWrite 發佈!