2013-06-15 3 views
-5

Я пытаюсь сделать измерительную машину с помощью python, но когда я вхожу в измерения, она просто продолжается с кодом, я хочу, чтобы он прекратил обработку после получения результата, вот код I сделали до сих пор:Функция «return»

мне это нужно, чтобы остановить после того, как «print math.sqrt(int(h1)**2 + int(h2)**2)»

need = raw_input("What do you need to Use?") 

if need == "pythagoras" or "Pythagoras": 
    pythagoras = raw_input("What side do you Need?") 

if pythagoras == "hypotenuse" or "Hypotenuse": 
    h1 = int(raw_input("Known Side 1")) 
    h2 = int(raw_input("Known Side 2")) 

import math 
print math.sqrt(int(h1)**2 + int(h2)**2) 
+3

Что вы имеете в виду «это только идет на с кодом "? – BrenBarn

+0

Если после этого 'print' нет кода, скрипт автоматически остановится. А во-вторых, 'return' работает только внутри функции. –

+0

Извините, у меня есть больше кода, но это все, что мне нужно отображать, потому что это все равно, так или иначе, он просто переходит к следующему вопросу, но я хочу, чтобы он остановился после этого кода –

ответ

4

Вызов sys.exit немедленно прекратить выполнение программы, как return делает для функций:

import sys 

... 
print math.sqrt(int(h1)**2 + int(h2)**2) 
sys.exit() 
+0

спасибо, плохо попробуйте –

+2

Не забудьте «импортировать sys». Если вы не хотите импортировать, используйте 'raise SystemExit, 0' (это то же самое). – Maroun

+0

его не работает, будет ли это потому, что im использует python 2.7.2? –

0

НЕ НУЖЕН ИМПОРТ SYS, ̶ с выходом (̶) ̶ МОЖЕТ ̶e̶x̶i̶t̶.̶

Это более чистое, если передача 0 аргумент (хороший выход):

sys.exit(0) 
+1

'exit()' предназначен в первую очередь для интерактивного использования. Он определен в 'site.py' и поэтому может быть удален в зависимости от того, как выполняется настройка сайта. Обратите внимание, что это заметно [отсутствует в документации] (http://docs.python.org/2/library/functions.html). – user4815162342

+1

Спасибо за информацию, я нашел, что использовал, но с этой информацией лучше sys.exit. Но я думаю, что лучше в аргументе sys.exit pass 0: sys.exit (0) для более чистого и лучшего обучения. – JHG