while True: syntax error

при запуске программы выдает ошибку SyntaxError на цикле while True(самый первый):

#МАГАЗИН                      
def magaz():
    global My_Coins
    print("\n  Пройдя около часа вы натыкаетесь на торговца\n  Интересно что он продает...")
    for i in range(3):
        FULL_SELL_OR += SELL_OR[ran(0,len(SELL_OR)-1)]
    FULL_SELL_Z += SELL_Z[ran(0,len(SELL_Z)-1)
    while True:
        print("\n  В продаже:\n  ",*FULL_SELL_OR,"|",*FULL_SELL_Z,"\n  У вас:",My_Coins,"монет>")
        ask = input("\n  Выйти|Что хотите просмотреть: ")
        if ask in FULL_SELL_OR:
            index1 = OR.index(ask)
            index2 = SELL_OR.index(ask)
            print("\n    Оружие:",ask,"\n\n    Атака:",OR_ATK[index1],"\n    Цена:",SELL_OR_CEN[index2],"\n    У вас:",My_Coins,"монет")
            while True:
                ask = input("\n  <Купить|Выйти>")
                if ask.lower() == "выйти":
                    break
                elif ask.lower() == "купить" and My_Coins - SELL_OR_CEN[index2] >=0:
                    My_Coins -= SELL_OR_CEN[index2]
                    primt("\n    Спасибо за покупку)")
                    inv_o += OR[index1]
                if My_Coins - SELL_OR_CEN[index2< 0:
                    print("\n    Не хватает монет")
                    break
        if ask.lower() == "выйти":
            print("\n  Пока(")
            peren()

Основная программа

from time import sleep as sl
from random import randint as ran
from colorama import init, Fore, Back
import sys


print("Fall Hero\n")
while True:
    ask = input("Начать[1|0]: ")
    if ask == "1":
        print("\nНннннначинаем")
        break

inv_o = []  #инвентарь оружия
inv_z = []  #инвентарь зелий                

      
sl(1)
print("\n<>Вы проснулись в темнице, вокруг вас лежит огромное количество черепов.\n<>Вы умираете от голода, но рядом с вами лежит 'Бронзовый меч'\n<>И несколько зелий ХП\n<>Вы подбираете его и замечаете дверь...\n<>Похоже пора выбираться.")   
sl(2)
print("\n    Получен предмет 'Бронзовый меч'\n    посмотрите характеристики в инвентаре")
inv_o.append("Бронзовый меч")

sl(1)
print("\n    Получен предмет 'Зелье лечения'\n    посмотрите характеристики в инвентаре")
inv_z.append("Зелье лечения")



#переменные для тем
text = ""
text2 = ""
        
My_ATK = 0 #атака
My_HP = 100   #хх
My_MAXHP = 100#максимальное хп
My_Coins = 15  #деньги
   
Kill_Mon = 0 #монстров убито
Rm_go = 0 #Комнат пройдено

#список получаемых оружий
ch_o=[]
#список получаемых аксессуаров
ch_a=["Браслет жизни"]

#цвета для тем
COLORS = ["Зеленый","Белый","Черный","Синий","Красный"]
COLOR_F = [Back.GREEN,Back.WHITE,Back.BLACK,Back.BLUE,Back.RED]
COLOR_S = [Fore.GREEN,Fore.WHITE,Fore.BLACK,Fore.BLUE,Fore.RED]

#Моя любимка
ZL=["М. зелье лечения","Зелье лечения","Б. зелье лечения"]
ZL_Count=[0,ran(1,6),2]#кол-во
ZL_H=[15,20,30]#хил

#Оружие
OR = ["Бронзовый меч","Вилка","Титановый трезубец","Огненная коса","Катана","Двуручное копье","Динамит","Сюрикен"]
OR_ATK = [ran(7,15),ran(12,18),ran(20,25),ran(22,28),30,ran(19,27),ran(25,35),ran(15,30)]#Урон

#Акссесуары
AKS = ["Браслет жизни"]
AKS_G = [20]
AKS_SELL = [20]

#Продаваемое оружие
SELL_OR = ["Огненная коса","Катана","Двуручное копье","Динамит","Сюрикен"]
SELL_OR_CEN =[40,50,35,45,20]
#Продаваемые зелья
SELL_Z = ["М. зелье лечения","Зелье лечения","Б. зелье лечения"]
SELL_Z_CEN = [15,25,35]
SELL_Z_COUNT=[ran(20,30),ran(20,30),ran(10,30)]
#Продаваемое в данный момент
FULL_SELL_OR = []
FULL_SELL_Z = []

#События
sob = ["Битва","Магазин"]

#Монстры
MONSTERS = ["Гаргамель","Гнида","Слизень","Демон","Гоблин"]
def monster():
    global MONSTERS_ATK,MONSTERS_HP,MONSTERS_Coins
    MONSTERS_ATK = [ran(10,15),ran(7,13),ran(5,10),ran(15,20),10]
    MONSTERS_HP = [ran(30,45),ran(20,34),ran(15,25),ran(40,65),20]
    MONSTERS_Coins = [ran(10,15),ran(9,17),ran(6,9),ran(30,60),16]


#Инвентарь
def inve():
    global My_ATK, My_HP
    print("\n    ",*inv_z,"|",*inv_o)#вывод всего инвентаря
    while True:
        ask = input("\n<Выйти|Предмет>< ")
        if ask == "Выйти":#просто выход
            peren()
        if ask in inv_z: #зельки
            index2 = ZL.index(ask)
            print("\n    Зелье:",ask,"\n    Лечение:",ZL_H[index2],"\n    Кол-во:",ZL_Count[index2],"\n    Ваше хп:",My_HP)
            if ZL_Count[index2] != 0 and ZL_H[index2] + My_HP <= My_MAXHP:
                ask = input("\nПолечиться?:")
                if ask.lower() == "да":
                    My_HP += ZL_H[index2]
                    ZL_Count[index2] -= 1
                    print("\n    Крутяк\n    Ваше хп теперь:",My_HP,"\n    Вы исцелились на:",ZL_H[index2],"\n    Теперь у вас:",ZL_Count[index2],ZL[index2])            
        elif ask in inv_o:#для оружяя
            index2 = OR.index(ask)
            print("\n    Оружие:",ask,"\n    Урон:",OR_ATK[index2],"\n    Ваш урон:",My_ATK)
            ask = input("\n>Одеть?:")
            if ask.lower() == "да":                
                My_ATK = OR_ATK[index2]
                print("\nУспешно экипировано)")

#Темы                                
def tema():
    global text,text2
    print("\n    Сейчас задний фон:    \n    Цвет текста: АБВГД\n   ",*COLORS)
    print("\n    Вырвиглазно, не пользуйтесь этой функцией")
    ask = input("\nЦвет фона:")
    if ask in COLORS:
        index = COLORS.index(ask)
        text = COLOR_F[index]
        print("Успешно)")
    ask = input("\nЦвет текста:")
    if ask in COLORS:
        index = COLORS.index(ask)
        text2 = COLOR_S[index]
        print("Успешно")
        
#Информация  
def infor():
    print("\nУ вас:\n\nАтака:", My_ATK,"\nХП:",My_HP,"\nДеньги:",My_Coins,"\n\nКол-во маленьких зелий:",ZL_Count[0],"\nКол-во обычных зелий:",ZL_Count[1],"\nКол-во больших зелий:",ZL_Count[2],"\n\nМонстров убито:",Kill_Mon,"\nКомнат пройдено:",Rm_go) 
    
#получения предмета после битвы
def p_chance():
    pass
    
#БИТВА
def bitva():
    monster()
    global My_Coins,My_HP,Kill_Mon,Rm_go
    a = ran(0,4)
    print("\n\n  Вы идете в полной темноте и вдруг натыкаетесь на:",MONSTERS[a],"\n  Прийдется сражаться♤")    
    sl(2)
    while True:
        sl(1)
        b = ran(0,1)
        print("\n  ХП",MONSTERS[a],":",MONSTERS_HP[a],"\n  Ваше ХП:",My_HP)
        if MONSTERS_HP[a] <= 0:#победа
            sl(1)
            print("\n  Вы победили!!!\n  Вы получили:",MONSTERS_Coins[a],"монет.")
            a = ran(1,5)
            if a == 2:
                p_chance()
            My_Coins += MONSTERS_Coins[a]
            Kill_Mon += 1
            Rm_go += 1
            peren()            
        elif My_HP <=0:    #функция самохила и смерть
            n = -1
            for i in ZL_Count:
                n += 1
                if i > 0:
                    print("\n      На грани смерти вы используете ",ZL[n],"\n      Ваше ХП теперь:",My_HP + ZL_H[n],"\n      Осталось:",ZL_Count[n]-1)
                    My_HP += ZL_H[n]
                    ZL_Count[n] -= 1
                    break           
            if My_HP<=0 and ZL_Count[0] + ZL_Count[1] + ZL_Count[2] == 0:
                print("\n  Походу это конец...")
                sl(3)
                quit()
         #сама драка                  
        if b == 1:            
            sl(1)
            print("\n    Бьете вы\n    Поздравляю вы нанесли ",My_ATK,"урона")
            MONSTERS_HP[a] -= My_ATK
        elif b == 0:
            sl(1)
            print("\n    Бьет",MONSTERS[a],"\n    Вам нанесли ",MONSTERS_ATK[a],"урона(")
            My_HP -= MONSTERS_ATK[a]

  #МАГАЗИН                      
def magaz():
    global My_Coins
    print("\n  Пройдя около часа вы натыкаетесь на торговца\n  Интересно что он продает...")
    for i in range(3):
        FULL_SELL_OR += SELL_OR[ran(0,len(SELL_OR)-1)]
    FULL_SELL_Z += SELL_Z[ran(0,len(SELL_Z)-1)
    while True:
        print("\n  В продаже:\n  ",*FULL_SELL_OR,"|",*FULL_SELL_Z,"\n  У вас:",My_Coins,"монет>")
        ask = input("\n  Выйти|Что хотите просмотреть: ")
        if ask in FULL_SELL_OR:
            index1 = OR.index(ask)
            index2 = SELL_OR.index(ask)
            print("\n    Оружие:",ask,"\n\n    Атака:",OR_ATK[index1],"\n    Цена:",SELL_OR_CEN[index2],"\n    У вас:",My_Coins,"монет")
            while True:
                ask = input("\n  <Купить|Выйти>")
                if ask.lower() == "выйти":
                    break
                elif ask.lower() == "купить" and My_Coins - SELL_OR_CEN[index2] >=0:
                    My_Coins -= SELL_OR_CEN[index2]
                    primt("\n    Спасибо за покупку)")
                    inv_o += OR[index1]
                if My_Coins - SELL_OR_CEN[index2< 0:
                    print("\n    Не хватает монет")
                    break
        if ask.lower() == "выйти":
            print("\n  Пока(")
            peren()

  #ТАЙМЕР
def timer():
    for i in reversed(range(1, 4)):
        sys.stderr.write(f"               {i:2d}\r")
        sl(1)
  
    
#генератор событий
def gens():
    a = ran(0,1) 
    if a == 0:
        print("\nВаше событие:",sob[0],"\n")
        timer()
        bitva()
    elif a == 1:
        print("\nВаше событие:",sob[0],"\n")
        timer()
        magaz()
        
#основная лупа                              
def peren():
    while True:
        print("\nЧто делаем?<Инвентарь|Продолжить|Информация|Темы|Выйти>: ",text,text2)
        ask = input("\n     ")
        if ask.lower() == "инвентарь":
            inve()
        elif ask.lower() == "информация":
            infor()
        elif ask.lower() == "темы":
            tema()
        elif ask.lower() == "продолжить":
            sl(1)
            gens()
        elif ask.lower() == "выйти":
            quit("\n Пока")
            
peren()     

Не знаю поймете ли вы мой код, но надеюсь на помощь (это игра)


Ответы (1 шт):

Автор решения: XManit

Вы забыли закрыть квадратную скобку и поэтому цикл не запускался: (188)

FULL_SELL_Z += SELL_Z[ran(0,len(SELL_Z)-1)]
                                          ^

Ещё забыли тут: (204)

if My_Coins - SELL_OR_CEN[index2< 0:]:
                                    ^^
→ Ссылка