Обращение к функции в python
Далее в главной программе мне нужно обратиться к данной функции. То есть, если true , то print(‘nice’) , если false , то print(‘bad’) . Как это сделать?
Отслеживать
32.2k 15 15 золотых знаков 61 61 серебряный знак 93 93 бронзовых знака
задан 19 июл 2019 в 12:40
118 7 7 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Для того, чтобы вызвать функцию используется нотация с круглыми скобками: func() .
Пример:
def func(): x = input() y = input() if x != y: return True else: return False if func(): print('nice') else: print('bad')
- Вы пропустили : после else .
- У Вас разные отступы в блоках def , if и else (3, 4, 5). Желательно 4 пробела.
- Несоответствие PEP-8 (не следует обрамлять условие в скобки без необходимости, а вот пробелы между оператором = были бы очень желанны)
P. S.:
Я бы сделал это немного иначе.
Для начала вынес бы input() за пределы функции а его результаты передал бы как аргументы при вызове.
Также упростил бы условие, возвращая сразу результат проверки, и использовал бы аналог тернарного оператора (но это не обязательно):
def func(x, y): return x != y a = input() # Ещё можно так: "a, b = input(), input()" b = input() # Или так: "a, b = (input() for x in range(2))" print('nice') if func(a, b) else print('bad')
Оптимизации можно продолжить.
Для начала — использовать аналог тернарного оператора на строки для печати.
А если отказаться от функции и переменных, то можно вообще сделать это в строчку:
print('nice' if input() != input() else 'bad')
Как сделать вызов функции из словаря в Python?
Для того, чтобы вызвать функцию из словаря, нужно к ней обратиться по ключу, как к любому другому значению словаря. Например:
def func1(num): return num + 1 def func2(num): return num * 2 my_dict = 'func1': func1, 'func2': func2> # Передадим в функции число 2: my_dict['func1'](2) # 3 my_dict['func2'](2) # 4
Функции и их аргументы
В этой статье я планирую рассказать о функциях, именных и анонимных, инструкциях def, return и lambda, обязательных и необязательных аргументах функции, функциях с произвольным числом аргументов.
Именные функции, инструкция def
Функция в python — объект, принимающий аргументы и возвращающий значение. Обычно функция определяется с помощью инструкции def.
Определим простейшую функцию:
Инструкция return говорит, что нужно вернуть значение. В нашем случае функция возвращает сумму x и y.
Теперь мы ее можем вызвать:
Функция может и не заканчиваться инструкцией return, при этом функция вернет значение None:
Функция может принимать произвольное количество аргументов или не принимать их вовсе. Также распространены функции с произвольным числом аргументов, функции с позиционными и именованными аргументами, обязательными и необязательными.
Функция также может принимать переменное количество позиционных аргументов, тогда перед именем ставится *:
Как видно из примера, args - это кортеж из всех переданных аргументов функции, и с переменной можно работать также, как и с кортежем.
Функция может принимать и произвольное число именованных аргументов, тогда перед именем ставится **:
В переменной kwargs у нас хранится словарь, с которым мы, опять-таки, можем делать все, что нам заблагорассудится.
Анонимные функции, инструкция lambda
Анонимные функции могут содержать лишь одно выражение, но и выполняются они быстрее. Анонимные функции создаются с помощью инструкции lambda. Кроме этого, их не обязательно присваивать переменной, как делали мы инструкцией def func():
Для вставки кода на Python в комментарий заключайте его в теги
- Модуль csv - чтение и запись CSV файлов
- Создаём сайт на Django, используя хорошие практики. Часть 1: создаём проект
- Онлайн-обучение Python: сравнение популярных программ
- Книги о Python
- GUI (графический интерфейс пользователя)
- Курсы Python
- Модули
- Новости мира Python
- NumPy
- Обработка данных
- Основы программирования
- Примеры программ
- Типы данных в Python
- Видео
- Python для Web
- Работа для Python-программистов
- Сделай свой вклад в развитие сайта!
- Самоучитель Python
- Карта сайта
- Отзывы на книги по Python
- Реклама на сайте
Python: Функции и их вызов
Сложение, конкатенация, нахождение остатка от деления и остальные рассмотренные операции — это базовые возможности языков программирования. Математика не ограничена арифметикой, кроме нее есть и другие разделы со своими операциями ⎯ например, геометрия. То же самое касается и строк: их можно переворачивать, менять регистр букв, удалять лишние символы — и это только самое простое.
Еще на более высоком уровне есть прикладная логика конкретного приложения. Программы списывают деньги, считают налоги, формируют отчеты. Количество подобных операций бесконечно и индивидуально для каждой программы. И их нужно уметь выражать в коде.
Чтобы выразить любую произвольную операцию, в программировании существует понятие функция. Функции бывают встроенные и добавленные программистом. С одной встроенной функцией мы уже знакомы ⎯ это print() .
Функции — одна из ключевых конструкций в программировании. Без них невозможно сделать практически ничего. Знакомство с ними нужно начинать как можно раньше, так как весь дальнейший материал оперирует функциями по максимуму. Сначала мы научимся пользоваться уже созданными функциями, а потом научимся создавать собственные.
Начнем с простых функций для работы над строками.
Функция len() считает количество символов в строке. Ниже пример ее вызова:
# Вызов функции len с параметром 'Hello!' result = len('Hello!') print(result) # => 6
Параметры или аргументы — это информация, которую функция получает при вызове. На основе этой информации функция обычно вычисляет и выдает результат.
Мы создали переменную result и указали интерпретатору конкретное действие: надо записать в нее результат, который возвращается функцией len() при ее вызове. В этом смысле функции подобны операциям — они всегда возвращают результат своей работы. Запись len('Hello!') означает, что вызывается функция с именем len, в которую передали параметр 'Hello!' . Функция len() считает длину той строки, которую ей передали.
Вызов функции всегда обозначается скобками () , которые идут сразу за именем функции. В скобках может быть любое количество параметров, а иногда ни одного. Количество зависит от используемой функции.
Возьмем для примера функцию pow() , которая возводит указанное число в нужную степень. Она принимает на вход два параметра: берет первый параметр и возводит его в степень, переданную вторым параметром:
result = pow(2, 3) # 2 * 2 * 2 print(result) # => 8
Мы разобрались, как пользоваться простыми встроенными функциями. Но это не весь их перечень. Больше о функциях вы узнаете в следующих уроках
Задание
В коде программы определены две переменные, содержащие имена компаний. Посчитайте их общую длину в символах и выведите ее на экран.
Упражнение не проходит проверку — что делать?
Если вы зашли в тупик, то самое время задать вопрос в «Обсуждениях». Как правильно задать вопрос:
- Обязательно приложите вывод тестов, без него практически невозможно понять что не так, даже если вы покажете свой код. Программисты плохо исполняют код в голове, но по полученной ошибке почти всегда понятно, куда смотреть.
В моей среде код работает, а здесь нет
Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.
Мой код отличается от решения учителя
Это нормально , в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи.
В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.
Прочитал урок — ничего не понятно
Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в «Обсуждениях». Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.
Кстати, вы тоже можете участвовать в улучшении курсов: внизу есть ссылка на исходный код уроков, который можно править прямо из браузера.
Определения
- Функция — операция, способная принимать данные и возвращать результат; функция вызывается так: foo() .
- Аргумент — информация, которую функция получает при вызове. Например, foo(42) — передача аргумента 42 функции foo()
