-
Posts
144 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por Felipe2719
-
-
é possível usar o 74LS47 ? agradeço a ajuda desde ja
-
Sou iniciante ainda e não consigo entender muito bem olhando o Data Sheet.
Gostaria de entender como funciona esse contador e principalmente o que são essas entradas CEP, CET, PE, MR e TC.
Desde já agradeço
-
minha sinceras desculpas por ser um tanto inconveniente e insistir na burrice muitas vezes;
eu admiro demais a sua paciência kkk
muito obrigado de coração, tenho nem palavras pra te agradecer. você é uma pessoa maravilhosa, saiba disso
carregou meu semestre nas costas praticamente haha
te amoooooooo
tudo de bom pra voce, que seja recompensado em dobro !!!
obrigado.
-
Só falta essa parte de arquivos mesmo. Se puder me ajudar na implementação dele...
-
def imprimirMenu(): opcao = int(input( 'Digite uma das opções abaixo:\n' '1 - Preencher resultados:\n' '2 - Estatisticas do seu time:\n' '3 - Tabela do campeonato:\n' '4 - Proximos jogos\n' '5 - Sair do programa.\n' )) return opcao import numpy def resultado(listas,iA,iB,estatistica): times = listas[0] pontos = listas[1] A = times[iA] B = times[iB] if not A in estatistica: estatistica[A] = [0, 0 ,0] if not B in estatistica: estatistica[B] = [0 ,0 ,0] try: while True: j = input(A + ' x ' + B + ': ').split() try: pA, pB = int(j[0]), int(j[1]) if pA<0 or pA>20 or pB<0 or pB>20: raise ValueError else: break except IndexError: print('Separe os valores por um espaço, EX 1 1') except ValueError: print('Digite um número válido, maior que 0 e menor/igual a 20.') except KeyboardInterrupt: print('Encerrando...') else: print('O jogo foi {} a {}.'.format(pA,pB)) if pA > pB: pontos[times.index(A)] += 3 elif pA < pB: pontos[times.index(B)] += 3 else: pontos[times.index(A)] += 1 pontos[times.index(B)] += 1 estatistica[A] = numpy.add( estatistica[A], [pA>pB,pA==pB,pA<pB] ).tolist() estatistica[B] = numpy.add( estatistica[B],[pB>pA,pB==pA,pB<pA] ).tolist() def ordena(listas): times = lista[0].copy() pontos = lista[1].copy() t = len(times) for i in range(t - 1): for j in range(t - i - 1): if pontos[j] < pontos[j + 1]: pontos[j], pontos[j + 1]=\ pontos[j + 1], pontos[j] times[j], times[j + 1] =\ times[j + 1], times[j] return [times, pontos] def main(): open(arquivo,'r') ??? listas = [['Brasil','Colombia','Equador','Peru'],['Alemanha','Italia','França','Holanda']] campeonato = int(input('Campeonato: ')) times = listas[campeonato - 1] times = [times, [0]*len(times)] estatistica = {} for T in times: estatistica[T] = [0, 0, 0] while True: r = imprimirMenu() if r == 1: if rodada == 1: resultado(times,0,1,estatistica) resultado(times,2,3,estatistica) rodada += 1 elif rodada== 2: resultado(times,0,2,estatistica) resultado(times,1,3,estatistica) elif r == 2: print('TIME'.ljust(10) + 'V E D') for E in estatistica.items(): print(E[0].ljust(10)+\ str(E[1][0]) +' '+\ str(E[1][1]) +' '+\ str(E[1][2])) elif r == 3: time, ponto = ordena(times) i = 0 while i <len(time): print(time[i],ponto[i]) i+=1 elif r == 4: pass elif r == 5: break else:
Tá dando o erro typeError: unhashable type: 'list'
na parte do estatistica[T] = [0, 0, 0]
já que o arquivo são 5 linhas, eu tenho que criar mais de um pra adicionar mais campeonatos ? não entendii
e ainda sobre ele, pra implementar ele é só fazer isso ?? e depois fechar ele no final ?
Além disso, pode conferir o código pra mim pra ver se eu não esqueci de algo ?
prometo que vou parar de pertubar jaja kkkkk
-
@Midori não tem diferença, só queria entender mesmo pra poder explicar no trabalho, assim como todas as outras funções.
a ideia de imprimir todos as informações é melhor mesmo obrigado
1 hora atrás, Midori disse:A opção 2 é que mostra as estatísticas como no exemplo que postei
é isso que não to entendendo, porque se eu boto as estatísticas como parâmetro da função resultado como você fez, fica pedindo p eu colocar um argumento adicional na opção 1
como vai ficar a opção 2 na função main ? se for muito óbvio me desculpa
Na parte de arquivos
1,0
Brasil,0
Colombia ,0
Equador,0
Peru,0
1,1
França,0
Alemanha,0
Italia,0
Espanha,0
e assim por diante ?
e pra abrir, seria com o open(arquivo,'r') no começo do programa ? Creio que só falta essa parte pra eu fechar. Vou descartar a opção 4, que só botei pra encaixar algum módulo.
-
esse print vai direto na função resultado ?
se for fazer desse jeito então, eu ignoro a opção '2',e a opção 1 passa a executar essa parte tb né ?
eu tava pensando em pedir pro usuário digitar o nome do time, pra depois ele executar essa parte(na opção 2)
e por último, pode me explicar o porque da utilização do módulo numpy ?
-
É porque o programa precisa ser flexível e possa ser utilizado como módulo (foi isso que entendi).
Seria algo como:
if __name__ == '__main__': print(ordena([['Brasil','Colombia','Argentina'],['Chile','Peru','Venezuela']]) print(ordena([['Italia','França','Alemanha'],['Portugal','Holanda','Espanha']]) ...
Por isso q tava precisando de mais funções que retornam valores, mas de fato não precisam ser todas (ainda bem)
Pode me ajudar na parte das estatísticas ? sei que tá chato, mas nesse trab to igual uma ameba e não consigo fazer quase nada
A parte do dicionário eu entendi, mas não tô conseguindo fazer p pegar a lista com as estatísticas.
-
4 horas atrás, Midori disse:
Você só tem que definir o formato do arquivo e se o seu programa terá uma opção para abrir no início, já que por enquanto só dá a opção de escolher entre dois campeonatos.
geralmente eu só utilizo txt. Mas que tipos de variáveis seria interessante salvar no arquivo, além da rodada ?
no enunciado diz pra salvar o estado do programa e permitir que ele seja carregado após salvar, mas não entendi
-
@Midori Obrigado!!
Uma coisa que reparei é que o enunciado pede pras funções terem entradas e valores de retorno, pra poder incluir os testes com a variável __name__.
Não seria necessário alterar o código ? fiquei confuso
-
Peço desculpas pelo desespero, é que preciso entregar o trabalho até amanha as 23:59 e sou completamente incompetente nessa disciplina(já não basta física)
muito obrigado de coração. Se for preciso alterar algo pra se ajustar no enunciado ou nas exigências me avisa por favor.
*em relação ao módulo, foi sugerido que eu usasse o datetime pra opção 4, pra mostrar a data dos jogos de acordo com a data atual.
-
1 hora atrás, Felipe2719 disse:
como faço pra pegar os gols e as derrotas nas estatísticas ? eu pensei em algo assim pra pegar as vitórias e os empates, mas não sei se funciona direito.
Mais uma coisa importante, sabe como posso encaixar ou alterar o programa pra que tenha lista de lista(ou equivalente) e a utilização de arquivo ? o trabalho tá exigindo
def estatisticas(times, pontos): vitoria = 0 empate = 0 for t in times: input('Digite o nome do seu time:') if t in times: for p in pontos: if p == 3: vitoria += 1 if p == 1: empate += 1 print('{} Vitórias, {} Empates'.format(vitoria,empate)
Se você quiser, eu posso postar o enunciado do meu trabalho aqui pra facilitar. Mas não sei se seria muito abuso da minha parte.
-
como faço pra pegar os gols e as derrotas nas estatísticas ? eu pensei em algo assim pra pegar as vitórias e os empates, mas não sei se funciona direito.
Mais uma coisa importante, sabe como posso encaixar ou alterar o programa pra que tenha lista de lista(ou equivalente) e a utilização de arquivo ? o trabalho tá exigindo
def estatisticas(times, pontos): vitoria = 0 empate = 0 for t in times: input('Digite o nome do seu time:') if t in times: for p in pontos: if p == 3: vitoria += 1 if p == 1: empate += 1 print('{} Vitórias, {} Empates'.format(vitoria,empate)
-
@Midori Mas esse novo campeonato ia aproveitar as funções anteriores pra criar uma nova tabela a parte, por exemplo ? ou eu teria que alterar as funções ?
queria que o usuário digitasse qual campeonato ele quer, pra daí ele começar a por os resultados.
usar listas de listas seria uma boa ? [ ['Brasil,'Chile'],['Venezuela','Argentina'] ]
Minha professora sugeriu p que eu cadastrasse 2.
Mais uma vez obrigado pela paciência.
-
@Midori Desculpa pela falta de atenção, juro que não é de propósito kkk.
Outra dúvida, caso eu queria cadastrar outro campeonato ( com a mesma quantidade de times) como eu devo proceder ?
-
Fui fazer agora a parte de tratamento de exceção e tô tendo um problema. Caso caia no index error ou no value error ele fica dando print em loop infinito. Pode me ajudar ?
def resultado(A, B): try: j = input(A + ' x ' + B + ': ').split() while True: try: pA, pB = int(j[0]), int(j[1]) if pA<0 or pA>20 or pB<0 or pB>20: raise ValueError else: break except IndexError: print('Separe os valores por um espaço, EX: 1 1') except ValueError: print('Digite um número inteiro válido maior que 0 e menor que 20.') except KeyboardInterrupt: print('Encerrando o programa...') else: print('O jogo foi {} a {}.'.format(pA,pB)) if pA > pB: pontos[times.index(A)] += 3 elif pA < pB: pontos[times.index(B)] += 3 else: pontos[times.index(A)] += 1 pontos[times.index(B)] += 1
-
@Midori Agora acho que entendi, me embolei um um pouco. Você poderia me explicar melhor como fez a função ''ordena'' e ''resultado'' passo a passo ?
pra eu tentar entender melhor
-
def imprimirMenu(): print('Digite uma das opções abaixo:') print('1 - Preencher resultados da rodada') print('2 - Estatisticas do seu time') print('3 - Tabela do campeonato') print('4 - Proximos jogos') print('5 - Sair do programa.') def resultados(listatimes): pontos = {} for i in range(len(listatimes)): j = i + 1 while j<len(listatimes): A,B = listatimes[i],listatimes[j] if not A in pontos: pontos[A] = 0 if not B in pontos: pontos[B] = 0 p = input(A + 'X' + B +': ').split() pA, pB = int(p[0]),int(p[1]) if pA>pB: pontos[A]+=3 elif pA<pB: pontos[B]+=3 else: pontos[A]+=1 pontos[B]+=1 j+=1 def resultado(A,B): j = input(A + ' x ' + B + ': ').split() pA,pB = int(j[0]),int(j[1]) if pA>pB: pontos[times.index(A)]+=3 elif pA<pB: pontos[times.index(B)]+=3 else: pontos[times.index(A)]+=1 pontos[times.index(B)]+=1 def ordena(times,pontos): t = len(times) i = 0 while i<len(times): print(times[i],'=',pontos[i]) i+=1 for i in range(t - 1): for j in range(t - i - 1): if pontos[j] < pontos[j+1]: pontos[j], pontos[j+1]= \ pontos[j+1],pontos[j] times[j],times[j+1] = \ times[j+1],times[j] print() def main(): times = ['Brasil','Colombia','Equador','Peru','Venezuela'] pontos = [0]*len(times) while True: imprimirMenu() r = input('Opcao: ') if r == '1': resultados(times) pass elif r == '2': pass elif r == '3': ordena(times,pontos) elif r == '4': pass elif r == '5': break else: print('Opcao invaida.') main()
ficaria assim ?
com certeza fiz algo errado porque os valores só ficam = 0 na tabela.
na função main eu tô chamando as funções corretas ? fiquei meio confuso nessa parte.
-
Ok! Desculpa por insistir na pergunta, mas como eu posso colocar os pontos do lado dos times na tabela ??
e colocar por ordem de pontuação, do maior pro menor. obrigado pela ajuda.
-
4 horas atrás, Felipe2719 disse:
@Midori Fazendo isso ele vai pedindo todos os jogos de todos os times até acabar, né ? eu precisava no caso só repetir a rodada, que são em média 10 jogos por rodada sem repetir o time. Depois de preencher os jogos como faço pra aparecer a a pontuação do lado dos times (na tabela da opção 3) e caso o time tiver mais pontuação que o outro, subir uma linha na frente igual a tabela do brasileirão mesmo. To martelando aqui mas n to conseguindo fazer
Se não deu p entender o que eu disse, é mais ou menos assim:
['São Paulo'],['Corinthians'],['Santos'],['Palmeiras']
na primeira rodada se enfrentam São paulo X corinthians e Santos X Palmeiras
na segunda Corinthians X Santos, Palmeiras X São Paulo. E assim por diante até todos os times se enfrentarem. Como eu escolhi 20 times, desse jeito eu ficaria uma eternidade digitando os resultados até o final, já que todos enfrentam 19 times. Por isso tava pensando em colocar só 10 partidas pra cada vez q o usuário digitar a opção 1, guardando as partidas e os resultados anteriores. Não sei se dá pra fazer isso, e só uma ideia. Se achar que vai ficar mt complicado me avisa p eu escolher um campeonato com menos times, daí eu faço desse jeito mesmo kkkk
-
@Midori Fazendo isso ele vai pedindo todos os jogos de todos os times até acabar, né ? eu precisava no caso só repetir a rodada, que são em média 10 jogos por rodada sem repetir o time. Depois de preencher os jogos como faço pra aparecer a a pontuação do lado dos times (na tabela da opção 3) e caso o time tiver mais pontuação que o outro, subir uma linha na frente igual a tabela do brasileirão mesmo. To martelando aqui mas n to conseguindo fazer
-
Sou iniciante em Python e preciso de ajuda pra desenvolver um programa de futebol, e precisa ter um menu com algumas opções q vou colocar no código abaixo.
Até agr só fiz isso e tô com algumas dúvidas:
def imprimirMenu(): print('Digite uma das opções abaixo:') print('1 - Preencher resultados da rodada') print('2 - Estatisticas do seu time') print('3 - Tabela do campeonato') print('4 - Proximos jogos') print('5 - Sair do programa.') def tabela(listatimes): for t in listatimes: print(t) print() def resultados(): while True: try: print('Atletico-GO X Sao Paulo: ') g1=int(input('Atletico-GO: ')) if g1<0 or g1>50: raise ValueError g2=int(input('Sao Paulo: ')) if g2<0 or g2>50: raise ValueError except ValueError: print('Digite um inteiro maior que 0 e maior que 50') print() def main(): times = ['Bragantino','Bahia','Ceara','Fotaleza',\ 'Atletico-PR','Flamengo','Atletico-GO','Sport',\ 'Juventude','Cuiaba','Internacional','Sao Paulo',\ 'Fluminense','Gremio','Atletico Mg','America MG', 'Palmeiras','Corinthians','Chapecoense','Santos'] while True: imprimirMenu() r = input('Opcao: ') if r == '1': resultados() pass elif r == '2': pass elif r == '3': tabela(times) elif r == '4': pass elif r == '5': break else: print('Opcao invaida.') main()
Na parte dos resultados, eu preciso que o usuário digite os resultados de todas as partidas daquela rodada (eu coloquei só uma partida por enquanto) Minha dúvida é se eu preciso inserir todas as partidas ou existe uma forma automatizada de fazer isso ? A forma q eu fiz tá correta ?
E Dependendo dos resultados que o usuário digitar, eu preciso que a tabela(opção 3) atualize, contendo a pontuação e colocação de cada time, Vitória=3 pontos, Empate = 1 ponto e Derrota = 0
Toda vez q o usuário terminar de colocar os resultados da rodada, na proxima vez q ele selecionar a opção 1, o programa tem que ir pra próxima rodada, com as próximas partidas e indo atualizando a tabela pra cada interação.
e Na opção 2 só mostrar as estatisticas (gols, vitórias, derrotas, empates) do time que o usuário digitar.
Se alguém puder me ajudar a desenvolver esses tópicos eu ficaria mt agradecido, pois estou com bastantes dificuldades.
Desde já, Obrigado.
-
@Midori meu deus você é um anjo !! mt obrigado
-
@Midori eu fiz isso, mas da string index out of range.. em cima aparece um erro '[Previous line repeated 2 more times]'
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais
Como fazer um display 7 seg com 2 dígitos no circuit maker
em Eletrônica
Postado
@Thiago Miotto sabe me dizer como faço ? não sou bom olhando data sheet