Dúvida em um problema em Python, de reorganização de nomes, alguém poderia me ajudar? [RESOLVIDO]

1. Dúvida em um problema em Python, de reorganização de nomes, alguém poderia me ajudar? [RESOLVIDO]

Lexus
LexusRX

(usa Outra)

Enviado em 13/10/2020 - 21:34h

Sou bem novo na área de programação e estou com muita dificuldade nesse problema, não estou sabendo nem começar, alguém poderia me dar uma luz? Sou novo nesse fórum também, então se a pergunta estiver ruim, me desculpe.

Esse é o problema:

Escreva um programa que leia o nome de uma pessoa e imprima esse nome sem espaços iniciais e finais, com apenas um espaço entre as partes que compõem o nome, colocando a primeira letra de cada parte do nome em maiúscula e as demais em minúscula. Exemplos Ler Imprimir ‘ antonio carlos bonfim ‘ : ‘Antonio Carlos Bonfim’ ‘ MARIA da silva souZA ‘ : ‘Maria Da Silva Souza’


  


2. Re: Dúvida em um problema em Python, de reorganização de nomes, alguém poderia me ajudar? [RESOLVIDO]

Gustavo Fernandes Moreira
Gustavo_fm

(usa Debian)

Enviado em 13/10/2020 - 22:25h

Há muitas formas de se fazer, essa é uma delas:
nomes = input("Digite um nome: \n")
nomes = nomes.split(" ")
separador = " "
cleaned_nomes = []
for x in nomes:
if len(x) != 0:
cleaned_nomes.append(x.capitalize())
str = separador.join(cleaned_nomes)
print(str)



3. Re: Dúvida em um problema em Python, de reorganização de nomes, alguém poderia me ajudar? [RESOLVIDO]

Matheus
pylm

(usa Gentoo)

Enviado em 14/10/2020 - 00:12h


#!/usr/bin/env python3
# -*- coding: utf-8 -*-

nome = 'MAria souza '
novo_nome = ''

# Separa os nomes a cada espaço
for i in nome.split(' '):
# Troca a primeira letra da string pra maiúscula e adiciona um espaço no final
novo_nome += f'{i.capitalize()} '

# Remove espaços antes e depois da string
print(novo_nome.strip())


Também dá pra usar o "strings.capwords" mas aí vai precisar de um import e não vais aprender nada com porra nenhuma.



4. Re: Dúvida em um problema em Python, de reorganização de nomes, alguém poderia me ajudar? [RESOLVIDO]

Lexus
LexusRX

(usa Outra)

Enviado em 14/10/2020 - 10:59h

Gustavo_fm escreveu:

Há muitas formas de se fazer, essa é uma delas:
nomes = input("Digite um nome: \n")
nomes = nomes.split(" ")
separador = " "
cleaned_nomes = []
for x in nomes:
if len(x) != 0:
cleaned_nomes.append(x.capitalize())
str = separador.join(cleaned_nomes)
print(str)


Teria como fazer sem o uso do capitalize?


5. Re: Dúvida em um problema em Python, de reorganização de nomes, alguém poderia me ajudar?

Matheus
pylm

(usa Gentoo)

Enviado em 14/10/2020 - 11:39h

LexusRX escreveu:

Gustavo_fm escreveu:

Há muitas formas de se fazer, essa é uma delas:
nomes = input("Digite um nome: \n")
nomes = nomes.split(" ")
separador = " "
cleaned_nomes = []
for x in nomes:
if len(x) != 0:
cleaned_nomes.append(x.capitalize())
str = separador.join(cleaned_nomes)
print(str)


Teria como fazer sem o uso do capitalize?


Cê pode remover o string e escrever o alfabeto minúsculo e maiúsculo manualmente.


#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import string

upper = string.ascii_uppercase
lower = string.ascii_lowercase
nome = 'maria'


def capitalize(s):
"""Capitalize first letter of a given string

:s: string
"""

# Testa se a primeira letra da string existe na lista de caracteres
# maiúsculos, se existir retorn a própria string
if s[0] in upper:
return s
# Se não existir então pega o index da letra na lista de caracteres
# minúsculos e troca a primeira letra da string original pela letra
# maiúscula equivalente
else:
cap_letter = lower.index(s[0])
return upper[cap_letter] + s[1:]



6. Re: Dúvida em um problema em Python, de reorganização de nomes, alguém poderia me ajudar? [RESOLVIDO]

Lisandro Guerra
Lisandro

(usa Linux Mint)

Enviado em 14/10/2020 - 19:06h

Já obteve uma boa ajuda para começar.
Agora aconselho a pesquisar por si, ou não irás aprender nada.

Abraço e bons estudos.