1. 程式人生 > >Python資料型別判斷及列表指令碼操作

Python資料型別判斷及列表指令碼操作

資料型別判斷

在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])

這裡寫圖片描述