J'ai un petit problème avec quelque chose que je dois faire à l'école ...
Ma tâche consiste à obtenir une chaîne d'entrée brute d'un utilisateur (text = raw_input()
) Et je dois imprimer le premier et le dernier mot de cette chaîne.
Est-ce que quelqu'un peut m'aider avec ça? Je cherchais une réponse toute la journée ...
Vous devez d’abord convertir la chaîne en list
mots à l’aide de str.split
puis vous pourrez y accéder comme suit:
>>> my_str = "Hello SO user, How are you"
>>> Word_list = my_str.split() # list of words
# first Word v v last Word
>>> Word_list[0], Word_list[-1]
('Hello', 'you')
Depuis Python 3.x, vous pouvez simplement faire:
>>> first, *middle, last = my_str.split()
Si vous utilisez Python 3, vous pouvez faire ceci:
text = input()
first, *middle, last = text.split()
print(first, last)
Tous les mots sauf le premier et le dernier entreront dans la variable middle
.
Disons que x
est votre contribution. Ensuite, vous pouvez faire:
x.partition(' ')[0]
x.partition(' ')[-1]
Certains pourraient dire qu'il n'y a jamais trop de réponses utilisant des expressions régulières (dans ce cas, cela ressemble aux pires solutions ..):
>>> import re
>>> string = "Hello SO user, How are you"
>>> matches = re.findall(r'^\w+|\w+$', string)
>>> print(matches)
['Hello', 'you']
Vous feriez:
print text.split()[0], text.split()[-1]
Passez simplement votre chaîne dans la fonction suivante :
def first_and_final(str):
res = str.split(' ')
fir = res[0]
fin = res[len(res)-1]
return([fir, fin])
Utilisation :
first_and_final('This is a sentence with a first and final Word.')
Résultat :
['This', 'Word.']