def artist(linha, name):
for i in range(len(linha)):
if linha[i] == '"':
j = i + 1
while j < len(linha) and linha[j] != '"':
name += linha[j]
j += 1
new_linha = linha[j:]
new_linha = new_linha.split()
return name, new_linha
def turne_name(new_linha, turne):
keys = ['turnê', 'show', 'espetáculo']
k = 0
for i in range(len(new_linha)):
if new_linha[i] in keys:
j = i + 1
while j < len(new_linha) and '.' not in new_linha[j] and ',' not in new_linha[j] and ';' not in new_linha[j] and '?' not in new_linha[j] and '!' not in new_linha[j] and k < len(new_linha):
turne += new_linha[j] + ' '
k += 1
j += 1
if k < len(new_linha):
turne += new_linha[j][:-1]
return turne
elif k >= len(new_linha):
return turne
k += 1
def state(new_linha, state_name):
x = ['AC', 'AL', 'AP', 'AM', 'BA', 'CE', 'DF', 'ES', 'GO', 'MA', 'MT', 'MS', 'MG', 'PA', 'PB', 'PR', 'PE', 'PI', 'RJ', 'RN', 'RS', 'RO', 'RR', 'SC', 'SP', 'SE', 'TO']
for i in range(len(new_linha)):
if ',' or '.' in new_linha[i]:
new_linha[i] = new_linha[i][:-1]
return state_name
else:
# Add your logic here if needed
pass
def price():
n = int(input())
for _ in range(n):
name = ''
turne = ''
state_name = ''
date_end = []
cupom = ''
linha = input()
if name == '' and '"' in linha:
name, new_linha = artist(linha, name)
turne = turne_name(new_linha, turne)
if state_name == '':
new_linha = linha.split()
state_name = state(new_linha, state_name)
if date_end == []:
date_end = new_linha
if "cupom" in linha.lower():
cupom = linha.split()[-1]
print('######################################')
if name != '':
print("#{:^32}#".format(name.upper()))
print('######################################')
if turne:
print("#{:^32}#".format(turne.upper()))
if state_name != '':
print("#{:^32}#".format(state_name))
if date_end != []:
for date_item in date_end:
print("#{:^32}#".format(date_item))
print('######################################')
if "www" in linha.lower():
print("#{:^32}#".format(linha.split()[-1]))
print('######################################')
ticket_price = input("")
if cupom != '':
print("|{: ^32}|".format(f"Ingressos: R$ {ticket_price}"))
print("|{: ^32}|".format(f" Utilize o cupom {cupom.upper()}"))
else:
print("|{: ^32}|".format(f"Ingressos: R$ {ticket_price}"))
print("+------------------------------------+")
if __name__ == "__main__":
price()
Preciso de ajuda para corrigir este código e ele retornar no formato certo.
Aqui está o enunciado:
Questão 1
Incompleto
Vale 10,00 ponto(s).
Marcar questão
Texto da questão
Eu quero é rock!
As melhores bandas do planeta sairão em turnê, e você foi contratado para a divulgação! A partir de um e-mail do produtor, estruture as informações para criar os pôsteres. Cuidado, cada produtor tem um estilo de escrita...
#########################
# RAIMUNDOS #
#########################
# Retorno da Jurema #
# JamPessoa-PB #
# Berssange's #
# 26/fev #
# 27/fev #
# 28/fev #
#########################
# palhas.do.coqueiro.br #
#########################
| Ingressos: R$ 42.00 |
+-----------------------+
Cada pôster tem o mesmo formato, e note que as informações são centralizadas. Os dados são fornecidos em texto, da seguinte forma:
O nome do(s) artista(s) é sempre apresentado entre aspas duplas.
O nome da turnê é dada no mesmo período que o do(s) artista(s), após uma dessas palavras: "turnê", "espetáculo" ou "show", seguida imediatamente de algum símbolo de pontuação (.,;!?).
Cidade e Unidade de Federação são sempre apresentadas uma após a outra, separadas por vírgula (e talvez espaço). É garantido que toda UF é fornecida como sua sigla, em letras maiúsculas, e nenhuma cidade tem nome composto.
Datas são fornecidas no formato "dia/mês". Números sempre têm dois algarismos e, no caso de "mês" ser dado por extenso, é garantido que são usadas apenas as três primeiras letras do nome. Se houver mais de uma data, é garantido que todas seguem o mesmo formato.
O local de realização do show é sempre apresentado entre aspas duplas e após a informação do nome do(s) artista(s).
O endereço eletrônico para mais informações segue o formato padrão de uma URL na internet, 3 ou 4 grupos de (pelo menos 2) letras minúsculas separadas por ponto ('.').
O valor do ingresso é um número X
X
dado como "R$ X" ou "X reais". Pode ou não haver casas decimais.
O código para o cupom de desconto, se houver, será a única informação com pelo menos três símbolos em caixa alta.
Entrada
A primeira linha fornece um valor inteiro com a quantidade n
n
de linhas da mensagem . A seguir, são dadas n
n
linhas contendo todas as informações da turnê listadas acima, de forma não estruturada.
Saída
Para cada entrada, extraia as informações necessárias e monte o pôster no formato indicado acima (e conforme os exemplos). Note que o nome do artista deve estar em caixa alta; as datas devem ser listadas uma por linha, na ordem em que foram dadas; e que o preço do ingresso deve ser apresentado como valor real, com precisão de duas casas, precedido por "R$" e espaço.
Observações
A formatação da saída é importante, saiba usar f-string. Os detalhes estão na documentação aqui e aqui. Cuidado com a penalidade!
For example:
Input Result
3
Os "Raimundos" chegaram à JamPessoa, PB, com a turnê Retorno da Jurema!
Preço único de 42 reais por tiquete, todos os detalhes estão no site palhas.do.coqueiro.br.
Apresentações em 26/fev, 27/fev e 28/fev no "Berssange's".
#########################
# RAIMUNDOS #
#########################
# Retorno da Jurema #
# JamPessoa-PB #
# Berssange's #
# 26/fev #
# 27/fev #
# 28/fev #
#########################
# palhas.do.coqueiro.br #
#########################
| Ingressos: R$ 42.00 |
+-----------------------+
4
A banda "Queen" volta aos palcos na turnê Mustapha Mustapha Mustapha Ibrahim.
Todas as informações estão no site www.queen.mus.
Serão apresentações em Brasília, DF, nos dias 31/10 e 01/11, no estádio "Mané Garrincha".
Ingressos a partir de R$ 500, mas você pode usar o cupom MAISAPC!
######################################
# QUEEN #
######################################
# Mustapha Mustapha Mustapha Ibrahim #
# Brasília-DF #
# Mané Garrincha #
# 31/10 #
# 01/11 #
######################################
# www.queen.mus #
######################################
| Ingressos: R$ 500.00 |
| Utilize o cupom MAISAPC |
+------------------------------------+
3
Anunciamos "Alceu Valença" na turnê Tu Vens!
Shows em 27/06, 28/06, 04/07, 05/07 e 11/07, no "Bruma Leve" de Chapecó, SC.
Entrada por R$ 5000,50, mas tem desconto com NAODUVIDO com cadastro no site www.quarando.br.
#############################
# ALCEU VALENÇA #
#############################
# Tu Vens #
# Chapecó-SC #
# Bruma Leve #
# 27/06 #
# 28/06 #
# 04/07 #
# 05/07 #
# 11/07 #
#############################
# www.quarando.br #
#############################
| Ingressos: R$ 5000.50 |
| Utilize o cupom NAODUVIDO |
+---------------------------+
6
Tem 100 reais sobrando?
Bora!.
Dia 11/11 tem "Autoramas" com o show Bom Veneno, no "Little Quail" de Ceilândia, DF.
Bora!
www.autoramasrock.com.br.
Bora!
############################
# AUTORAMAS #
############################
# Bom Veneno #
# Ceilândia-DF #
# Little Quail #
# 11/11 #
############################
# www.autoramasrock.com.br #
############################
| Ingressos: R$ 100.00 |
+--------------------------+
2
"When in Rome" no "Colosseum" com a turnê The Promise, Londrina, PR em 13/jan.
R$ 123.45 no site right.words.to.say.
########################
# WHEN IN ROME #
########################
# The Promise #
# Londrina-PR #
# Colosseum #
# 13/jan #
########################
# right.words.to.say #
########################
| Ingressos: R$ 123.45 |
+----------------------+
2
"rpm" com único show Alvorada Voraz, na "Esplanada dos Ministérios".
Brasília, DF, por 0 reais! Mais em www.rpm.mus.
#############################
# RPM #
#############################
# Alvorada Voraz #
# Brasília-DF #
# Esplanada dos Ministérios #
#############################
# www.rpm.mus #
#############################
| Ingressos: R$ 0.00 |
+---------------------------+
4
Última oportunidade para ver "Grand Funk Railroad" na turnê I'm your Captain.
Grande apresentação no "El Grand Teatrón de la Frontera", em Chapecó, SC.
Detalhes em www.grandfunk.mus, ingressos por R$ 250.00.
Estudante paga meia.