Essayer de créer une boucle en python qui reçoit l'utilisateur de saisir la longueur de l'index de tableau

voix
1

Je suis vraiment nouveau à Python, et je suis en train d'écrire un programme python qui demande à l'utilisateur combien de morceaux de données qu'ils ont, et les entrées de l'utilisateur que les données qui va dans un tableau. Le problème que je suis en cours d'exécution en est que je dois définir la longueur du tableau pour que le programme fonctionne, mais je veux l'utilisateur de définir que « x ». De cette façon, l'utilisateur peut mettre une quantité spécifique de données dans le tableau.

Voici ce que j'ai

i = 0

x = int(input(How many iterations))

odds = [] #This is where I do not know how to define the array as whatever amount of pieces of data the user wants.

while i < x:
    odds[i] = input(Enter number )
    i = i+1

Le message d'erreur indique

IndexError: liste index d'affectation hors de portée

Je suis assez nouveau à la programmation, de sorte que toute aide serait très apprécié. Je comprends tout à fait que je vais peut-être sur ce problème TOTALEMENT dans le mauvais sens, donc s'il vous plaît laissez-moi savoir comment vous le faire. Merci!

Créé 07/11/2018 à 20:17
source utilisateur
Dans d'autres langues...                            


3 réponses

voix
1

oddsest vide alors odds[i]ne va pas travailler. essayez la odds.append(input("..."))place, ce qui ajoutera le nouvel élément à la fin deodds

Créé 07/11/2018 à 20:21
source utilisateur

voix
0

Le script tente de référencer une entrée dans la liste qui n'existe pas. Utilisez appendà ajouter. Aussi , vous n'avez pas besoin d' une whileboucle pour cela. Code corrigé:

x = int(input("How many iterations"))
odds =[]

for i in range(x):
    odds.append(float(input("Enter number: ")))
Créé 07/11/2018 à 20:23
source utilisateur

voix
0

Dans la commande

odds[i] = input("Enter number ")

vous vouliez changer le imembre -ème de la oddsliste - mais ce membre n'existe pas encore .

Utilisation

odds.append(input("Enter number "))

au lieu.


Note: Et, au lieu de la construction

while i < x:
    ...
    i = i + 1

vous pouvez utiliser de manière plus Pythonic

for __ in range(x):
    ...

sans qu'il soit nécessaire d'utiliser la variable i. ( __- deux caractères de soulignement - est un nom Python correct utilisé pour pour les variables jamais utilisé ).

Ainsi, votre code complet changera pour

x = int(input("How many iterations: "))
odds = []
for __ in range(x):
    odds.append(input("Enter number: "))     # Note: you will append strings, not numbers
Créé 07/11/2018 à 20:22
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more