Печать определенных частей строки в python

def PrintThree(s): x = len(s) return s[0:3] + x[3:] 

Я просто застрял прямо сейчас, как печатать только определенные части строки. Я пытаюсь сделать код, в котором python будет печатать по 3 символа за раз, я пытаюсь сделать так, чтобы код печатал всю строку, но показывал только три символа за раз.

Это должно работать со строкой любой длины.

Я постараюсь угадать ожидаемый результат:

 def printThree(str): for i in range(0, len(str), 3): print str[i:i+3] 

Вывод

 >>> printThree("somestring") som est rin g 

Используйте нарезку :

 def PrintThree(string): return string[:3] 

Это работает как:

 >>> PrintThree('abcde') 'abc' >>> PrintThree('hello there') 'hel' >>> PrintThree('this works!') 'thi' >>> PrintThree('hi') 'hi' >>> 

В последнем примере, если длина меньше 3, она будет печатать всю строку.

string[:3] совпадает с string[0:3] , поскольку она получает первые три символа любой строки. Поскольку это один лайнер, я бы не стал вызывать функцию для него, через некоторое время становится много путаницы:

 >>> mystring = 'Hello World!' >>> mystring[:3] 'Hel' >>> mystring[0:3] 'Hel' >>> mystring[4:] 'o World!' >>> mystring[4:len(mystring)-1] 'o World' >>> mystring[4:7] 'o W' >>> 

Или, если вы хотите напечатать каждые три символа в строке, используйте следующий код:

 >>> def PrintThree(string): ... string = [string[i:i+3] for i in range(0, len(string), 3)] ... for k in string: ... print k ... >>> PrintThree('Thisprintseverythreecharacters') Thi spr int sev ery thr eec har act ers >>> 

Это использует понимание списка, чтобы разделить строку на каждые 3 символа. Затем он использует оператор for для печати каждого элемента в списке.