Уведомления

Группа в Telegram: @pythonsu

#1 Июль 20, 2016 17:30:37

aleks14
Зарегистрирован: 2016-04-08
Сообщения: 42
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите разобраться с срезами

здравствуйте помогите разобраться
вот код

 word=int(100)
start=N[code python][/code]one
while start!="":
    start=(input("nachalo:"))
    if start:
        start=int(start)
        finish=int(input("конечная позиция"))
        print("срез word[",start,":",finish,"]выглядит как",end=" ")
        print(word[start:finish])
нужно чтобы срез выводил числовой промежуток от 0 до 99
получается вот что
 nachalo:2
конечная позиция6
срез word[ 2 : 6 ]выглядит как Traceback (most recent call last):
  File "C:\Users\1\Desktop\питон\1.py", line 53, in <module>
    print(word[start:finish])
TypeError: 'int' object is not subscriptable
помогите разобраться с кодом.Спасибо)

Отредактировано aleks14 (Июль 20, 2016 17:31:39)

Офлайн

#2 Июль 20, 2016 19:48:03

Stepan_M
Зарегистрирован: 2016-07-20
Сообщения: 31
Репутация: +  1  -
Профиль   Отправить e-mail  

помогите разобраться с срезами

aleks14
нужно чтобы срез выводил числовой промежуток от 0 до 99
А для чего тогда переменные start и finish? А word для чего?
Срезы относятся к спискам, которых в тексте программы не видно.
Если же нужно вывести числовой промежуток от start до finish, то проще, наверное, после их ввода воспользоваться генератором:
 print([i for i in range(start, finish + 1)])

Офлайн

#3 Июль 20, 2016 23:34:20

aleks14
Зарегистрирован: 2016-04-08
Сообщения: 42
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите разобраться с срезами

Stepan_M
А не могли бы написать рабочий код, я всю голову сломал

Офлайн

#4 Июль 21, 2016 09:43:38

Stepan_M
Зарегистрирован: 2016-07-20
Сообщения: 31
Репутация: +  1  -
Профиль   Отправить e-mail  

помогите разобраться с срезами

aleks14
А не могли бы написать рабочий код, я всю голову сломал
Если вам нужен числовой отрезок:
 start = int(input("Input start: "))
finish = int(input("Input finish: "))
print([i for i in range(start, finish)])
Если нужно сделать именно срез из какого-то списка:
 work = [i for i in range(10000)] # какой-то список
start = int(input("Input start: "))
finish = int(input("Input finish: "))
print("work[", start, ", ", finish, "] = ", work[start:finish], sep="")

Офлайн

#5 Июль 21, 2016 16:39:00

aleks14
Зарегистрирован: 2016-04-08
Сообщения: 42
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите разобраться с срезами

Stepan_M
Спасибо вам

Офлайн

#6 Июль 22, 2016 00:48:14

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9992
Репутация: +  857  -
Профиль   Отправить e-mail  

помогите разобраться с срезами

Stepan_M
 [i for i in range(start, finish)]
 list(range(start, finish + 1))

  
>>> start = 1
>>> finish = 10
>>> 
>>> list(range(start, finish + 1))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> 



Отредактировано py.user.next (Июль 22, 2016 00:49:59)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version