Усеченные числа Python в массиве - PullRequest
0 голосов
/ 03 марта 2012

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

Когда я создаю целочисленный массив и передаю его функции, которая затем использует цикл for для печати отдельных значений списка, числа, следующие за первым в каждом int, усекаются.

Например, следующий вход и выход:

Please enter a number: 101
Please enter a number: 202
Please enter a number: 303
Please enter a number: .
1
2
3

Это происходит независимо от ввода, если его 10, 101 или 13453 - то же самое происходит.

Я знаю, что, вероятно, упускаю что-то простое, но ради меня, никакое прибегание к поиску в Google не дает мне решения этой проблемы. Ниже приведен код, который я использую для выполнения этого. Интересно отметить: при печати всего списка вне цикла for в любой точке он возвращает полный и правильный список (то есть ['101', '202', '303'])

Спасибо!

temp = list()

def sum(list):
    print list
    for i in range(1, len(list)+1):
        print i
    return temp

L = list()
while True:
    input = raw_input("Please enter a number: ");
    if input.strip() == ".":
        break
    L.append(input);

print L

L2 = sum(L)
print L2

Ответы [ 2 ]

5 голосов
/ 03 марта 2012

Цикл

for i in range(1, len(my_list)+1):
    print i

перебирает числа от 1 до len(my_list), а не элементы списка.Чтобы сделать последнее, используйте

for x in my_list:
    print x

(я переименовал list в my_list, чтобы избавить вас от очередной головной боли.)

2 голосов
/ 03 марта 2012

Вы печатаете счетчик, а не элемент списка. Это то, что вы хотите:

for i in list:
    print i

список сам по себе итеративен, и вам не нужен счетчик для его зацикливания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...