Как закончить программу в питоне

Функция print() записывает, то есть «печатает», строку или число на консоли. Оператор return не выводит значение, которое возвращается при вызове функции. Это, однако, приводит к немедленному завершению или завершению функции, даже если это не последний оператор функции.

Во многих других языках функция, которая не возвращает значение, называется процедурой.

В данном коде значение, возвращаемое (то есть 2) при вызове функции foo(), используется в функции bar(). Эти возвращаемые значения печатаются на консоли только тогда, когда используются операторы печати, как показано ниже.

Пример

def foo(): print(«Hello from within foo») return 2 def bar(): return 10*foo() print foo() print bar()

Вывод

Hello from within foo 2 Hello from within foo 20

Как закончить программу в питоне

Функция может возвращать результат. Для этого в функции используется оператор return , после которого указывается возвращаемое значение:

def имя_функции ([параметры]): инструкции return возвращаемое_значение

Определим простейшую функцию, которая возвращает значение:

Python-джедай #7 — Циклы


def get_message(): return «Hello METANIT.COM»

Здесь после оператора return идет строка «Hello METANIT.COM» — это значение и будет возвращать функция get_message() .

Читайте также:
Программа дополнительного образования исследовательская деятельность

Затем это результат функции можно присвоить переменной или использовать как обычное значение:

def get_message(): return «Hello METANIT.COM» message = get_message() # получаем результат функции get_message в переменную message print(message) # Hello METANIT.COM # можно напрямую передать результат функции get_message print(get_message()) # Hello METANIT.COM

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

def double(number): return 2 * number

Здесь функция double будет возвращать результат выражения 2 * number :

def double(number): return 2 * number result1 = double(4) # result1 = 8 result2 = double(5) # result2 = 10 print(f»result1 = «) # result1 = 8 print(f»result2 = «) # result2 = 10

Или другой пример — получение суммы чисел:

def sum(a, b): return a + b result = sum(4, 6) # result = 0 print(f»sum(4, 6) = «) # sum(4, 6) = 10 print(f»sum(3, 5) = «) # sum(3, 5) = 8

Выход из функции

Оператор return не только возвращает значение, но и производит выход из функции. Поэтому он должен определяться после остальных инструкций. Например:

def get_message(): return «Hello METANIT.COM» print(«End of the function») print(get_message())

С точки зрения синтаксиса данная функция корректна, однако ее инструкция print(«End of the function») не имеет смысла — она никогда не выполнится, так как до ее выполнения оператор return возвратит значение и произведет выход из функции.

Однако мы можем использовать оператор return и в таких функциях, которые не возвращают никакого значения. В этом случае после оператора return не ставится никакого возвращаемого значения. Типичная ситуация — в зависимости от опеределенных условий произвести выход из функции:

Расчёт времени выполнения программы на python #short


def print_person(name, age): if age > 120 or age < 1: print(«Invalid age») return print(f»Name: Age: «) print_person(«Tom», 22) print_person(«Bob», -102)

Читайте также:
Пушкинская карта как подключить учреждение культуры к программе

Здесь функция print_person в качестве параметров принимает имя и возраст пользователя. Однако в функции вначале мы проверяем, соответствует ли возраст некоторому диапазону (меньше 120 и больше 0). Если возраст находится вне этого диапазона, то выводим сообщение о недопустимом возрасте и с помощью оператора return выходим из функции. После этого функция заканчивает свою работу.

Однако если возраст корректен, то выводим информацию о пользователе на консоль. Консольный вывод:

Name: Tom Age: 22 Invalid age

Источник: metanit.com

Python-сообщество

[RSS Feed]

  • Начало
  • » Python для новичков
  • » выход из программы

#1 Окт. 1, 2011 23:55:36

выход из программы

есть конструкция try…except после except надо чтобы прога завершилась. как это сделать?

def f(val):
try:
a=input()
val+=int(a)
return val
except TypeError:
print(‘error’)
#вот здесь хочу что бы прога завершилась

#код продолжается дальше

#2 Окт. 2, 2011 05:11:02

выход из программы

import sys
sys.exit()

#3 Окт. 2, 2011 08:30:22

выход из программы

логичнее raise — получите traceback с дополнительным пояснением причин падения

#4 Окт. 2, 2011 13:48:24

выход из программы

doza_and, raise не пойдет….

#5 Окт. 3, 2011 19:39:40

выход из программы

doza_and
логичнее raise — получите traceback с дополнительным пояснением причин падения

Я бы так не делал — райс это падение, а не завершение.
лучше сделать так:

try:
.
except Ecxeption, e:
# logging e
sys.exit(1)

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

Отредактировано (Окт. 3, 2011 19:47:28)

#6 Окт. 4, 2011 10:16:35

выход из программы

#7 Окт. 4, 2011 16:53:22

выход из программы

atexit — это не то. Он нужен для вызова cleanup функции уже после того, как программа завершилась.
Кстати, можно делать raise SystemExit (аналог sys.exit)

Читайте также:
Программы по которой работает учитель английского

#8 Окт. 4, 2011 17:04:23

выход из программы

а что делать, если нужно выполнять и выполнять модуль, до тех пор пока юзер не наиграется и на вопрос “выйти?” не ответит “Да”?
Пыталась так (mymodule запускается из модуля startmodule.py)

while 1:
import mymodule
ans = input(‘выйти?’)
if ans=’yes’:
break

#9 Окт. 4, 2011 18:29:36

выход из программы

#10 Окт. 5, 2011 03:02:57

выход из программы

Liu
а что делать, если нужно выполнять и выполнять модуль, до тех пор пока юзер не наиграется и на вопрос “выйти?” не ответит “Да”?
Пыталась так (mymodule запускается из модуля startmodule.py)

#!/usr/bin/env python3

import sys

ans = ‘no’
while ans != ‘yes’:
try:
del sys.modules[‘mod’]
except KeyError:
pass
import mod
ans = input(‘выйти? (yes/no) ‘)

print(‘Bye’)
print(‘Hello’)
в третьем питоне нет глобальной reload()

Отредактировано (Окт. 5, 2011 03:04:45)

Источник: python.su

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru