Python資料型別判斷及列表指令碼操作
阿新 • • 發佈:2019-02-18
資料型別判斷
在python(版本3.0以上)使用變數,並進行值比較時。有時候會出現以下錯誤:
TypeError: unorderable types: NoneType() < int()
或者類似的型別錯誤。
這是因為一方變數的資料型別不明(python無法判斷),所以出錯。
在一般情況下,可以提前對要使用的變數進行定義並賦值,例如:
var=' ' 或者 var=0
等等。
但是,若變數在比較前,是通過呼叫函式或者其他表示式賦值的,以上方法可能行不通,因為如果呼叫的函式如果存在錯誤或者沒有輸出或者輸出型別不對,都會出現型別錯誤。
所以可以在比較之前進行變數的型別判斷,格式:
import types
type(x) is types.IntType
或者
type(x) is types.StringType
以上是判斷變數的資料型別是整形還是字串型別。使用判斷語句,如果資料型別正確,則進行變數比較。
if type(x) is types.IntType:
var1<var2
建議出現此錯誤時,先檢視自己的程式的每一步是否出錯。
列表指令碼操作
列表對 + 和 * 的操作符與字串相似。+ 號用於組合列表,* 號用於重複列表。
對於組合操作,還可以進行以下操作得到:
a=[]
b=[1,2,3,4,5,6,7,8,9,0]
a.append(b[i:j]+b[j+1:k]+[b[k+1]-m])
如下例項
在這個程式中加號+兩邊任然是列表型別資料,所以是組合操作。
而以下操作中,加號+前一個是列表,後一個是單一的數,型別不一致,所以出錯。
對於單一的數值,可以通過新增 [ ] 使其變為列表型別,即 [a[2]]。
對於字串的操作與以上是一樣的。
這種操作可以用在迴圈中,作為動態數儲存於讀取使用。
注意
以下的操作以以上的操作不一樣,以下操作是對數的加法運算。
a.append(b[i]+b[j])