2017-09-24 7 views
-1

Je veux que l'utilisateur de mon programme fournisse un nombre, puis l'utilisateur doit entrer ce nombre de nombres.Comment insérer autant de nombres que ceux mentionnés avant d'utiliser raw_input?

Mon code de collecte d'entrée

inp1 = int(raw_input("Insert number: ")) 
inp2 = raw_input("Insert your numbers: ") 

Exemple:

Si l'utilisateur saisit 3 à Insert number: alors ils ont à l'entrée de trois chiffres (avec des espaces entre eux) à Insert your numbers: . Comment limiter le nombre de valeurs dans la deuxième réponse à la quantité spécifiée dans la première réponse?


Je suppose, nous devrions utiliser une liste pour travailler avec.

my_list = inp2.split() 

J'utilise Python 2.7

+1

Vous pouvez certainement diviser en utilisant l'espace 'inp2.split ('')' –

+0

Demandez-vous comment limiter le nombre de valeurs en seconde réponse à la quantité acquise dans la première réponse? – whitebeard

+0

@whitebeard Oui, c'est à peu près ce que je veux. – dgr379

Répondre

2

Utilisez la fonction len pour obtenir la longueur de la liste, puis tester si elle est correcte:

inp1 = int(raw_input("Insert number: ")) 
inp2 = raw_input("Insert your numbers: ").split() 
while len(inp2) != inp1: 
    print "Invalid input" 
    inp2 = raw_input("Insert your numbers: ").split() 

Une autre approche serait d'obtenir chaque entrée sur une nouvelle ligne séparément, avec une boucle:

inp1 = int(raw_input("Insert number: ")) 
inp2 = [] 
for i in range(inp1): 
    inp2.append(raw_input("Enter input " + str(i) + ": ")) 

De cette façon, il n'y a pas invali d entrées; l'utilisateur doit entrer le bon nombre de chiffres. Cependant, ce n'est pas exactement ce que votre question posée.

+0

La deuxième approche rend le programme plus convivial! Agréable! – whitebeard