天天看點

python學習中的點點滴滴

python 是最近一直比較流行的語言,主要以資料為中心的解釋性語言,有很強的靈活性,比較符合英語習慣。。。。

1- 加載一些庫檔案,數值計算、科學計算等等

import numpy as np
from data import load_data
           

2--資料類型, 有一些是不可以改變的資料類型,比如 tuple, 字元串, 數值類型,一旦發生改變就是建立資料。還有一些可以改變的,比如說,list清單[  ], 可以進行copy \append 等操作,字典dict{’   ‘},集合set 等

還有生成器函數, 可以使用range(),還有其他。。。

3---常用 的print,2.7以上的版本需要加(),否則直接print

還有判斷字典或者清單中是否具有某個鍵值,可以直接使用“in”

d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
print d['Michael']
print 'Thomas' in d
           

最後列印出來 false

還有常用的循環,和matlab 中的差不多,更簡潔

names = ['Michael', 'Bob', 'Tracy']
for name in names:
    print name
    
           

依次列印相應的名字出來

‘4--- 函數的應用,python 有很多Built-in Functions點選打開連結

正确的使用函數,根據函數的說明恰當使用參數

python 中使用def 來定義函數

def my_fun(x):
    if x>0 :
        return x
    else:
        return -x
                
print my_fun(3)
print my_fun(-4)
           

依次輸出 3,4.。另外,函數的參數個數設定,參數類型及傳回值的類型都需要考慮。有一類函數中調用自身函數的特殊函數類型--遞歸函數,例如,我們常見的計算n的階乘

# 遞歸函數
def fact(n):
    if n==1:
        return 1
    return n * fact(n - 1)
print fact(3)
print fact(4)
           

通過一些基礎的函數,我們可以實作一些簡單功能,比如建立一個1\3\5\7.。。。的清單

#建構清單
L=[]
n=1
while n<=30:
    L.append(n)
    n=n+2
print L
           

函數能夠依次列印出相應的結果: [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29]

另外,還有一些使用的小技巧,比如使用切片(slice)而不是連續使用循環的形式

# 清單的切片使用
L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
r = []
n = 3
for i in range(n):
    r.append(L[i])
print r
# 包括前面【0,1,2】不包括後面
print L[0:3]
           

對于一些可以疊代對象(dict、list\tuple 元組)等,可以使用疊代方式完成周遊,類似C++中的vector

# 測試疊代使用方法
d={'a':1,'b':2,'c':3,'d':4}
for key in d:
    print key
    #print key
# dict不是按照順序存儲的,是以可能結果是不一樣的
for ch in 'ABSD':
    print ch 
    #print ch
# 可以使用collections 子產品的iterable類型來判斷是否是一個可以疊代的對象
from collections import Iterable
print isinstance('ABDN',Iterable) #str 是否可以疊代
print isinstance(1234,Iterable) #整數是否可以疊代
           

後面的輸出為: 

True

False

# 可以使用enumerate函數将list變成索引-元素對的形式
for i,value in enumerate(['A','D','M','H']):
    print i,value
           

輸出為:

0 A

1 D

2 M

3 H