В чем разница между return и break в python? Пожалуйста, объясните, что они делают в цикле и функциях? спасибо
В чем разница между возвратом и перерывом в python?
Ответ 1
 break используется для завершения цикла преждевременно, а return - это ключевое слово, используемое для возврата возвращаемого значения вызывающей функции. Если он используется без аргумента, он просто заканчивает функцию и возвращается туда, где ранее выполнялся код.
Есть ситуации, когда они могут выполнять одну и ту же цель, но вот два примера, чтобы дать вам представление о том, что они используются для
 Использование break
Итерирование над списком значений и разбиение, когда мы увидели число 3.
def loop3():
    for a in range(0,10):
        print a
        if a == 3:
            # We found a three, let stop looping
            break
    print "Found 3!"
loop3()
будет выдавать следующий вывод
0
1
2
3
Found 3!
 Использование return
Вот пример того, как return используется для возврата значения после того, как функция вычислила значение на основе входящих параметров:
def sum(a, b):
    return a+b
s = sum(2, 3)
print s
Вывод:
5
Сравнение двух
Теперь, в первом примере, если после цикла ничего не происходило, мы могли бы так же использовать return и "выскочить" из функции немедленно. Сравните результат с первым примером, когда мы используем return вместо break:
def loop3():
    for a in range(0, 6):
        print a
        if a == 3:
            # We found a three, let end the function and "go back"
            return
    print "Found 3!"
loop3()
Выход
0
1
2
3
		Ответ 2
  break используется для завершения цикла, в то время как  return используется для завершения функции (и возврата значения).
 Существует также  continue в качестве средства для перехода к следующей итерации без завершения текущей.
 return иногда может использоваться несколько, как перерыв, когда зацикливание, примером может быть простой функцией поиска, чтобы найти what, lst what в lst:
def search(lst, what):
    for item in lst:
        if item == what:
            break
    if item == what:
        return item
  И лучше, эквивалентная функция, с return:
def search(lst, what):
    for item in lst:
        if item == what:
            return item # breaks loop
Подробнее о простых высказываниях читайте здесь.
На уровне инструкций вы можете видеть, что операторы делают разные вещи:
 return просто возвращает значение ( RETURN_VALUE) вызывающей стороне:
    >>> import dis
    >>> def x():
    ...     return
    ... 
    >>> dis.dis(x)
      2           0 LOAD_CONST               0 (None)
                  3 RETURN_VALUE        
  break останавливает текущий цикл ( BREAK_LOOP) и  BREAK_LOOP:
>>> def y():
...     for i in range(10):
...         break
... 
>>> dis.dis(y)
  2           0 SETUP_LOOP              21 (to 24)
              3 LOAD_GLOBAL              0 (range)
              6 LOAD_CONST               1 (10)
              9 CALL_FUNCTION            1
             12 GET_ITER            
        >>   13 FOR_ITER                 7 (to 23)
             16 STORE_FAST               0 (i)
  3          19 BREAK_LOOP          
             20 JUMP_ABSOLUTE           13
        >>   23 POP_BLOCK           
        >>   24 LOAD_CONST               0 (None)
             27 RETURN_VALUE  
		Ответ 3
 return завершит всю функцию, а break просто закроет цикл
Пример:
def test_return()
    for i in xrange(3):
        if i==1:
            print i
            return i
    print 'not able to reach here'
def test_break()
    for i in xrange(3):
        if i==1:
            print i
            break
    print 'able to reach here'
test_return()  # print:  0 1
test_break()  # print:  0 1 'able to reach here'   
		Ответ 4
Возврат завершает определение в точную точку, на которую он вызывается, передавая переменную после нее непосредственно из определения. Разрыв приведет только к завершению цикла, в котором он находится.
Например
def Foo():
    return 6
    print("This never gets printed")
bar = Foo()
Это сделает бар равным шести. Код после оператора return никогда не будет запущен.
Пример разрыва:
def Loop():
    while True:
        print("Hi")
        break
Loop()
Это будет печататься только один раз, поскольку оператор break вызовет конец бесконечного цикла while.
Ответ 5
Посмотрим на пример:
def f(x, y):
    n = 0
    for n in range(x, y):
         if not n % 2: continue
         elif not n % 3: break
    return n
print((f(1, 10)))
Отпечатает 3. Зачем? Пройдите через программу:
def f(x, y):
определить функцию
    n = None
установить переменную 'n' в None
    for n in range(x, y):
начните выполнять итерацию с 'x' на 'y'. в нашем случае от одного до девяти
         if not n % 2: continue
прекратите эту итерацию, если 'n' равномерно делится на два
         elif not n % 3: break
оставить эту итерацию, если n равномерно делится на три
    return n
наша функция 'f' "возвращает" значение 'n'
print((f(1, 10)))
'f (1, 10)' печатает три, потому что он вычисляет значение "n", когда выполнение выходит из области действия функции
Ответ 6
Я постараюсь проиллюстрировать это на примере:
def age_to_find_true_love(my_age):
    for age in range(my_age, 100):
        if find_true_love_at(age):
            return age
        if age > 50:
            break
    return "...actually do you like cats?"