2017-01-10 3 views
0

Je souhaite que les utilisateurs saisissent des mots/nombres/phrases aléatoires. S'ils ont entré plus de 5 alors ils reçoivent un message d'erreur et si l'entrée 5 ou moins alors j'imprime la liste verticalement. Je ne sais pas quel code utiliser pour ne pas compter les espaces blancs. De plus, je veux compter le nombre de mots/nombres, pas le nombre de caractères. Si vous pouviez jeter un oeil à mon code et donner de l'aide, ce serait génial!Comptage des arguments dans des listes et des listes d'impression

myList = [] 

myList = raw_input("Enter words,numbers or a phrase (a phrase should be entered between two quotations)...") 

if len(myList) > 5: 
print('Error') 

else: 
#print output 
for variable in L: 
    print variable 
+2

Veuillez corriger l'indentation –

+3

'raw_input (" Entrez des mots ou des nombres ... "). Split()' divisera le texte en mots pour vous. –

+0

La suggestion précédente divisera le texte en une «liste» de mots pour vous. – martineau

Répondre

1

Essayez quelque chose comme ceci en utilisant str.split() pour retourner une liste des mots dans la chaîne en utilisant le séparateur par défaut d'un espace:

myList = [] 

while(True): 
    myList = raw_input("Please enter words or numbers: ") 
    if(len(myList.split())) <= 5: 
     break 
    else: 
     print("Error: You entered more than 5 arguments, Try again...") 

for item in myList.split(): 
    print(item) 

Essayez-here!

0

Le code de travail pour ce que vous voulez est le suivant:

# I separate the input text by the spaces 
data = raw_input("Enter something... ").split(" ") 

# handle the data 
if len(data) > 5: 
    print("Only 4 or less arguments allowed!") 
else: 
    for variable in data: 
     print(variable) 

Maintenant, cela ne l'empêche pas l'utilisateur d'insérer d'autres caractères comme !, $%"#$, afin de traiter ce cas, vous devriez vérifier quelques-unes des réponses à cette question: Stripping everything but alphanumeric chars from a string in Python

Amusez-vous!

+0

ok super. Aussi, si je veux utiliser des expressions comme "bonjour monde" et que je veux que cela compte comme un, cela fonctionnera-t-il aussi? – user3093377

+0

Si vous voulez ce comportement faites vos mots d'entrée utilisateur séparés par des virgules et utilisez 'split (", ")' – Zanzag