Пока вы приняли ответ выше, я хотел бы потратить время, чтобы помочь вам выучить и очистить ваш код.
NameError: name 'g' is not defined
Вы получаете эту ошибку, потому что g
является локальной переменной функции G()
Чистая версия:
def multiple_two_numbers():
"""
Multiplies two numbers
Args:
none
Returns:
product : the result of multiplying two numbers
"""
x = 2
y = 3
product = x*y
return product
def main():
result = multiple_two_numbers()
answer = 2 * result
print(answer)
if __name__ == "__main__":
# execute only if run as a script
main()
Проблемы с вашим кодом:
Имеют понятные имена переменных и методов. g
и G
могут сбивать читателя с толку.
Вы не используете if __name__ == "__main__":
Ваш возврат в H()
не требуется, а также функция H()
.
Используйте строки документов, чтобы сделать ваш код более читабельным.
Вопросы из комментариев :
У меня один вопрос: а что, если бы в первой было две или более переменных?
функция, но я хочу вызвать только один из них
Ваша функция может иметь столько переменных, сколько вы хотите. Если вы хотите вернуть более одной переменной, вы можете использовать словарь (ключ, значение) List или Tuple. Все зависит от ваших требований.
Нужно ли давать новые имена, a
и b
, новым
переменные или я могу использовать те же x
и g
?
Абсолютно! Объявление другой переменной с именем x
или y
приведет к перезаписи предыдущего объявления. Это может затруднить отладку, и вы и читатели вашего кода будете разочарованы.