1

所以我试图解决的问题是

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

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

name = "Hiroto"

new_name = " "

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

3 回答 3

2

您可以使用切片运算符。string[i:j]将返回一个新字符串,其中包括索引中的字符(包括索引i),但不包括索引处的字符j

例子:

>>> name = "Hiroto"

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

将打印:

Hiro
于 2020-04-10T18:11:20.870 回答
0

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

正如其他人指出的那样,您可以使用 name[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'))
于 2020-04-10T18:25:00.893 回答
0

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

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

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

于 2020-04-10T18:41:16.453 回答