Python3程序設計指南:01 過程型程序設計快速入門

你們好,從本文開始將逐漸更新Python教程指南系列,爲何叫指南呢?由於本系列是參考《Python3程序設計指南》,也是做者的學習筆記,但願與讀者共同窗習。python

.py文件中的每一個估計都是順序執行的,從第一行開始,逐行執行的。

Python的8個關鍵要素

Python的8要素

一、數據類型

  • int整數(正整數或負整數)express

    • Python所能表示的整數大小隻受限於機器內存
    • 使用int()能夠將字符串轉換爲整數,容許字符串頭尾帶有空格,例如:int("68")
  • str字符串(Unicode字符序列)數組

    • 使用方括號([])來存取字符串序列中的某一項
    • 使用str()幾乎能夠將任何數據項轉換爲字符串

二、對象引用

  • 定義:存儲某種數據類型的變量
  • 語法:objectReference=value
  • 不須要預先的聲明語句,也不須要指定數據類型
  • 在Python中,"="的做用是將對象引用與內存中的某對象進行綁定,若是對象引用已經存在,就簡單的進行綁定,以便引用」=「操做符右面的對象;若是對象引用還沒有存在,就由」=「操做符建立對象引用。
  • 限制:不能與任何Python關鍵字相同
  • Python使用 「動態類型」 機制,也就是說,在任什麼時候刻,只要須要,某個對象引用均可以從新引用一個不一樣的對象(能夠是不一樣的數據類型)。
temp = 123
print(temp, type(temp))
temp = 'hello'
print(temp, type(temp))

output:
123 <class 'int'>
hello <class 'str'>

三、組合數據類型

  • 元組列表能夠用於存儲任意數量、任意類型的數據項。元組是固定的,建立以後就不能改變;列表是可變的,在須要的時候,能夠插入或者移除數據項。
  • 實質上,列表與元組並不真正存儲數據項,而是存放對象引用,建立列表與元組時(以及在列表中插入數據項時),其實是使用其給定的對象引用的副本,在字面意義項(好比整數或字符串)的狀況下,會在內存中建立適當數據類型的對象,而存放在列表或元組中的纔是對象引用。
  • 點(存取屬性)操做符用於存取某對象的屬性

四、邏輯操做符

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來測試非成員關係。app

# 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返回布爾型結果

五、控制流語句

在Python中,一塊代碼,也就是說一條或者多條語句組成的序列,稱爲suit。dom

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的不少函數與方法都會產生異常,並將其做爲發生錯誤或重要事件的標誌。其語法爲:ui

try:
    try_suite
except exception1 as variable1:
    exception_suite1
...
except exceptionN as variableN:
    excetpion_suiteN

其中as variable部分是可選的。spa

六、算術操做符

  • 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']

七、輸入/輸出

  • 內置input()函數,用來接收用戶的輸入,輸入以後按Enter鍵結束輸入
  • 內置print()函數能夠輸出全部python數據類型

八、函數的建立與調用

建立函數語法:

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個關鍵要素,可是並無徹底介紹,好比數據類型不僅包括整形和字符串,後面的文章中還會詳細介紹。

歡迎關注(C與Python實戰)[ https://pythoncpp-1254282033....]
相關文章
相關標籤/搜索