Це питання стилю (або уподобань), оскільки перекладача це не хвилює. Особисто я б намагався не робити остаточне твердження про функцію, яка повертає значення на рівні відступу, відмінного від бази функції. Інше в прикладі 1 затьмарює, хоча б трохи, де кінець функції.
За вибором я використовую:
return A+1 if (A > B) else A-1
Оскільки воно підкоряється як хорошій умові про наявність єдиного твердження повернення як останнього твердження у функції (як уже згадувалося), так і хорошої парадигми функціонального програмування уникнення проміжних результатів імперативного стилю.
Для більш складних функцій я вважаю за краще розбити функцію на кілька підфункцій, щоб уникнути передчасних повернень. В іншому випадку я повернусь до використання імперативної змінної стилю під назвою rval. Я намагаюся не використовувати декілька операторів повернення, якщо функція не є тривіальною або вираз повернення до кінця є наслідком помилки. Попереднє повернення підкреслює той факт, що ви не можете продовжувати. Для складних функцій, призначених для розгалуження на декілька підфункцій, я намагаюся кодувати їх як випадок справ (керований, наприклад, диктатом).
Деякі плакати згадують про швидкість роботи. Швидкість виконання часу для мене є другорядним, оскільки якщо вам потрібна швидкість виконання, Python - це не найкраща мова. Я використовую Python як важливу для мене ефективність кодування (тобто написання коду без помилок).