2017-10-13 85 views
0

我想在python中製作一個程序來識別一個正方形是否是一個魔術方塊,並且我無法將用戶輸入列入列表。我明白我的代碼可能更高效,但我對python非常陌生。不能將字符串轉換爲整數列表

column_1 = (0,3) 
column_2 = (0,3) 
column_3 = (0,3) 
column_4 = (0,3) 

row_1 = [int(i) for i in input('input row 1 with spaces inbetween numbers: ').split(' ')] 
row_2 = [int(i) for i in input('input row 2 with spaces inbetween numbers: ').split(' ')] 
row_3 = [int(i) for i in input('input row 3 with spaces inbetween numbers: ').split(' ')] 
row_4 = [int(i) for i in input('input row 4 with spaces inbetween numbers: ').split(' ')] 

column_1[0].append(row_1[0]) 
column_1[1].append(row_2[0]) 
column_1[2].append(row_3[0]) 
column_1[3].append(row_4[0]) 

column_2[0] = row_1[1] 
column_2[1] = row_2[1] 
column_2[2] = row_3[1] 
column_2[3] = row_4[1] 

column_3[0] = row_1[2] 
column_3[1] = row_2[2] 
column_3[2] = row_3[2] 
column_3[3] = row_4[2] 

column_4[0] = row_1[3] 
column_4[1] = row_2[3] 
column_4[2] = row_3[3] 
column_4[3] = row_4[3] 

diagonal_left_to_right[0] = column_1[0] 
diagonal_left_to_right[1] = column_2[1] 
diagonal_left_to_right[2] = column_3[2] 
diagonal_left_to_right[3] = column_4[3] 

diagonal_right_to_left[0] = column_4[0] 
diagonal_right_to_left[1] = column_3[1] 
diagonal_right_to_left[2] = column_2[2] 
diagonal_right_to_left[3] = column_1[3] 

sum_row_1 = sum(row_1) 
sum_row_2 = sum(row_2) 
sum_row_3 = sum(row_3) 
sum_row_4 = sum(row_4) 

sum_col_1 = sum(column_1) 
sum_col_2 = sum(column_2) 
sum_col_3 = sum(column_3) 
sum_col_4 = sum(column_4) 

sum_dag_l2r = sum(diagonal_left_to_right) 
sum_dag_r2l = sum(diagonal_right_to_left) 

if sum_row_1 == sum_row_2 == sum_row_3 == sum_row_4 == sum_col_1 == sum_col_2 == sum_col_3 == sum_col_4 == sum_dag_r2l == sum_dag_l2r: 
    print('magic') 

else: 
    print('not magic') 

我不斷收到該「詮釋」對象有沒有屬性「追加」 我已經嘗試了很多,我這個網站上找到不同的方法和他們都沒有因爲各種原因工作的錯誤消息。 我接受所有建議,任何事情都會幫助我。 謝謝

+0

COLUMN_1是一個元組,你的努力將一些東西附加到它 –

回答

0

您首先定義column_1作爲元組(具有2個整數值,一個在索引0和一個在索引1)。 append方法不能在column_1[0]上工作,這就像0.append()。你可能不打算創建一個元組,而是一個具有特定維度的列表。

你可以用這個列表表示將值賦給列和對角線:

column_1 = [row_1[0], row_2[0], row_3[0], row_4[0]] 
column_2 = [row_1[1], row_2[1], row_3[1], row_4[1]] 
column_3 = [row_1[2], row_2[2], row_3[2], row_4[2]] 
column_4 = [row_1[3], row_2[3], row_3[3], row_4[3]] 
diagonal_left_to_right = [column_1[0],column_2[1],column_3[2],column_4[3]] 
diagonal_right_to_left = [column_4[0],column_3[1],column_2[2], column_1[3]] 
+0

這個完美工作的幫助表示感謝 –

+0

不要忘了[將答案標記爲已接受](http://stackoverflow.com/help/someone-answers)。 – trincot