在python中打印字符串的特定部分[重复]
Posted
技术标签:
【中文标题】在python中打印字符串的特定部分[重复]【英文标题】:Printing specific parts of a string in python [duplicate] 【发布时间】:2014-06-14 18:26:34 【问题描述】:def PrintThree(s):
x = len(s)
return s[0:3] + x[3:]
我现在很困惑如何只打印字符串的某些部分。我正在尝试编写一个代码,python 一次将打印 3 个字符,我正在尝试使代码打印出整个字符串,但一次只显示三个字符。
这应该适用于任意长度的字符串。
【问题讨论】:
呃...print(s[:3])
?
@roippi 在 SO 上,cmets 部分不是为了回答,而是为了 cmets。
@SimonT:认真的吗?你在骂他简明准确的回答作为评论???
对不起,恐怕我的问题措辞有误
@SimonT 1) 我不想在我的回答历史中回答(非常)低质量的问题,并且 2) 如果这是他问题的答案,我会感到震惊,因为 s[0:3]
字面意思出现在他的示例代码中。因此,uh
。我不知道这里发生了什么。
【参考方案1】:
使用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]
相同,因为它获取任何字符串的前三个字符。由于这是一个单行,我会避免为它调用一个函数,一段时间后很多参数会变得混乱:
>>> 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
语句打印列表中的每个项目。
【讨论】:
投反对票的人,为什么投反对票?【参考方案2】:我会尝试猜测预期的结果:
def printThree(str):
for i in range(0, len(str), 3):
print str[i:i+3]
输出
>>> printThree("somestring")
som
est
rin
g
【讨论】:
以上是关于在python中打印字符串的特定部分[重复]的主要内容,如果未能解决你的问题,请参考以下文章