Помогите разобрать код на python
вот код
my_string="python"
x=0
for i in my_string:
x += 1
print(my_string[0:x])
не могу понять что делает строка print где написано print(my_string[0:x])
что делает[0:x] как он достает элемент просто я такое видел когда к списку применяют
а не к строке
Ответы (4 шт):
Это работает также как в списке. Так как строка это по сути почти тот же самый список из символов, и вы также можете обращаться к каждому символу по индексу.
my_string[0:x]
Значит берет строку с нулевого индекса до индекса с номером 'x'. Например:
my_string = 'Hello'
my_string[0:2]
Получаем:
He
print(my_string[0:x])
так делаются срезы строки
text[pos_start:pos_end:step]
т.е. срез от начальной позиции до конечной с заданным шагом
в вашем случае сделается срез от начала строки (позиция 0) до x-ого символа строки (позиция x)
срезы можно делать как спискам, кортежам, так и строкам, на выходе будет или список (в случае для списка) или строка (в случае для строк)
вообще приведённый код несколько избыточен и можно было бы обойтись таким:
my_string="python"
for i in range(len(my_string)):
print(my_string[0:i+1])
кроме того при срезах можно не указывать значения вообще, тогда они выбираются по умолчанию: 1 параметр считается равным 0, второй параметр считается равным длине списка/строки, 3 параметр считается равным 1
поэтому вместо my_string[0:x] можно было бы писать my_string[:x]
таким образом упрощенный код был бы таким:
my_string = "python"
for i in range(len(my_string)):
print(my_string[:i+1])
my_string = "python" # разберём данный алгоритм без цикла
x = 0 # первый символ имеет индекс 0
x += 1 # x = 1
print( my_string[0:1] ) # выводим на экран букву p
x += 1 # x = 2
print( my_string[0:2] ) # выводим на экран две буквы py
x += 1 # x = 3
print( my_string[0:3] ) # pyt
x += 1 # x = 4
print( my_string[0:4] ) # pyth
x += 1 # x = 5
print( my_string[0:5] ) # pytho
x += 1 # x = 6
print( my_string[0:6] ) # python
это обычный срез, вот его синтаксис [начало:конец:шаг]
допустим вот такая переменная со строкой есть string = 'Hello World' нам нужно только слово World и при помощи среза выполняем несложное действие print(string[5:10]) и выведет только World