1. 程式人生 > >python 基礎學習(一)

python 基礎學習(一)

一. is 與 == 的區別

Python中物件包含的三個基本要素,分別是:id(身份標識)、type(資料型別)和value(值)
is 比較id
== 比較值
注意:
假設 a 與 b 值相等
若資料為  數值型或字串型時,a is b 是 true
若資料為  tuple,list,dict或set型時,a is b 是 false

二. for迴圈

Python for迴圈可以遍歷任何序列的專案,如一個列表或者一個字串
方式1:

for letter in 'Python':  
   print '當前字母 :', letter

方式2: 通過序列索引迭代

fruits = ['banana', 'apple',  'mango']
for index in range(len(fruits)):
   print '當前水果 :', fruits[index]

注意:
1. range()返回一個序列, 如上例子表示 range(len(fruits)) == [0, 1, 2]

2. 在 python 中,for … else 表示這樣的意思,for 中的語句和普通的沒有區別,else 中的語句會在迴圈全部正常執行完(即 for 沒有通過 break 跳出而中斷的)的情況下執行,while … else 也是一樣。

三. pass語句

Python pass是空語句,是為了保持程式結構的完整性。pass 不做任何事情,一般用做佔位語句。
比如:

def sample(n_samples):
    pass

該處的 pass 是佔據一個位置,因為如果定義一個空函式程式會報錯,當你沒有想好函式的內容時,用pass 填充,使程式可以正常執行。

四. 字典

值可以取任何資料型別,但鍵必須是不可變的,如字串,數字或元組。

五. python型別與函式傳遞

1. 在 python 中,物件有型別,變數是沒有型別的:
a=[1,2,3]
a="Runoob"
以上程式碼中,[1,2,3] 是 List 型別,"Runoob" 是 String 型別
而變數 a 是沒有型別,她僅僅是一個物件的引用(一個指標)

2.可更改(mutable)與不可更改(immutable)物件:
strings, tuples, 和 numbers 是不可更改的物件,而 list,dict 等則是可以修改的物件。

3. python 函式的引數傳遞:
不可變型別:類似 c++ 的值傳遞
如 fun(a),傳遞的只是a的值,沒有影響a物件本身。比如在 fun(a)內部修改 a 的值,只是修改另一個複製的物件,不會影響 a 本身。

可變型別:類似 c++ 的引用傳遞,
如 fun(la),則是將 la 真正的傳過去,修改後fun外部的la也會受影響

六. 函式引數

必備引數 關鍵字引數 預設引數 不定長引數
不定長引數的例子:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 可寫函式說明
def printinfo( arg1, *vartuple ):
   "列印任何傳入的引數"
   print "輸出: "
   print arg1
   for var in vartuple:
      print var
   return;
 
# 呼叫printinfo 函式
printinfo( 10 );
printinfo( 70, 60, 50 );

七. 模組

import math
from math import sin
from math import *
第三種儘量少用

八. 包

包就是資料夾,但該資料夾下必須存在 __init__.py 檔案, 該檔案的內容可以為空。
package_runoob
|-- __init__.py
|-- runoob1.py
|-- runoob2.py

九. 異常處理

1. try
try:
<語句>        #執行別的程式碼
except <名字>:
<語句>        #如果在try部份引發了'name'異常
except <名字>,<資料>:
<語句>        #如果引發了'name'異常,獲得附加的資料
else:
<語句>        #如果沒有異常發生
2. try-finally 語句無論是否發生異常都將執行最後的程式碼。
try:
<語句>
finally:
<語句>    #退出try時總會執行
raise