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
- Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/zope-pt/
- Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
- O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!.