淺談Python基礎

鶉首發表於2018-04-22

本人是剛剛學完Python基礎課程的小白之一。對Python這門語言有了一定的了結。所以,我想把這些天我學到的東西分享給大家。也算是自己對這大約一個月的時間學習到的知識做一個總結吧。

我們為什麼要學習Python這門語言呢?近些年來,人工智慧產業得到了飛速的發展,同時也使Python這一門程式語言火了起來。Python在人工智慧這一方面具有重要的作用,Python中具有的numpy,pandas庫在人工智慧中的資料分析方面起到了重大作用。所以Python是人工智慧方面必備的程式語言之一。

Python是什麼?官方宣傳說:Python是一種物件導向的解釋性高階程式語言,具有動態語義。那麼,就讓我們開始Python的學習之旅吧。

(一)程式的輸入輸出

程式輸入:程式輸入由input函式來執行

其中input可以在後面新增(‘要輸出的字串’)

最後輸出為:要輸出的字串+要輸出的內容

程式輸出:程式輸出由print函式來執行

如果要輸出一個整數

就是input(x)  x為需要輸出的整數

如果要輸出多個資料,具體操作如下:

x=input('x=')
y=input('y=')
print(x,y)

(二)列表和元祖

列表和元祖是Python中最重要的兩種序列。列表和元祖的區別在於:列表是可以修改,元祖不可修改。

列表與字典中有許多方法,由於篇幅有限,後面有·多種方法的只用一種方法進行演示。

列表:列表用[]表示

下面以append方法進行演示列表基本方法的使用:

ab=[1,2,3]
ab.append(4)#將一個物件附加到列表末尾
print(ab)

部分常用方法:

clear:清空列表內容

copy:複製列表

count:計算指定元素出現次數

index:查詢指定值第一次出現的索引

insert:將物件插入列表

 reverse:反序排列列表中元素

sort:對列表就地排序

pop:從列表中刪除一個元素

extend:將多個物件新增到列表末尾

remove:刪除第一個為指定值的元素

元祖:元祖用()表示

建立一個元祖:

tu=(1,2,3,)#建立一個名為tu的元祖

 列表與元祖的通用操作:切片

切片是從一串資料中讀取需要的資料,下面就以列表為例介紹切片的基本操作。

xm=[1,2,3,4,5,6,7,8,9,10]#建立一個列表
print(xm[1:9:2])#預設第一個索引為0,第一個數為起始索引,第二個數表示結束索引的後一位,第三個數表示步長

(三)使用字串

字串的格式設定通常用%s表示

字串的基本方法:

以find方法為例

a='hello,Hello'
b=a.find('hello')#find方法是在字串中查詢子串,若找到,返回子串的第一個字串的索引,若沒找到,返回-1
print(b)

其他常用方法:

center:在兩邊新增填充字元使字串居中。(預設為空格)

join:合併序列中的元素

lower:返回字串的小寫版本

replace:將指定子串替換為另一個字串並返回替換後的結果

split:將字串拆分為序列

strip:將字串開頭和末尾的空白刪除,並返回刪除後的結果

(四)字典

字典的特點:其中的值不按順序排列,而是儲存在鍵下

建立和使用字典:

animals={'Jack':'cat','Tom':'dog','Jerry':'fish'}#建立字典
print(len(animals))#len(d)返回字典d包含的項數

其他基本操作:

d[k]返回與鍵k相關聯的值

d[k]=v 將值v關聯到鍵k

del d[k]刪除鍵為k的項

k in d檢查字典d是否包含鍵為k的項

字典方法:

以pop方法為例

d={'x':1,'y':2}
d.pop('x')#用於獲取與指定鍵相關聯的值,並將該鍵-值對從字典中刪除

其他常用方法:

clear 刪除所有的字典項

copy 返回一個新字典,裡面的資料與原字典相同(淺複製)

deepcopy 同時複製值及其包含的所有值(深複製)

fromkeys 建立一個包含指定鍵的新字典,每個鍵對應值均為None

get 訪問字典項

items 返回一個包含所有字典項的列表

keys 返回一個包含指定字典中的鍵的字典檢視

update 使用一個字典中的項更新另一個字典

values返回一個由字典中的值組成的字典檢視

(五)流程控制

1.縮排

在迴圈中和if語句中均有縮排,需要注意

2.if語句

if用來判斷條件是否成立

(1)單個條件判斷使用if-else語句

a=0
if a>0:
    print(a)#條件成立執行的語句
else:
    print(a+1)#條件不成立執行的語句

(2)多個條件判斷使用elif子句

a=0
if a>0:
    print(a+1)#第一個條件成立執行的語句
elif a==0:
    print(a)#第二個條件成立執行的語句
else:
    print(a-1)#第一個條件和第二個條件均不成立執行的語句

3.迴圈

(1)while迴圈

條件成立,進入迴圈,執行迴圈裡面的內容,直到條件不成立,退出迴圈

x=1
while x<=100:#迴圈條件
    print(x)#迴圈中的內容
    x+=1#迴圈中的內容

(2)for迴圈

for迴圈通常用來遍歷我們所需要遍歷的元素

a=[1,2,3,4,5,6,7,8,9,10]
for a in a:
    print(a)

執行結果:

1
2
3
4
5
6
7
8
9

10

4.簡單的列表推導式

[(x,y)for x in range(3) for y in range(3)]#遍歷一個x從0到2,y從0到2的平面座標

4.其他

break 跳出迴圈

continue 結束當前迭代,進入下一次迭代

pass 什麼都不做

del 刪除不再使用的物件

(六)函式

函式,就是一個可被呼叫的程式碼塊。

函式的定義和呼叫

def ifelse(a):#定義一個名為ifelse的函式
    if a>0:
        print(a+1)
    else:
        print(a-1)#程式碼塊
a=input('a=')
ifelse(int(a))#呼叫函式

函式遞迴

函式遞迴指的是函式自己呼叫自己的情況

下面給出示例

def power(x,n):
    if n==0:
        return 1
    else:
        return x*power(x,n-1)#重複呼叫自身
print(power(2,3))

(七)類與物件

類:型別

物件:屬於特定的類,並且被稱為該類的例項

方法:與函式類似

類的繼承:

python中可以進行多繼承,一個基類可以有多個子類,一個子類可以有多個基類。Python中應當儘量避免多繼承。


class fruit1():#定義一個基類
    def __init__(self,person,fruit):#基類的方法
        self.person =person
        self.fruit=fruit

    def eat(self):
        print('%s愛吃%s'%(self.person,self.fruit))
class apple(fruit1):#建立基類下的子類
    def __init__(self,person,fruit,health):
        super(apple, self).__init__(person,fruit)#子類應該具有基類的屬性
        self.health=health
    def good(self):#子類的方法
        print('%s%s'%(self.fruit,self.health))

a=apple('孩子','apple','vc')
a.good()

靜態方法和類方法

靜態方法:靜態方法的定義中沒有引數self,可直接通過類來呼叫

類方法:定義中包含類似於self的引數,通常被命名為cls。它可以通過物件直接呼叫,但引數cls將自動關聯到類

class Myclass:
    def smeth():#靜態方法
        print('This is aatatic method')
    smeth=staticmethod(smeth)
    def cmeth(cls):#類方法
        print('This is class method of',cls)
    cmeth=classmethod(cmeth)
        

(八)檔案操作

檔案操作是Python中的一個重要的部分,檔案有以下幾種常用操作

r 讀取模式

w 寫入模式

x 獨佔寫入模式

a 附加模式

b 二進位制模式(與其他模式結合使用)

t 文字模式(預設值,與其他模式結合使用)

+ 讀寫模式(與其他模式結合使用)

下面以寫入模式為例

f=open('somefile.txt','w')#以寫入模式開啟檔案
f.write('Hello,')
f.write('World!')#寫入內容
f.close()#關閉檔案

(九)常用模組 time模組

我們可以匯入time模組進行關於時間的操作

import time as t#將time模組匯入,並使其別名為t
t.sleep(5)使用time模組中的sleep函式,使程式休眠5秒

time模組中的常用方法:

asctime([tuple]) 將時間元祖轉換為字串

localtime([secs])將秒數轉換為表示當地日期的時間元祖

mktime(tuple)將時間元祖轉換為當地時間

sleep [secs] 休眠sec秒

strtime(string[,format])將字串轉換為時間元祖

time()當前時間(從新紀元開始後的秒數,以UTC為準)

(十)異常

異常是什麼?

異常是程式中出現的相關錯誤,我們可以通過有關操作來捕獲它

try:
    x=int(input('Enter the first number:'))
    y=int(input('Enter the next number:'))
    print(x/y)#要執行的程式碼塊
except (ZeroDivisionError,TypeError)as e:#檢查是否有此異常
    print(e)#有異常的操作
else:print('No error')#無異常的操作
finally:print('Solve it')#有無異常都要進行的操作
    

如果程式碼塊中的異常與檢查的異常不符,程式仍會報錯

IDE:Anaconda3(64-bit)

參考文獻《Python基礎教程》(第3版)

[挪]Magnus Lie Hetland 著

袁國忠 譯






相關文章