0 / 0 / 0
Регистрация: 25.08.2015
Сообщений: 14

Ошибка string index out of range

01.02.2016, 10:42. Показов 37406. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Требуется вывести на экран вложенный список, но выдаёт ошибку. Почему?

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/env python3
 
zero = ['***','* *','* *','***']
one = [' *','**',' *',' *']
two = ['***','  *',' *','***']
 
digits = [zero, one, two]
 
while True:
    bigdigits = input('Введите число: ')
 
    if bigdigits.isdigit():
        print('Правильно')
        break
    else:
        print('Это не число!')
        
list = 0
 
while list < 2:
    prisv = bigdigits[list]
    list1 = 0
    while list1 < 3:
        print(prisv[list1])
        list1 += 1
    list +=1
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.02.2016, 10:42
Ответы с готовыми решениями:

Ошибка string index out of range
file_path = 'test.txt' file = open(file_path) strnew='' i=0 for line in file: for i in range(len(line)): ...

string index out of range
Подскажите как исправить, не сильна в пайтон . Ошибка при запуске string index out of range. Буду очень благодарна. import os ...

IndexError: string index out of range
кодируются символы из интервала 1F600—1F64F таблицы символов Юникода. Используется кодировка UTF-8. Формат ввода: На первой строке...

11
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
01.02.2016, 10:48
Python
1
2
3
4
list = 0
 
while list < 2:
    prisv = bigdigits[list]
Во-первых, не нужно называть переменную именем структуры данных (list).

Во-вторых, вот ввожу я 1, bigdigits[list] сработает, потому как символ с индексом 0 будет в bigdigits, а вот с индексом 1 или 2 уже не будет - вот и ругается.
0
0 / 0 / 0
Регистрация: 25.08.2015
Сообщений: 14
01.02.2016, 13:35  [ТС]
Цитата Сообщение от Jabbson Посмотреть сообщение
Во-первых, не нужно называть переменную именем структуры данных (list).
О, точно не заметил я этого. Благодарю. Но теперь другая проблема появилась:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/env python3
 
zero = ['***','* *','* *','***']
one = [' *','**',' *',' *']
two = ['***','  *',' *','***']
 
digits = [zero, one, two]
 
while True:
    bigdigits = input('Введите число: ')
 
    if bigdigits.isdigit():
        print('Правильно')
        break
    else:
        print('Это не число!')
        
list = 0
 
while list < 2:
    prisv = digits[bigdigits]
    list1 = 0
    while list1 < 3:
        print(prisv[list1])
        list1 += 1
    list +=1
Выдаёт ошибку: List indices must be integers, not str
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
01.02.2016, 13:39
и опять list = 0

проблема описана в тексте ошибки - индексы листа могут быть только целыми числами, не строками.

bigdigits = input('Введите число: ') <-- будет строка
prisv = digits[bigdigits] <-- нужно целое
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
01.02.2016, 13:45
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
zero = ['***','* *','* *','***']
one = [' *','**',' *',' *']
two = ['***','  *',' *','***']
 
digits = [zero, one, two]
 
while True:
    try:
        bigdigits = int(input('Введите число: '))
    except ValueError:
        print('Это не число')
    else:
        break
        
n = 0
 
while n < 2:
    prisv = digits[bigdigits]
    list1 = 0
    while list1 < 3:
        print(prisv[list1])
        list1 += 1
    n +=1
Ты вот английский понимаешь хоть на минимальном уровне (если нет, то учи или пользуйся переводчиком)? Интерпретатор тебе сам полностью рассказывает,что за ошибка, а ты на форуме вопросы задаешь.

Цитата Сообщение от Dronnn1349 Посмотреть сообщение
list = 0
Нельзя для переменой такое имя использовать. list это название стандартной функции, которые ты перекрываешь.
0
01.02.2016, 13:55

Не по теме:

Кто бы еще объяснил, что это за бред вообще? Использовать 2 списка + 3 цикла для вывода текста их 3 строк…

0
0 / 0 / 0
Регистрация: 25.08.2015
Сообщений: 14
01.02.2016, 13:56  [ТС]
Цитата Сообщение от Jabbson Посмотреть сообщение
индексы листа могут быть только целыми числами
Так я же ввожу число, питон его как строку считает? А как тогда сделать чтобы именно числа вбивались?

Цитата Сообщение от alex925 Посмотреть сообщение
Ты вот английский понимаешь хоть на минимальном уровне
Понимать-то я понимаю, только толку от этого мало, если непонятно откуда корни ошибки растут. Мне непонятно, я этот питон третий день только вижу.
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
01.02.2016, 14:00
Цитата Сообщение от Dronnn1349 Посмотреть сообщение
Так я же ввожу число, питон его как строку считает?
функция input всегда строку возвращает, если нужен другой тип данных, то надо самому конвертировать (смотри пример выше)
0
 Аватар для Vigi
641 / 481 / 179
Регистрация: 28.05.2012
Сообщений: 1,419
01.02.2016, 14:05
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
zero = ['***','* *','* *','***']
one = [' *','**',' *',' *']
two = ['***','  *',' *','***']
 
digits = [zero, one, two]
 
bigdigits = 0
while True:
    tmp = input('Введите число: ')
 
    if tmp.isdigit():
        print('Правильно')
        bigdigits = int(tmp)
        break
    else:
        print('Это не число!')
 
list = 0
 
while list < 2:
    prisv = digits[bigdigits]
    list1 = 0
    while list1 < 3:
        print(prisv[list1])
        list1 += 1
    list +=1
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
01.02.2016, 14:24
Цитата Сообщение от Vigi Посмотреть сообщение
bigdigits = 0
Это зачем? Имелось ввиду?
Python
7
8
9
10
11
12
13
bigdigits = ""
while not bigdigits.isdigit():
    if bigdigits:
        print('Is not a number')
    bigdigits = input('Enter a digit: ')
print('Right!')
bigdigits = int(bigdigits)
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
01.02.2016, 14:32
Marinero, Да там не только это непонятно. Там ещё непонятно зачем вообще tmp нужно
0
 Аватар для Vigi
641 / 481 / 179
Регистрация: 28.05.2012
Сообщений: 1,419
01.02.2016, 14:35
Хз не нужно конечно...

Добавлено через 2 минуты
Цитата Сообщение от alex925 Посмотреть сообщение
Там ещё непонятно зачем вообще tmp нужно
Я понимаю, что код бредовый, лично я бы проверку через исключения делал как в вашем alex925 примере. Просто из нерабочего варианта автора сделал рабочий.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.02.2016, 14:35
Помогаю со студенческими работами здесь

IndexError: string index out of range
Требуется подсчитать количество замен в определенных индексах. программа работает для файла в котором 10 последовательностей, однако при...

Шифратор вертикальной перестановки - string index out of range
В общем, постала задача организовать шифратор+дешифратор. Но пока что я даже шифратор победить не могу. Нашёл на просторах интернета...

Ошибка IndexError: list index out of range
Traceback (most recent call last): File &quot;C:/Users/Андрей/Desktop/х02.py&quot;, line 116, in &lt;module&gt; step = AI() File...

Ошибка string index out of range
Выскакивает ошибка индекса, не могу понять, в чем проблема for i in range(len(docs)): for j in range(len(docs)): ...

Ошибка: String index out of range
Выходит ошибка string index out of range n=int(input()) k=0 q=0 l='' for i in range(1,n+1): k= if l&gt;l: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru