Как задать функцию в Python? Что за def...?

Что такое функции?

Функции - это удобный способ разделить ваш код на полезные блоки, позволяя нам упорядочить наш код, сделать его более читабельным, повторно использовать его и сэкономить некоторое время. Также функции являются ключевым способом определения интерфейсов, чтобы программисты могли делиться своим кодом.

Как вы пишете функции в Python?

Как мы видели в предыдущих уроках, Python использует блоки.

Блок - это область кода, записанная в формате:

block_head:
    1st block line
    2nd block line
    ...

Где строка блока - это больше код Python (даже другого блока), а заголовок блока имеет следующий формат: block_keyword block_name(argument1,argument2, ...) Ключевыми словами блока, которые вы уже знаете, являются "if", "for", и "while".

Функции в Python определяются с помощью ключевого слова "def", за которым следует имя функции в качестве имени блока. Например:

def my_function():
  print("Hello From My Function!")

Функции также могут получать аргументы (переменные, передаваемые вызывающим в функцию). Например:

def my_function_with_args(username, greeting):
  print("Hello, %s , From My Function!, I wish you %s"%(username, greeting))

Функции могут возвращать значение вызывающей стороне, используя ключевое слово 'return'. Например:

def sum_two_numbers(a, b):
 return a + b

Как вы вызываете функции в Python?

Просто напишите имя функции, а затем (), поместив все необходимые аргументы в скобки. Например, давайте вызовем функции, написанные выше (в предыдущем примере):

# Define our 3 functions
def my_function():
  print("Hello From My Function!")

def my_function_with_args(username, greeting):
print("Hello, %s , From My Function!, I wish you %s"%(username, greeting))

def sum_two_numbers(a, b):
  return a + b

print(a simple greeting)
my_function()
prints - "Hello, John Doe, From My Function!, I wish you a great year!"
my_function_with_args("John Doe", "a great year!")
after this line x will hold the value 3!

Упражнение

В этом упражнении вы будете использовать существующую функцию и одновременно добавлять свою собственную для создания полнофункциональной программы.

Добавьте функцию с именем list_benefits (), которая возвращает следующий список строк: "More organized code", "More readable code", "Easier code reuse", "Allowing programmers to share and connect code together"

Добавьте функцию с именем build_sentence (info), которая получает единственный аргумент, содержащий строку, и возвращает предложение, начинающееся с данной строки и заканчивающееся строкой is a benefit of functions!

Запустите и убедитесь, что все функции работают вместе!

# Modify this function to return a list of strings as defined above
def list_benefits():
  pass

# Modify this function to concatenate to each benefit - " is a benefit of functions!"

def build_sentence(benefit):
  pass


def name_the_benefits_of_functions():
  list_of_benefits = list_benefits()
  for benefit in list_of_benefits:
    print(build_sentence(benefit))

name_the_benefits_of_functions()

Решение упражнения

#Modify this function to return a list of strings as defined above
 
def list_benefits():
  return "More organized code", "More readable code", "Easier code reuse", "Allowing programmers to share and connect code together"

# Modify this function to concatenate to each benefit - " is a benefit of functions!"

def build_sentence(benefit):
  return "%s is a benefit of functions!" % benefit

def name_the_benefits_of_functions():
  list_of_benefits = list_benefits()
  for benefit in list_of_benefits:
    print(build_sentence(benefit))

name_the_benefits_of_functions()