2015-12-29 7 views
-1

Я написал следующий простой скрипт Python:Почему я не получаю ожидаемый результат?

def add(x,y): 
    print '%d + %d = ' % (x,y) 
    return x+y 

def subtract(x,y): 
    print '%d - %d = ' % (x,y) 
    return x-y 

def multiply(x,y): 
    print '%d x %d = ' % (x,y) 
    return x*y 

def divide(x,y): 
    print '%d/%d = ' % (x,y) 
    return x/y 

x = 8 
y = 4 

add(x,y) 
subtract(x,y) 
multiply(x,y) 
divide(x,y) 

Вопрос заключается в том, что я не получаю результат каждой операции, и результат выглядит следующим образом:

8 + 4 = 
8 - 4 = 
8 x 4 = 
8/4 = 

Что я упускаю чтобы результат появился после знака =?

+2

'печать (добавить (х, у))'? <--- распечатать! –

+4

Вы ничего не делаете с возвращаемым значением? –

+0

Если вы введете выражение в интерпретатор в интерактивном режиме, Python автоматически распечатает его значение, но это всего лишь интерактивная вещь. 'return' и' print' выполняют почти несвязанные задания. – user2357112

ответ

0

Вы return x + y от вашей функции add, поэтому значение x + y отправляется туда, где вы его назвали. Однако на сайте у вас просто есть add(x, y); вы так не «ловите» его. Вы можете попробовать:

result = add(x, y) 
print(result) 

или просто:

print(add(x, y)) 
1

Ваши функции печати только уравнение часть. Вы никогда не печатаете результат выражения Python. return - это не то же самое, что и print().

Вы можете спутать с поведением режима интерактивного интерпретатора Python, где результат любого выражения выполненным на >>>строки является эхом (если это не произвело особое значение None). Запуск сценария этого не делает, выражения автоматически не повторяются таким образом. Вам необходимо явно распечатать результат:

def add(x,y): 
    result = x + y  
    print '%d + %d = %' % (x, y, result) 
    return result 

Лучше не печатать внутри таких функций. Если вы хотите использовать эту функцию и не распечатать уравнение и результат, вам нужно создать новую функцию. Лучше напечатать вне функции:

def add(x, y): 
    return x + y 

def subtract(x, y): 
    return x - y 

def multiply(x, y): 
    return x * y 

def divide(x, y): 
    return x/y 

x = 8 
y = 4 

print '%d + %d = %d' % (x, y, add(x, y)) 
print '%d - %d = %d' % (x, y, subtract(x, y)) 
print '%d * %d = %d' % (x, y, multiply(x, y)) 
print '%d/%d = %d' % (x, y, divide(x, y)) 
Смежные вопросы