1
votes

Capitaliser en python

Je veux écrire un programme qui demande d'abord à l'utilisateur combien de lignes puis le programme doit mettre en majuscule l'entrée ici est le code:

Hello World This Is Me

l'entrée devrait être comme ceci:

XXX

le résultat devrait être comme ceci:

Hello World
This Is Me

mais dans mon code le résultat est:

2
hello world
this is me

comment puis-je résoudre ce problème?


0 commentaires

3 Réponses :


0
votes

Le problème est que votre instruction d'impression spécifie que la "fin" est un espace. La valeur par défaut est un caractère de nouvelle ligne, qui vous donnera ce que vous voulez.

Modifier: vous devez également recombiner les mots avant d'ajouter la chaîne à votre liste. Cela préserve le regroupement par phrase.

while counter < n:
    if  n > 10:
        print('!')
        n=int(input(''))
    else:
        name=input('')
        sp = name.split(' ')
        name3.append(" ".join([i.capitalize() for i in sp]))
        counter +=1
    
for i in name3:
     print(i)


3 commentaires

quand je supprime end = '' alors chaque mot s'imprime dans une nouvelle ligne, je veux imprimer chaque ligne en entrée sur une ligne séparée


Cela ne marche pas. La majuscule n'agit que sur le premier caractère de la chaîne, le résultat serait donc Hello world et non Hello World comme demandé


J'ai réalisé que j'avais mal compris ce que vous vouliez. J'ai édité la réponse - j'espère que cela fait ce que vous vouliez.



3
votes

Vous ne devez pas stocker les jetons indépendamment sur la liste:

n=int(input(''))
1<=n<=10
name3 = []
counter = 0

while counter < n:
    if  n > 10:
        print('!')
        n=int(input(''))
    else:
        name=input('')
        sp = name.split(' ')
        name2 = []
        # store capitalized tokens on a new list
        for i in sp:
            name2.append(i.capitalize())
        # join the tokens back together and append
        name3.append(' '.join(name2))
        counter +=1

# use '\n' as suggested by others
for i in name3:
     print(i)


0 commentaires

0
votes

Essayez d'utiliser ceci dans le bloc else.

name=input('')
sp = name.split(' ')
name2 = []
for i in sp:
    name2.append(i.capitalize())
name3.append(' '.join(name2))
counter +=1


0 commentaires