Есть ли команда Python, аналогичная функции возврата в Matlab? - PullRequest
0 голосов
/ 26 апреля 2020

Есть ли в Python функция, позволяющая RETURN управлять вызовом скрипта или функции, аналогично функции RETURN в MATLAB ?

Функция выхода () или выхода () в Python делает то же самое?

def absolute_value(num):
    """This function returns the absolute
    value of the entered number"""

        if num >= 0:
            return TO INVOKING SCRIPT without any return value
        else:
           DO TASK A
           DO TASK B


print(absolute_value(2))

print(absolute_value(-4))

Ответы [ 2 ]

2 голосов
/ 26 апреля 2020

Да, python методы могут return значение (и), аналогично тому, как в MATLAB. Таким образом, этот код MATLAB

function idx = findSqrRootIndex(target,arrayToSearch)

idx = NaN;
if target < 0
   return
end

for idx = 1:length(arrayToSearch)
    if arrayToSearch(idx) == sqrt(target)
        return
    end
end

может быть эффективно записан в Python как -

import math

def find_sqr_root_index(target, array_to_search):
    if target < 0:
        return # Same as return None

    # Indexing starts at 0, unlike MATLAB
    for idx in range(len(array_to_search)):
        if array_to_search[idx] == math.sqrt(target):
            return idx

a = [3, 7, 28, 14, 42, 9, 0]
b = 81
val = find_sqr_root_index(b, a)
print(val) # 5 (5 would mean the 6th element)

В коде python есть имена методов и переменных, измененные для соответствия Python именные соглашения.

1 голос
/ 26 апреля 2020

Просто добавьте, вы можете использовать return, как в matlab, без какого-либо return значения.

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

def my_func(a):
   # some code
   if a == 5:
       return # this is valid too, equivalent to quit the function and go to envoking script

...