#python-3.x
Вопрос:
Я новичок в python. Все ли функции python возвращают какое-то значение? Каким будет возвращаемое значение следующей функции?
import math
def getQuadratic(a,b):
square = a**2 b**2
squareRoot = math.sqrt(square)
return squareRoot
print("The square root of the sum of the squares of 3 and 4 is:", getQuadratic(3,4))
Ответ №1:
Чтобы оценить тип, возвращаемый функцией Python, вам нужно просмотреть КАЖДЫЙ return
оператор, потому что каждый может возвращать что-то другое. И если функция не имеет явного return
значения , return None
в конце есть подразумеваемое.
В вашем случае есть только один return
, и легко понять, какой тип он возвращает.
Ответ №2:
Все методы python что-то возвращают. Даже если у вас нет заявления о возврате, они все равно вернутся None
.
def my_function():
pass
print(my_function())
>>> None
Ответ №3:
Эта функция определенно что-то возвращает. Он возвращает значение переменной squareRoot. Поэтому, когда вы выполняете инструкцию print, возвращенное значение печатается вместе со строкой перед ним.
Ответ №4:
Python, будучи динамически типизированным языком, не требует от вас определения какого-либо типа переменных или функций.
Все в python является объектом первого класса.
На вашем примере:
import math
def getQuadratic(a,b):
square = a2 b2 # is this square? a**2?
squareRoot = math.sqrt(square)
return squareRoot
print("The square root of the sum of the squares of 3 and 4 is:", getQuadratic(3,4))
Переменные a
b
могут принимать любое значение.
Python делает это, превращая все в объект python.
Так что проще думать об этом таким образом. int
является ли ваш эквивалент C
, однако, в python он рассматривается как class <int>
Однако теперь возможна статическая типизация. Это все еще зависит от структуры, в которой будет использоваться статическая типизация. Но ваша эквивалентная программа на python интерпретируется как:
import math
def getQuadratic(a:int,b:int) -> float:
square = a2 b2 # is this square? a**2?
squareRoot = math.sqrt(square)
return squareRoot
print("The square root of the sum of the squares of 3 and 4 is:", getQuadratic(3,4))
TL;DR
В прямом ответе на ваш вопрос,
- python не требует никаких типов
a = 1
является действительным.a = 'SoF'
все еще действует- где
a
находится объект Python и может быть выделен любому другому объекту python, такому как значение, строка, функции или целые модули. - На самом деле это не имеет большого значения для типов. Так устроен Python.
Комментарии:
1. Несмотря на полезную информацию, в вопросе ничего не говорилось о типах