2016-01-27 3 views
-3

Я хотел бы спросить, как мы можем использовать переменные для определения размера массива в Python (я имею в виду список). Я написал несколько фрагментов кода ниже, не могли бы вы мне позволить знаете, что не так с кодом? спасибо ..Ввод переменных в списки в Python

elif(op=='+') : 
    size=int(input("Please enter how many numbers you want to add")) 
    for x in range(0,size): 
    print("Please enter the number",x+1) 
    inp=(input()) 
    num[x]=inp #<<<-----the error comes up when trying to run this expression 
    for z in range(0,size): 
    num[z]=num[z]+num[z+1]  
    print("The result is " , num[size]) 
+2

как вы думаете, это так? Отступы кажутся одной проблемой. – mhawke

+0

- это 'num', уже объявленный как python dict или список? – DhiaTN

+0

Вы пытаетесь объединить строку z или добавить числа в inp как целые числа? – sabbahillel

ответ

0

Помимо проблемы в ом, что @Daniel ответов, результат ввода() является строкой. Таким образом, ваш код будет просто конкатенировать числа при прохождении списка. Кроме того, почему вы постоянно помещаете конкатенацию в список? Также при переходе в диапазон вы добавите введенное количество цифр, но операция индекса переходит от индекса 0 к индексу «размер», который является еще одним, чем на самом деле в списке.

for z in range(0,size): 
    num[z]=num[z]+num[z+1]  
print("The result is " , num[size]) 

Таким образом, когда г == размер -1, вы получите индекс вне диапазона при попытке сослаться Num [г + 1], а также в вашем отпечатке, который пытается ссылаться Num [размер]

дополнительно, если вы собираетесь добавлять вместо конкатенации строки ввода, вы должны сказать вх = INT (вход())

size=int(input("Please enter how many numbers you want to add")) 
mytotal = 0 
for x in range(0,size): 
    # The next two could have been on one line 
    myval = int(input("Please enter the number")) 
    mytotal += myval #This is split for clarity 
print mytotal 
+0

Это сработало, спасибо. Кроме того, если я хочу добавить плавающие числа, что я должен вводить вместо int? – Ibrahim

+0

@ Ibrahim Вы бы напечатали float() – sabbahillel

+0

Okay @sabbahillel, еще раз спасибо. – Ibrahim

1

списки Python не инициализируются с определенным размером, но динамично расти. Используйте append для добавления элементов:

size=int(input("Please enter how many numbers you want to add")) 
num = [] # start with an empty list 
for x in range(0,size): 
    print("Please enter the number",x+1) 
    inp = input() 
    num.append(inp) # add elements 
+0

Обратите внимание, что результат inpu() будет устанавливать inp в строку. – sabbahillel

+0

Спасибо за ваш ответ @ Даниэль. – Ibrahim

Смежные вопросы