2014-08-22 2 views
-2
def square(x): 
    x = 2**x 

    x = 2.0 
    while x < 100.0: 
    print x, '\t', square(x) 
    x = square(x) 

Я попытался распечатать. Но он не будет печатать. То, что я действительно хотел, было квадратами 2. Но это не будет печать? Что я делаю не так?Почему мои квадратные числа не печатаются?

+2

'x = 2.0' просто собирается сбросить x до' 2.0' каждый раз, когда вы запустите эту функцию. поэтому вы делаете 'x = 2^x' и выбрасываете это значение. –

+1

У вас бесконечная рекурсия - вы вызываете 'square (x)' внутри определения 'square (x)'. – Barmar

+0

Вы делаете это бесконечным рекурсией, просто возвращаете значение – Tushar

ответ

0

Вы можете даже сделать его похожим

while i<100.0: 
    print x**2,"\t" 
    i+=1#If you increment i by one 

ошибку вы сделали это не возвращает Значения Добавить заявление возвращения sqvalue где sqvalue является квадратом значения вы даете в качестве входных данных.

def square(int x): 
    sqvalue=x**2 
    return sqvalue 

или записать его в одной функции линии

def square(int x): 
    return x**2 

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

0

вы должны вернуть значение.

def square(x): 
    y = 2**x 
    return y 

и приращение x значение.

while x < 100.0: 
    print x, '\t', square(x) 
    x += increment_value 

Я думаю square(x) = x^2 not 2^x?

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