Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Очень странная ошибка в питоне

Константин 123 Ученик (42), на голосовании 1 год назад
вот мой код (ошибку напишу снизу):
 import math 
screen = [[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0]]
chars = " █"
def update():
a = 0
print(chars[screen[a][0]] + chars[screen[a][0]] + chars[screen[a][1]] + chars[screen[a][1]] + chars[screen[a][2]] + chars[screen[a][2]] + chars[screen[a][3]] + chars[screen[a][3]] + chars[screen[a][4]] + chars[screen[a][4]] + chars[screen[a][5]] + chars[screen[a][5]] + chars[screen[a][6]] + chars[screen[a][6]] + chars[screen[a][7]] + chars[screen[a][7]])
a += 1
я тут сократил потому что не вмещается в вопрос тут просто выводит все символы screen
schet = int(7*3.142/2)+1
angle = 360/schet
x = 0
y = 0
r = 7
baseangle = 0
f = baseangle-angle
while schet > 0:
schet -= 1
f += angle
x = round(r*math.cos(f))
y = round(r*math.sin(f))
if x < 0 or x > 7 or y < 0 or y > 7:
print("Неправильный угол")
quit()
screen.pop([y][x])
screen.insert([y][x],1)
update()
пишет ошибку
Traceback (most recent call last):
File "c:\Users\USER\files\circle-printer.py", line 36, in <module>
screen.pop([y][x])
~~~^^^
IndexError: list index out of range
это очень странно,я писал print х и у и показывало что х=7 у=0. в функции update
функция обращалась к 0,7 и проблем, есть if которое если х или у выходит за диапазон то прогрмма выключается, но этот if не сработал значит х и у не могут выходить за пределы диапазона откуда эта ошибка?!?!??
Голосование за лучший ответ
- Гуру (2956) 1 год назад
я хз в кодах но у тебя x и y равны нулю и он чето на это ругается
Константин 123Ученик (42) 1 год назад
ты прочитал в самом низу?
- Гуру (2956) Константин 123, я говорю я хз, для меня коды это набор букв, но я шпрехаю на английском и немного че то понимаю
Константин 123Ученик (42) 1 год назад
я написал print(x,y) и мне написало что х=7 а у=0
Константин 123Ученик (42) 1 год назад
а зачем ты мне ответил если даже не знаешь программирование?
- Гуру (2956) Константин 123, потому что мне скучно
Сергей Сергеев Мудрец (17522) 1 год назад
Есть вариант, что ошибка возникает из-за того, что в метод pop() передается неверный индекс. Вместо того, чтобы передавать индекс в виде списка [y][x], нужно передавать индекс в виде кортежа (y, x). Нужно изменить строку screen.pop([y][x]) на screen.pop((y, x)), и строку screen.insert([y][x],1) на screen.insert((y, x),1).
Похожие вопросы