Python 中的字符串迭代

String Iteration in Python

所以我要解决的问题是

"Print the first 4 letters of name on new line [name = 'Hiroto']"

我找到了解决方案,但我想知道是否有办法使用索引值来解决同样的问题,使其适用于我使用的任何名称。

name = "Hiroto"

new_name = " "

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

您可以使用切片运算符。 string[i:j] 将 return 一个新字符串,其中包含从索引 i 到索引 i 的字符,但不包括索引 j.

处的字符

示例:

>>> name = "Hiroto"

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

将打印:

Hiro

你正在做的是将字符连接成一个变量,你的条件是直到你点击 't',在你的例子中是第 5 个字母,所以这只适用于那个名字。

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

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

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

print(first_4_letters('Hiroto'))

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

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

当您的字符串到达​​索引 (i==4) 时,它会中断循环并退出...