2013-11-19 4 views
0
def shift_string(text, shift): 
    intab='abcdefghijklmnopqrstuvwxyz' 
    outab=intab[shift:]+intab[:shift] 
    return str.maketrans(intab, outab) 


shift_string("hello",5) 

Когда я запускаю это, пробел возникает в оболочке, а затем ничего не происходит, что происходит, что я не понимаю прямо сейчас?У вас возникли проблемы с пониманием кода о maketrans

+1

попробуйте распечатать результат shift_string – jfs

ответ

1

maketrans Используется для создания сопоставления, которое передается методу строки .translate(). Прямо сейчас вы просто возвращаете отображение, а не переведенную строку.

def shift_string(text, shift): 
    intab='abcdefghijklmnopqrstuvwxyz' 
    outab=intab[shift:]+intab[:shift] 
    mapping = str.maketrans(intab, outab) 
    return text.translate(mapping) 
+0

Вы бог! Спасибо! – user3007632

+1

'string.ascii_lowercase' может использоваться. – jfs

Смежные вопросы