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