Я учу себя Python и сталкиваюсь с непонятной проблемой. То, что я пытаюсь сделать, это передать список функции, и функция возвращает список, в котором элементы являются суммой чисел вокруг него, но то, что я думал, создало бы некоторые странные результаты, поэтому я сделал отладочную версию код, который все еще демонстрирует поведение, которое выглядит следующим образом:Усекающие числа 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 - такое же поведение происходит.
Я знаю, что, вероятно, я пропустил что-то простое, но ради меня никакое количество поисковых запросов не дает мне решения этой проблемы. Ниже приведен код, который я использую для его выполнения. Интересно отметить: при печати всего списка за пределами цикла 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
Ваш отступ неправильный, вероятно, ошибка копирования/вставки. –
Вы не должны использовать 'list' и' input' в качестве имен переменных, потому что они будут затенять их соответствующие встроенные функции. –
Знаете ли вы, что значения, которые вы добавляете в 'L', являются строками, а не целыми числами? –