Jump to content

[Resolvido] Ajuda programa python


Guest s33k_

Recommended Posts

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

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

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

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.