Ir ao conteúdo
  • Cadastre-se

Felipe2719

Membro Pleno
  • Posts

    144
  • Cadastrado em

  • Última visita

posts postados por Felipe2719

  1. def programa():
      while True:
        try:
          nome_produto = input('Digite o nome do produto:')
          preco = input('Digite o preco desse produto:')
          preco = float(preco)
          if preco<0 or preco>100:
            raise ValueError
          quantidade = input('Digite a quantidade do produto:')
          quantidade = int(quantidade)
          if quantidade<0 or quantidade>1000:
            raise Exception 
        except KeyboardInterrupt:
          print('Encerrando o programa...')
          return -1
        except ValueError:
          print('Valor invalido, digite um valor maior que 0 e menor que 100')
        except:
          print('Valor invalido, digite um valor inteiro entre 0 e 1000')
        else:
          lista = [nome_produto,preco,quantidade]
          return lista
      
          

    Como eu faço pro programa repetir a interação até que a resposta seja correta ?

    porque quando digito um valor invalido pro preço ou pra quantidade, simplesmente o programa reinicia pedindo tudo de novo ao invés de repetir só aquela parte.

    Desde já agradeço

  2. então pra eu interromper o laço de repetição como a questão diz, eu devo só repetir o return medias por ex no lugar no break? ou eu tenho que acrescentar um for ou um while antes ? não entendi como esse try funciona direito

    gostaria de saber tb como faço p pegar mais uma media separada por vírgulas. no meu caso tá pegando só a média da pos0 das duas listas. 

    Eu esqueci como fazer isso

  3. def questao(arquivo,dre,dic):
      arq = open(arquivo,'r')
      linha = arq.readline()
      soma = 0
      CRA = 0
      
      while linha!='':
        if dre in linha:
          L = linha.split(',')
          pos = 2
          notas = 0
          for codigos in dic:
            if codigos in L:
              soma+=dic[codigos]
              notas = float(L[pos+1])
              creditos = dic[codigos]
              CRA+= notas*creditos
            pos+=2
        linha = arq.readline()
      arq.close()
      return CRA/soma
        
      

     

    corrigi bastante coisa no meu código, mas ele ainda não tá dando certo pra maioria das entradas 😫

     

  4. 1481914769_ex4lista7.png.87b0772693a1170e76fb1e2036e45294.png

    def questao (arquivo,dre,dic):
      arq = open(arquivo,'r')
      soma = 0
      nota = 0
          
      for linha in arq:
        if dre in linha:
          L = linha.split(',')
          pos = 0
          while pos<len(L):
            if L[pos] == dre:
              nota = float(L[pos+2])
              for creditos in dic:
                soma+= nota*creditos/creditos
            pos+= 2
        linha = arq.readline()
      arq.close()
      return soma
       
        
        
        
        
                      
                           
          
          

     imaginei dessa forma. Primeiro for pra pegar as linhas, o while pra pegar as notas e o ultimo for pra fazer a soma.

    eu sei que tá errado porque ta retornando a zero mas se alguém puder me ajudar a entender melhor a questão eu agradeço

     

     

  5. @Midori eu cheguei a  fazer isso mas não dá certo porque a posição da nota varia de acordo com a disciplina dada por argumento. 

    com esse float(linha.split(',')[3] só daria certo pra primeira matéria, que fica na posição 2.

    nota = float(linha.split(',')[codigo]+1))

    teria que ser a posição do código + 1, mas eu sei que isso que eu fiz não daria certo kkkk

  6. @Midori Era isso mesmo, obrigado. Eu tinha visto esse método split mas não tinha entendido como funcionava direito.

    Agr to com dificuldade em pegar somente os DRE dos alunos que tiraram notas iguais ou maiores que 5 nessa disciplina dada por argumento.

    A nota vem logo em seguida da disciplina no arquivo . Se puder me ajudar de novo 🥺

    meu código por enquanto ficou assim

    def questao(arquivo,codigo):
      Arq = open(arquivo,'r')
      linha = Arq.readline()
      lista = []
      
      while linha!='':
        if codigo in linha:
          dre = linha.split(',')[1]
          lista.append(dre)
        linha = Arq.readline()
      Arq.close()
      return lista

     

  7. def questao(arquivo,codigo):
      Arq = open(arquivo,'r')
      linha = Arq.readline()
      dre = linha[1]
      lista []
      
      while linha!='':
        if codigo in linha:
          lista.append(dre)
        linha = Arq.readline()
      Arq.close()
      return lista

    @Midori agora ele tá retornando a quantidade certa, porém ainda n entendi porque ele ta pegando o 2 elemento ao invés de pegar a string inteira

    ['e','e','e','e','e',]

     

  8. 210266580_ex2lista7.png.74c9e531d7a9e309790fe6fd0a028c88.png

    o Arquivo tá no formato

    Nome, Numero do DRE, Código da disciplina, nota, código da disciplina, nota e assim por diante. Cada linha contendo essas informações sobre cada aluno

     

    eu fiz dessa forma :

    def questao(arquivo,codigo):
      Arq = open(arquivo,'r')
      linha = Arq.readline()
      dre = [1]
      lista = []
      
      while linha!='':
        if codigo in linha:
          Arq.close()
          lista.append(dre)
          return lista
        linha = Arq.readline()
      Arq.close()
    print(questao('alunos.txt','MAB114')) 
          

    pensei que esse dre[1] ia me retornar ao numero do dre completo, mas ele tá retornando a segunda letra da primeira string :x

     

  9. não consegui entender muito bem as aulas sobre arquivos e estou com dificuldade até nos exercícios mais simples. 

    1815275220_ex1lista7.png.301afce349afb113918bf5efbd9fd7da.png

    def questao(arquivo,dre):
      arq = open(arquivo,'r')
      linha = arq.readline()
      
      for linha in arq:
        if dre in linha:
          return linha
        else:
          return ''
        arq.close()
    print(questao('alunos.txt','31585197'))
      

    com essa entrada, deveria retornar a linha completa que tem esse DRE junto com as outras informações..

    porém tá retornando a uma string vazia

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