Python中的字符串迭代

2024-09-30 03:23:36 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我想解决的问题是

“在新行[name='Hiroto']上打印姓名的前4个字母”

我得到了一个解决方案,但我想知道是否有一种方法可以使用索引值来解决同样的问题,以使它与我使用的任何名称一起工作

name = "Hiroto"

new_name = " "

for letter in name:
    if letter != "t":
        new_name = new_name + letter
    if letter == "t":
        print(new_name)

Tags: 方法namein名称newforif字母
3条回答

您也可以使用这种替代方式

name = "Hiroto"
i=0
while i < len(name):
     print(name[i])##Hiro
     i=i+1
     if i==4:
         break

当字符串到达索引(i==4)时,它将中断循环并退出

可以使用切片操作符string[i:j]将返回一个新字符串,该字符串包含从索引{}到的字符,但不包括索引{}处的字符

例如:

>>> name = "Hiroto"

>>> print(name[0:4])

将打印:

Hiro

你要做的是将字符连接到一个变量中,你的条件是直到你碰到一个“t”,在你的例子中是第五个字母,所以这只适用于这个名称

正如其他人指出的那样,您可以使用name[0:4](从索引0到4),甚至可以忽略0并使用name[:4]。此操作称为切片

但是如果您想保持与解决方案相同的逻辑,您可以使用一个计数器变量。我创建了一个函数,它接收名称并返回前4个字母:

def first_4_letters(name):
    new_name = ""
    count = 0
    while count < 4:
        new_name = new_name + name[count]

print(first_4_letters('Hiroto'))

相关问题 更多 >

    热门问题