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?
3 Réponses :
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)
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.
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)
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