2017-07-29 1 views
0

Ich möchte int in meinem Array-Element verwenden. Jetzt ist mein CodeIch möchte int in meinem Array-Element verwenden

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) 

In meinem Code, ich chr Methode an die Stelle der chr(64 + discs - disc) verwenden. Aber diesmal möchte ich int wie 1,2,3 · · · · verwenden. "A" entspricht 1, "B" entspricht 2, "C" entspricht 3 · · ·. Ich schrieb diesen Ort wie int(64 + discs - disc), aber Fehler passieren. Ich dachte für die Aussage kann verwendet werden, aber es ist überflüssig. Also, wie kann ich das tun? Wie kann ich str in int umwandeln?

+0

Zuerst, wenn Sie einen Fehler haben, sollten Sie auch das Traceback buchen. Zweitens ist Python eine stark typisierte Sprache. Sie versuchen, ein int an eine Zeichenfolge anzufügen, und das gibt Ihnen (ich nehme an) 'TypeError' Ausnahme. – nutmeg64

Antwort

0

Hallo mikimiki,

diesen Code unten versuchen,

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) 

Ich hoffe, meine Antwort hilfreich ist.
Wenn irgendeine Frage so kommentiert bitte.

+0

Hallo mikimiki versuche meine Antwort .... –

Verwandte Themen