Итерация строк в Python

Итак, вопрос, который я пытался решить, это

"Выведите первые 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)

3 ответа

Решение

Вы можете использовать оператор среза. string[i:j] вернет новую строку, которая включает символы из индекса, включая индекс i до, но не включая символ в индексе j.

Пример:

>>> name = "Hiroto"

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

Напечатаем:

Hiro

Вы также можете использовать этот альтернативный способ...

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

когда ваша строка достигает индекса (i==4), она прерывает цикл и выходит...

То, что вы делаете, объединяет символы в одну переменную, вы выполняете условие, пока не нажмете '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'))
Другие вопросы по тегам