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

Printing specific parts of a string in python

本问题已经有最佳答案,请猛点这里访问。
1
2
3
4
5
def PrintThree(s):

    x = len(s)

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

我现在很难理解如何只打印字符串的某些部分。我正在尝试编写一个代码,在这个代码中,Python一次打印3个字符,我正在尝试编写代码,这样代码就可以打印出整个字符串,但一次只显示3个字符。

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


我试着猜测预期结果:

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

产量

1
2
3
4
5
>>> printThree("somestring")
som
est
rin
g

使用切片:

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

运行如下:

1
2
3
4
5
6
7
8
9
>>> PrintThree('abcde')
'abc'
>>> PrintThree('hello there')
'hel'
>>> PrintThree('this works!')
'thi'
>>> PrintThree('hi')
'hi'
>>>

在上一个示例中,如果长度小于3,它将打印整个字符串。

string[:3]string[0:3]相同,因为它得到任何字符串的前三个字符。由于这是一行程序,我将避免为它调用函数,在一段时间后,许多狡猾的人会感到困惑:

1
2
3
4
5
6
7
8
9
10
11
12
>>> 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'
>>>

或者,如果要每三个字符打印一次字符串,请使用以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
>>> 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语句打印列表中的每个项目。