Ir ao conteúdo
  • Cadastre-se

Felipe2719

Membro Pleno
  • Posts

    144
  • Cadastrado em

  • Última visita

posts postados por Felipe2719

  1. 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.

     

     

     

  2. 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

     

  3. @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.

  4. 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 ?

  5. É 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.

  6. 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 :(

     

     

     

     

  7. 1364325956_Semaaaasdasdasdsad.png.7a60114ba054186136109ee89d212a27.png

    1344828655_meudeus.png.5e6a10feed602a9fd75088a641938177.png

     

    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.

  8. 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.

  9. 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) 

     

  10. @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.

     

     

  11. 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
        
            
        

     

  12. 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.

  13. 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

     

  14. @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

  15. 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.

     

     

     

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

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!