在Python中打印字符串的特定部分
def PrintThree(s):
x = len(s)
return s[0:3] + x[3:]
我现在遇到了一些困难,想要只打印字符串的某些部分。我正在尝试写一段代码,让Python每次打印3个字符。我希望代码能打印出整个字符串,但每次只显示三个字符。
这个方法应该适用于任何长度的字符串。
2 个回答
4
使用 切片:
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
>>>
这段代码使用 列表推导式 来每三个字符分割字符串。然后它使用 for
语句来打印列表中的每一项。
7
我来猜一下预期的结果:
def printThree(str):
for i in range(0, len(str), 3):
print str[i:i+3]
输出
>>> printThree("somestring")
som
est
rin
g