Reputation: 1
i'm new on python and having some issues about take from a spefcific index to other. EX: i request a input of the name from every parent from the user, and want to print just the name of the brothers, but dont want to describe every index like:
parent = input('Write the name of all your parents: ') print(f'The name of your brothers is {parent[1]}, {parent[2]}, etc...)
i was thinking if has a way to select like print(f'... {parent[1:4]}...')
PS: i'm from Brazil, so my list is in portuguese.
My code actually:
familia = input('Digite o nome da sua família! Seus pais, seus irmãos e avós: ')
parentes = familia.split(' ')
print(f'o seu nome é {parentes[0].capitalize()}.')
print(f'o nome do seu pai é {parentes[1].capitalize()}.')
print(f'o nome da sua mãe é {parentes[2].capitalize()}.')
print(f'o nome dos seus irmãos são {parentes [3:8]}.')
print(f'o nome dos seus avós paternos é {parentes [8:10]}.')
print(f'o nome dos seus avós maternos é {parentes [10:12]}.')
quantos_sao = len(parentes)
print(f'a sua familia tem {quantos_sao} pessoas!'.capitalize())
The 3 firts results are perfect, but when i need select more names goes like this:
o seu nome é Gean,.
o nome do seu pai é Enio,.
o nome da sua mãe é Denise,.
o nome dos seus irmãos são ['valentina,', 'anthony,', 'rafael,', 'caroline,', 'gustavo,'].
o nome dos seus avós paternos é ['ademar,', 'gisela,'].
o nome dos seus avós maternos é ['leonilda,', 'amazir'].
A sua familia tem 12 pessoas!
Someone, could help me?
Upvotes: -6
Views: 73
Reputation: 1
Yes. Python support slice indexing. arr[start: end]
remember end will be your desired end index + 1.
arr = [1, 2, 3, 4, 5]
if you want to get index from 1 to 3, then use
print(arr[1: 4])
there is a reference link. https://www.geeksforgeeks.org/python-list-slicing/
Upvotes: -1
Reputation: 51
Solution:
parentes = familia.split(' ')
parentes = [name.strip(',') for name in parentes]
print(f'o seu nome é {parentes[0].capitalize()}.')
print(f'o nome do seu pai é {parentes[1].capitalize()}.')
print(f'o nome da sua mãe é {parentes[2].capitalize()}.')
print(f'o nome dos seus irmãos são {", ".join(parentes[3:8])}.')
print(f'o nome dos seus avós paternos é {", ".join(parentes[8:10])}.')
print(f'o nome dos seus avós maternos é {", ".join(parentes[10:12])}.')
quantos_sao = len(parentes)
print(f'a sua familia tem {quantos_sao} pessoas!'.capitalize())
", ".join(...): This takes the list elements and joins them into a single string, where each element is separated by a comma and a space.
Upvotes: 2