在python中打印字符串的特定部分

时间:2014-04-29 01:47:22

标签: python string

def PrintThree(s):

    x = len(s)

    return s[0:3] + x[3:]

我现在非常关注如何只打印字符串的某些部分。我正在尝试创建一个代码,其中python将一次打印3个字符,我正在尝试使代码打印出整个字符串,但一次只显示三个字符。

这应该适用于任何长度的字符串。

2 个答案:

答案 0 :(得分:4)

我会尝试猜测预期的结果:

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

输出

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

答案 1 :(得分:0)

使用slicing

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]相同,因为它获取任何字符串的前三个字符。因为这是一个单行,我会避免为它调用一个函数,很多cuntions在一段时间后变得混乱:

>>> 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
>>> 

这使用list comprehension为每3个字符拆分字符串。然后,它使用for语句打印列表中的每个项目。