2017-07-29 38 views
0

我想在我的數組元素中使用int。 現在我的代碼是我想在我的數組元素中使用int

def hanoi_pos(discs, index): 
    power = 2**discs 
    stacks = ['', '', ''] 
    for disc in range(discs): 
     stack = (index+power//2)//power % 3 

     if disc % 2 == 0: stack = (3 - stack) % 3 
     power = power // 2 
     stacks[stack] += chr(64 + discs - disc) 

    return stacks 

def get_game_state(stacks): 
    return '\n'.join([' '.join(st) if st else '-' for st in stacks]) 


x = hanoi_pos(4, 6) 
y = get_game_state(x) 
print(y) 

在我的代碼,我用CHR方法的chr(64 + discs - disc)的地方。 但是這一次,我想使用int,如1,2,3 ......。 「A」對應於1,「B」對應於2,「C」對應於3···。 我寫了這個地方像int(64 + discs - disc),但錯誤發生。我認爲可以使用聲明,但它是多餘的。那麼,我該怎麼做? 如何將str轉換爲int?

+0

首先,如果您有錯誤,您還應該發佈回溯。其次,Python是一種強類型語言。你正試圖將一個int附加到一個字符串,並給你(我認爲)'TypeError'異常。 – nutmeg64

回答

0

你好mikimiki,

試試這個下面的代碼,

def hanoi_pos(discs, index): 
    power = 2**discs 

    stacks = ['', '', ''] 
    for disc in range(discs): 
     stack = (index+power//2)//power % 3 

     if disc % 2 == 0: stack = (3 - stack) % 3 
     power = power // 2 
     print "--",discs, disc,"--" 
     stacks[stack] += chr(48 + discs - disc) 

    return stacks 

def get_game_state(stacks): 
    return '\n'.join([' '.join(st) if st else '-' for st in stacks]) 


x = hanoi_pos(4, 6) 
y = get_game_state(x) 
print(y) 

我希望我的回答是很有幫助的。
如果有任何查詢請這麼評論。

+0

你好mikimiki試試我的答案.... –

相關問題