Python Forum
Regular expressions help re.error: multiple repeat at position 23
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Regular expressions help re.error: multiple repeat at position 23
#1
This is a menu for someone to de-codify a food menu and know what the client has asked for. The issue is that it only gives back the answer correctly to the code: "RES71PQ". If I introduce the other testings I have to do, which are "RED4", "QEGRVN" and "TCAGR" it gives a big message but I don't understand it. Help! This is a really important homework. Thanks

import re

    def sabor1(pedido):
      if pedido[2]=="S":
        return "salado"
    else:
        return "dulce"

    def sabor2(pedido):
       if pedido[5]=="N":
          return "Vainilla"
       elif pedido[5]=="R":
          return "Fresa-chocolate"
       elif pedido[5]=="M":
          return "Caramelo"
    else:
        return "Chocolate"

def articulo(pedido):
    if pedido[3]==1 or pedido[3]==2 or pedido[3]==4 or pedido[3]==5:
        return "un"
    else:
        return "una"

def tamano(pedido):
    if pedido[4]=="P"or pedido[5]=="P":
        return "de tamaño pequeño"
    elif pedido[4]=="M"or pedido[5]=="M":
        return "de tamaño mediano"
    else:
        return "de tamaño grande"

def tamano2(pedido):
    if pedido[2]=="P":
        return "de tamaño: pequeño"
    else:
        return "de tamaño: grande"


def comida(pedido):
    if int(pedido[3])==1:
        return "Nidito"
    elif int(pedido[3])==2:
        return "Palito de queso"
    elif int(pedido[3])==3:
        return "Orejita"
    elif int(pedido[3])==4:
        return "Biscuit"
    elif int(pedido[3])==5:
        return "Crocante"
    elif int(pedido[3])==6:
        return "Enchilada"
    elif int(pedido[3])==7:
        return "Empanada"

def verificarPedidos(pedido):
   """
   Funcionaliad: Verifica el código que ingresó el usuario y devuelve el producto
   Entrada: Un código alfanumérico 
   Salida: El producto correspondiente al código anterior
   """
   if re.match ("^RE[D|S]{1}[1-6]{1}[PQ|MD|GD]*$",pedido):
        print ("Usted solicita una repostería de sabor "+sabor1(str(pedido))+", correspondiente a "+articulo(str(pedido))+" :"+comida(str(pedido))+","+tamano(str(pedido)))
   elif re.match ("^RE[D|S]{1}[1-6]{1}$",pedido):
        print ("Usted solicita una repostería de sabor "+sabor1(str(pedido))+", correspondiente a "+articulo(str(pedido))+" :"+comida(str(pedido))+".")
   elif re.match ("^RE[D|S]{1}7{1}[1|2]{1}[PQ|MD|GD]*$",pedido):
        print ("Usted solicita una repostería de sabor "+sabor1(str(pedido))+", correspondiente a "+articulo(str(pedido))+" : Empanada, "+tamano(str(pedido)))
   elif re.match ("^RE[D|S]{1}7{1}[1|2]{1}*$",pedido):
        print ("Usted solicita una repostería de sabor "+sabor1(str(pedido))+", correspondiente a "+articulo(str(pedido))+" : Empanada, ")
   elif re.match ("^QE{1}[GR|PQ]{1}[VN|FR|CM|CE]{1}$",pedido):
        print ("Usted solicita un queque de sabor de "+sabor2(str(pedido))+", "+tamano2(str(pedido)))
   elif re.match ("^TCAGR{1}$",pedido):
        print ("Usted solicita una torta chilena, de tamaño: grande. ")


        #Menu

def opcionverificarPedidos():
   """
   Funcionalidad: Validar y reconocer cual producto se desea 
   Entrada: Código 
   Salida: Qué es lo que el cliente pide 
   """
   print ("\n------------------------\n")
   print ("Según el menú mostrado anteriormente, eliga su pedido según corresponda el código de la comida con su pedido")
   print ("\n------------------------\n")
   pedido= input("Ingrese un código de comida: ")
   print ("")
   print ("")
   print (verificarPedidos(pedido))
   print ("")
   print ("")


def menuSpoon():
    print ("\n**************************\n")
    print ("≣≣≣≣≣≣≣≣ Menú Spoon™ ≣≣≣≣≣≣≣≣≣")
    print ("\n"*1)
    print ("Bienvenido al menú decodificador. Esperamos tenga una experiencia agradable. ")
    print ("\n**************************\n")
    print ("Los productos disponibles son:")
    print ("1. Repostería:")
    print ("2. Queques:")
    print ("3. Tortas Chilenas grandes ")   
    print ("")
    pedido=(input("Escoja un alimento y digite su código: "))
    if pedido!="":
       print(verificarPedidos(pedido))
       print("")
       print("")
    else:
        print ("El código ingresado no coincide con el inventario actual de productos Spoon™. Inténtelo nuevamente tomando en cuenta el orden en el que ingresa los datos. ")
    continuar=input("Desea decodificar un nuevo producto? ")

    if continuar=="Si" or continuar=="SI" or continuar=="sí" or continuar=="SÍ" or continuar=="si" or continuar=="Sí":
        print("")
        print("")

        menuSpoon()
    else:
        return


menuSpoon()

This is a really important homework pls help!
Sad
Reply


Messages In This Thread
Regular expressions help re.error: multiple repeat at position 23 - by JoseSalazar1 - Sep-17-2018, 10:46 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Use or raw string on regular expressions Zaya_pool 5 476 May-09-2024, 06:10 PM
Last Post: Zaya_pool
Information Do regular expressions still need raw strings? bobmon 3 460 May-03-2024, 09:05 AM
Last Post: rishika24
  Recursive regular expressions in Python risu252 2 1,544 Jul-25-2023, 12:59 PM
Last Post: risu252
  Why do I have to repeat items in list slices in order to make this work? Pythonica 7 1,491 May-22-2023, 10:39 PM
Last Post: ICanIBB
Sad Regular Expressions - so close yet so far bigpapa 5 1,154 May-03-2023, 08:18 AM
Last Post: bowlofred
  Repeat request by else stsxbel 2 1,262 Jul-30-2022, 03:34 PM
Last Post: stsxbel
  How to move multiple columns to initial position SriRajesh 4 1,490 Jul-02-2022, 10:34 AM
Last Post: deanhystad
  List Creation and Position of Continue Statement In Regular Expression Code new_coder_231013 3 1,786 Jun-15-2022, 12:00 PM
Last Post: new_coder_231013
  get out of while loop and stop repeat Frankduc 11 3,230 Apr-26-2022, 10:09 PM
Last Post: deanhystad
  Avoid multiple repeat in indent Frankduc 8 3,029 Jan-18-2022, 05:46 PM
Last Post: Frankduc

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020