2015-06-14 30 views
0

由於某種原因int(str)導致錯誤。我無法弄清楚爲什麼。我想知道是否有人能告訴我爲什麼。解析我的字符串爲int導致python中的ValueError

cx4_list_reduce = ['[#1]',(1,3,5),(7,6,9)] 
list2= ['[#2]',(2,5,4), (1,3,5), (5,8,1), (7,2,6)] 
n2 =3 
for process_tuple in cx4_list_reduce: 
     d_num = "" 
     if process_tuple == list2[0]: 
      d_num = process_tuple[2:3] 
     n1 = int(d_num) 
     if n1 <= n2: 
      print('n1 =< n2') 
      continue 
     else: 
      print('n1 => n2') 

錯誤:在條件invalid literal for int() with base 10: ''

回答

3

仔細查看:

d_num = "" 
if process_tuple == list2[0]: 
    d_num = process_tuple[2:3] 

所以當if測試False應該發生什麼(當值不等於list2[0]d_num仍然是一個空字符串,你不能將其轉換爲整數。

e恐怖消息告訴你, invalid literal for int() with base 10: ''告訴你一個空字符串不能被轉換。

你在cx4_list_reduce列表第一個值是'[#1]',並且該字符串不等於list2[0]'[#1]不等於'[#2]'),因此,上述等式測試失敗。

+0

哇,我印象深刻。我花了一整小時。 – matt2605