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

-1 投票
2 回答
71101 浏览
提问于 2025-04-18 04:41
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

撰写回答