-
Posts
144 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por Felipe2719
-
-
to com dificuldade em desenvolver esse exercício.
como posso resolver essa questão sem passar um contador pra potência ??
esses exercícios de recursão bugam demais a minha mente :s
def questao(binario): if binario == 0: return 0 else: return binario[0]*2**? + questao(binario[1:])*2**?
-
já fiz outros 2 exercícios de recursão mas esse não to sabendo nem começar :c
se alguém puder me dar uma luz eu agradeço
-
@ederlap Até funciona, mas a questão pede pra eu utilizar o Raise levantando o Value Error...
tem alguma ideia do que eu possa fazer ?
-
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
-
-
def questao(lista1,lista2): medias = [] media = 0 pos = 0 while pos<len(lista1): try: media = (lista1[pos]+lista2[pos])/2 medias.append(media) pos+=1 except TypeError: return -1 except IndexError: break else: return medias print(questao([1,2,3],[3,4,5]))
o valor de retorno pra essas entradas no caso é [2.0 , 3.0, 4.0]
-
while pos<len(lista1): try: media = (lista1[pos]+lista2[pos])/2 medias.append(media) pos+=1 ...
desse jeito ? ele continua retornando apenas a media da pos0 dos dois
em relação ao loop eu realmente viajei, pensei que o try era outra espécie de laço de repetição
-
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
-
def questao2(lista1,lista2): medias = [] media = 0 pos = 0 try: media = (lista1[pos]+lista2[pos])/2 medias.append(media) pos+=1 except TypeError: return -1 except IndexError: break else: return medias
ta dando erro ''break outside loop'
gostaria de tb saber se meu código ta fazendo sentido
-
@Midori Muuuiiito obrigado pela trigésima vez !!!
quando você corrige eu me sinto burro por não ter pensado nisso
-
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
-
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
-
@Midori Novamente muito obrigado pela paciência.
Consegui terminar o código
toda vez que eu quiser acessar uma posição e o arquivo estiver separado por vírgulas, esse linha.split(',') vai servir. né ?
Obrigado.
Não entendi esse pos = 2 e o pos+=2 no final.
eu coloquei 0 e pos+=1 como você botou antes e retornou td certo
-
-
@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
-
@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
-
@Midori eu quero o conteúdo do dre mesmo
só que n to sabendo chamar a posição da string. se eu faço lista[1] ele me retorna a segunda letra da primeira string (como você disse) ao invés de retornar a segunda string, que é uma sequencia de números(dre)
-
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',]
-
@Matheus Coutinho de Souza Coloquei como concluído no próprio enunciado do tópico. Eu acabei conseguindo resolver sozinho...
-
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
-
Já consegui resolver sozinho, esquece esse tópico haha
-
não consegui entender muito bem as aulas sobre arquivos e estou com dificuldade até nos exercícios mais simples.
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
-
@Midoricomo o primeiro if tava verifiando se o produto tava no dicionário, achei que o próximo if seria tb dentro do dicionário.
Cheguei a fazer esse primeiro if (preco[pos]>di[p]:
mas achei que não fazia mt sentido kkkk
enfim, agora ficou claro. Muito Obrigado
- 1
-
@Midori Não consegui entender direito
o preço do produto seria o di[p] ?
desculpa a burrice mais uma vez
for p in produtos: di[p] = precos[pos] pos = pos + 1 if p in di: if di[p] > p ?
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
Exercício de recursão com números binários
em Programação - outros
Postado
tá dizendo assim ?? ainda n entendi como faço p pegar o resto