Guest s33k_ Posted December 3, 2007 at 03:09 PM Report Share #151943 Posted December 3, 2007 at 03:09 PM . Link to comment Share on other sites More sharing options...
JoaoRodrigues Posted December 3, 2007 at 03:55 PM Report Share #151945 Posted December 3, 2007 at 03:55 PM Ajudo-te, não te faço o código 🙂 Pedes ao utilizador a frase e guardas numa string Fazes um split à string para whitespaces - ficas com cada palavra um item de uma lista. Comparas essa lista com uma lista previamente feita de artigos definidos e indefinidos Caso haja iguais: tiras da lista com um pop da posição e dizes ao utilizador. No fim desse "processamento", hás de ter só as palavras. Não sei até que ponto um sort() não te ajuda aí B) Boa Sorte e posta o resultado final! Link to comment Share on other sites More sharing options...
bukz Posted December 3, 2007 at 03:57 PM Report Share #151947 Posted December 3, 2007 at 03:57 PM texto = raw_input ('Escreva uma texto: ') dados = texto.split() dados.sort() artigos = ['o', 'a', 'os', 'as', 'um', 'uma', 'uns', 'umas'] if artigos in texto: del dados[artigos] e agora?? nao sei fazer mais!! Link to comment Share on other sites More sharing options...
Guest s33k_ Posted December 3, 2007 at 04:03 PM Report Share #151950 Posted December 3, 2007 at 04:03 PM como fazo para guardar a frase numa string? :S Link to comment Share on other sites More sharing options...
bukz Posted December 3, 2007 at 04:05 PM Report Share #151951 Posted December 3, 2007 at 04:05 PM texto = raw_input ('Escreva uma texto: ') Link to comment Share on other sites More sharing options...
djthyrax Posted December 3, 2007 at 05:38 PM Report Share #151982 Posted December 3, 2007 at 05:38 PM bukz, em vez de fazeres esse if, metes um for que é mais fácil de depois fazer o restante. 🙂 Sem contar que duvido que esse if funcione como esperado. Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum! Link to comment Share on other sites More sharing options...
JoaoRodrigues Posted December 3, 2007 at 05:40 PM Report Share #151984 Posted December 3, 2007 at 05:40 PM Eu tinha-lhe dito para ele usar um for para iterar nas palavras diferentes (separadas pelo split). Era o mais prático a fazer.. Link to comment Share on other sites More sharing options...
bukz Posted December 3, 2007 at 07:47 PM Report Share #152053 Posted December 3, 2007 at 07:47 PM ya ya ... ja sei xD epah... digamos k sou novo em py e k o meu prog. fikou alguma coisa parecida com isto : #!/usr/bin/env python #coding: utf-8 # python!!!!!! lista = [] lista_artigos = ['o','a','os','as','um,','uma','uns','umas'] delimiter = ' ' a = raw_input('digita a frase : ') lista.append(a) a.split(delimiter) lista.sort() for artigo in lista_artigos: if artigo in lista: del artigo print lista atençao! o programa nao esta todo aqui! Link to comment Share on other sites More sharing options...
JoaoRodrigues Posted December 3, 2007 at 07:54 PM Report Share #152056 Posted December 3, 2007 at 07:54 PM Podes sempre tratar a variável texto como uma string e aplicar o split sobre ela. Alem do mais, ao fazeres esse split, não vais separar palavras, só as separadas por vírgulas. Experimenta o split em branco (separa por whitespaces). Link to comment Share on other sites More sharing options...
djthyrax Posted December 3, 2007 at 09:02 PM Report Share #152082 Posted December 3, 2007 at 09:02 PM Já fiz o programa, e funciona eheh. 🙂 Só falta fazer o case-insensitive sort. EDIT: Vi agora um bug. B) Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum! Link to comment Share on other sites More sharing options...
JoaoRodrigues Posted December 3, 2007 at 09:10 PM Report Share #152084 Posted December 3, 2007 at 09:10 PM Bug em quem? B) (deixaste-me curioso..vou fazer eu o meu 🙂 ) Link to comment Share on other sites More sharing options...
djthyrax Posted December 3, 2007 at 09:17 PM Report Share #152087 Posted December 3, 2007 at 09:17 PM Bug em quem? B) (deixaste-me curioso..vou fazer eu o meu 🙂 ) No meu programa. 😛 Tenho um bug na stristr(). Ou melhor, no uso da stristr(). Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum! Link to comment Share on other sites More sharing options...
JoaoRodrigues Posted December 3, 2007 at 09:22 PM Report Share #152091 Posted December 3, 2007 at 09:22 PM Mas fizeste em PHP ou python? 🙂 Btw, fica aqui a minha source. Aprendi esta nova do cmp. Não fazia ideia B) #! /usr/bin/python # -*- coding: iso-8859-15 -*- # Programa que ordena palavras de uma frase alfabeticamente import string frase = raw_input('Digite uma frase: ').split(' ') # Pede a frase ao utilizador artigos = ['a', 'as', 'um', 'uns', 'uma', 'umas', 'o', 'os'] # Lista que define os artigos for palavra in frase: if palavra.lower() in artigos: print "\nArtigo excluido -->",palavra index = frase.index(palavra) frase.pop(index) frase.sort(lambda x,y: cmp(x.lower(), y.lower())) # Esta precisa de explicação """ cmp() is the built-in function that compares two objects, x and y, and returns a negative number, 0 or a positive number depending on whether x<y, x==y, or x>y On a more verbose approach: >>> def numeric_compare(x, y): >>> return x-y""" print "\n\nPalavras ordenadas:",frase Link to comment Share on other sites More sharing options...
djthyrax Posted December 3, 2007 at 10:40 PM Report Share #152117 Posted December 3, 2007 at 10:40 PM Python claro. Mas já me ownaste, eu já vou nas 60 linhas 😉 Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum! Link to comment Share on other sites More sharing options...
bukz Posted December 3, 2007 at 10:52 PM Report Share #152120 Posted December 3, 2007 at 10:52 PM ena sinto-me msm mal LOL .... a unica cena k consegui fazer foi akilo xD Link to comment Share on other sites More sharing options...
JoaoRodrigues Posted December 4, 2007 at 12:51 AM Report Share #152154 Posted December 4, 2007 at 12:51 AM Na mesma, mostra lá o teu código. Tou curioso pa ver o tal stristr 😉 Link to comment Share on other sites More sharing options...
djthyrax Posted December 4, 2007 at 01:01 AM Report Share #152155 Posted December 4, 2007 at 01:01 AM Está vergonhoso, I admit it, mas foi feito à pressa. Até agora, sei que tenho um bug na contagem dos artigos que vão sendo removidos e o .sort(). #! /usr/bin/python # -*- coding: utf-8 -*- import string def stristr(agulha, palheiro): i = 0 limite = len(agulha) for char in palheiro: if agulha[i] == char: i += 1 elif agulha[i] in string.ascii_lowercase: if agulha[i].upper() == char: i += 1 elif agulha[i] in string.ascii_uppercase: if agulha[i].lower() == char: i += 1 else: i = 0 if i == limite: return True return False palavras = "O Manel disse ao João que o gajo era um ganda maluco lume e para contar \"UM! DOIS! TRÊS!\". Wee, lulz @ umas bifas." artigos = { "os": 0, "o": 0, "as": 0, "a": 0, "uns": 0, "umas": 0, "uma": 0, "um": 0} for sinal in ",.!?;:'\"": palavras = palavras.strip(sinal) palavras = palavras.split() final = [] i = 0 saltar = False for palavra in palavras: for artigo in artigos: if stristr(palavra, artigo): artigos[artigo] += 1 saltar = True break if not saltar and palavra != '': final.append(palavra) else: saltar = False print 'Na frase\n\t%s\n\nforam encontrados e removidos os seguintes artigos:' % (frase) for artigo in artigos: if artigos[artigo] > 0: print "-> %s (%i vezes)" % (artigo, artigos[artigo]) print print "As palavras por ordem alfabética são: (still buggy)" final.sort() #este sort() não faz sort por letra mas por ascii code, daí o bug for palavra in final: print palavra Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now