Eis mais uma versao

Eis minha versao...

~ xiru$ cat cap.py
def Capitalize(texto):
    c = ['de', 'da', 'dos', 'e']
    return " ".join([e in c and e or e.capitalize() for e in texto.split()])

print Capitalize('fabiano weimar dos santos')
print Capitalize('general lima e silva')
print Capitalize('rodrigo dias arruda senra')

On 8/19/05, Leandro Zanuz <[EMAIL PROTECTED]> wrote:
Tenta utilizar este, se faltar de, do, etc...so incluir na lista...
Té+

minhaString = "joão josé do amaral da silva de carvalho dos santos"
aux=""
nome = minhaString.split(" ")
nome = map(string.capitalize,nome)
for i in range(int(len(nome))):
  if nome[i] in ['Da','Das','De','Do','Dos']:
    aux += nome[i].replace("D","d")+" "
  else:
    aux += nome[i]+" "
print aux
return printed


Rodrigo Dias Arruda Senra escreveu:

[Tania Andrea]
> > Pessoal,
> >
> > Alguém tem um script que torne as primeiras letras de
> > um nome em maiúscula? Não esquecendo que este script
> > trata strings que possuam de, da, etc.
> >
> > Fulana Pereira *de* Oliveira
> > Fulana Pereira *da* Silva
> > Sandra *de* Sá
> >
> > As funções python que conheço transformam só a
> > primeira em maíuscula | tudo maiúsculo | tudo
> > minúsculo.
> > O algoritmo é fácil imaginar mas se tiver pronto
> > melhor :)

[ Luis Flavio Rocha ]:
> eu preciso de um algorítmo exatamente com estas características.
> Vou desenvolvê-lo no final de semana.

Por que esperar até o fim-de-semana que ainda está tão longe ;o)

>>> def Capitalize(texto):
...     return " ".join([i.lower()!="de" and i.capitalize() or "de" for i in texto.split()])
...
>>> Capitalize("rodrigo dias arruda senra")
'Rodrigo Dias Arruda Senra'
>>> Capitalize("mem de sa")
'Mem de Sa'

Naturalmente, este on-line-hack tem alguns problemas como não
considerar "da","das", "do":
- Maria das Dores
- José da Silva
- Edson Arantes do Nascimento
- E por que não: Senhor dos Anéis

Mas já fica de inspiração para a galera ;o)
Eu faria uma lista dos conectivos ('de','da','das','dos','do')
e testaria alcomo como:
  i not in conectivos
Para uma lista tão pequena este tipo de teste é mais rápido que
uma expressão regular (não testado).

Existe uma regra gramatical para títulos ?
Talvez nos manuais de redação e estilo da Folha ou do Estadão ?

Quem for em frente favor mandar uma versão para o python-brasil
ou melhor colocar no www.pythonbrasil.com.br.

Abração,
Senra


--
Leandro Zanuz   .
Núcleo de Processamento de Dados
Universidade de Caxias do Sul



--
Fabiano Weimar dos Santos
Plone Developer and Consultant

Para enviar uma mensagem: [EMAIL PROTECTED]
Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED]



Yahoo! Grupos, um serviço oferecido por:


Links do Yahoo! Grupos

Responder a