2017-01-19 2 views
-1

Есть ли способ использовать цикл for для автоматизации функции? например , если я пишу ..Использование циклов для автоматизации функций-Python 3

def foo (a number): 
    return (a number) 

for i in range(10): 
    print(foo('1{}').format(str(i)) 

Поставляется с AttributeError: 'NoneType' object has no attribute 'format'

+0

'инт в диапазоне (10): печать (Foo (10 + I))', или использовать 'для г в диапазоне (10, 20): печать (Foo (я)) '. Целые числа не являются строками, просто используйте арифметику для создания аргументов. –

+0

Итак, нет, 'str.format()' работает только с строками, потому что это строковый метод. Здесь нет строки. Кроме того, код, который вы отправили, будет генерировать исключение * 'SyntaxError' *, а не ошибку, которую вы требуете получить. –

+0

Так что код - это всего лишь пример того, что я фактически использую, пытается объединить строку, мой плохой должен был сделать это в качестве примера. Хотя это будет то же самое и для численных, изменит его. – reuben

ответ

0

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

def foo(num): 
    print(num) 
num = 0 
for i in range(1,10,1): 
    foo(num + i) 

Итак, что я здесь сделал, взят ваш сценарий и изменил его. Для начала «число» в качестве параметра приведет к синтаксическим ошибкам при попытке определить их. Поэтому я изменил его на «num».

Затем я использовал простую инструкцию печати, чтобы распечатать номер, который входит. Это можно удалить, если вы просто хотите, чтобы цикл с ним циклировал его по номерам. И, конечно, изменение «foo (num + i)» на «print (num + i)».

«num = 0» устанавливает переменную, поэтому мы можем использовать ее позже.

Привет, Jerry

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