Форум сайта python.su
#!/usr/bin/env python3 def func(string, eslice, replace): print(f"STRING: '{string}' SLICE: '{string[eslice[0]:eslice[1]]}'") # debug encoding = 'utf-8' b = bytearray(string, encoding) b[eslice[0]:eslice[1]] = replace.encode(encoding) return b.decode(encoding) assert func('a test', (2,6), 'abcd') == 'a abcd' assert func('b тест', (2,6), 'абвгде') == 'b абвгде' assert func('a qwer a', (2,6), 'abcdef') == 'a abcdef a' assert func('c qwer абвг c', (2,6), 'фываолдж') == 'c фываолдж абвг c' assert func('⣿ abcd тест ⣿', (2,6), 'олдж') == '⣿ олдж тест ⣿'
Офлайн
snakeous
Как изменить функцию так, чтобы проходились все ассерты?
def func(string, eslice, replace): return string[:eslice[0]] + replace + string[eslice[1]:] assert func('a test', (2,6), 'abcd') == 'a abcd' assert func('b тест', (2,6), 'абвгде') == 'b абвгде' assert func('a qwer a', (2,6), 'abcdef') == 'a abcdef a' assert func('c qwer абвг c', (2,6), 'фываолдж') == 'c фываолдж абвг c' assert func('⣿ abcd тест ⣿', (2,6), 'олдж') == '⣿ олдж тест ⣿'
Отредактировано xam1816 (Апрель 15, 2022 22:46:35)
Офлайн