Итерация строк в 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'))