Python Урок 3. Функции и процедуры

На уроке объясняется синтаксис составления процедуры и функции Питон. Рассматривается вызов функции, параметры функции и процедуры

Функции в роли процедуры

  • Подпрограммы прежде всего необходимы в ситуации, когда в разных частях программы необходимо выполнять одни и те же действия несколько раз. В таком случае повторяемые операторы оформляются в виде функции или процедуры, к которой можно обращаться и вызывать ее выполнение из разных частей программы.
  • В python существует два вида реализации подпрограмм: функции в роли процедуры и функции в классическом понимании.
  • Функция в роли процедуры призвана не возвратить значение в основную программу, а вывести его, либо выполнить какие-либо действия с глобальными переменными, при этом не возвращая полученные значения основной программе (не используя ключевое слово return).
  • Рассмотрим синтаксис функции-процедуры на примере:

    Пример: Создать процедуру для вывода сообщения об ошибке. Запрашивать у пользователя ввести положительное число, в случае ввода отрицательного числа, вызывать процедуру для вывода сообщения об ошибке.

    ✍ Решение:
     

    def Err():  # определение процедуры
      print ( "Ошибка: неверные данные" ) 
    n = int ( input('введите положительное число') ) 
    if n < 0: 
      Err() # вызов процедуры
    • Процедура — вспомогательный алгоритм, выполняющий некоторые действия.
    • Это поименованный фрагмент программы, который можно вызвать.
    • Процедура должна быть определена к моменту её вызова. Определение процедуры начинается со служебного слова def.
    • Вызов процедуры осуществляется по ее имени, за которым следуют круглые скобки, например, Err().
    • В одной программе может быть сколько угодно много вызовов одной и той же процедуры.
    • Использование процедур сокращает код и повышает удобочитаемость.

    Процедура с параметрами

    Как используются в Python параметры процедуры, рассмотрим на примере.

    Пример: Написать процедуру, которая печатает 60 раз указанный символ (введенный с клавиатуры), каждый с новой строки.

    ✍ Решение:
     

    1
    2
    3
    4
    5
    
    def printChar(s):
       for i in range(60):
          print (s) 
    sim = input('введите символ')
    printChar(sim)
    • Глобальная переменная — если ей присвоено значение в основной программе (вне процедуры).
    • Локальная переменная (внутренняя) известна только на уровне процедуры, обратиться к ней из основной программы и из других процедур нельзя.
    • Параметры процедуры — локальные переменные. В программе s — локальная переменная.
    Задание Python 3_0:
    Создать процедуру, которая вычисляет разность двух вводимых пользователем числа. Выполнить задание двумя способами: 1) процедура без параметров: числа — глобальные переменные, определенные в основной программе; 2) процедура с параметрами: числа — параметры процедуры.

    Локальные и глобальные переменные

    Примеры использования локальных и глобальных переменных:

    1
    2
    3
    4
    
    x = 3 # глобальная переменная
    def pr(): # процедура без параметров
      print (x) # вывод значения глобальной переменной
    pr()
    1
    2
    3
    4
    5
    
    x = 3  # глобальная переменная
    def pr(a): # процедура с параметром
      a = 4 # локальная переменная
      print (a) # 4
    pr(x) # передача параметра глобальной переменной (3)
  • Существует возможность изменить значение глобальной переменной (не создавая локальную). В процедуре с помощью слова global:
  • 1
    2
    3
    4
    5
    6
    
    x = 3 # глобальная переменная
    def pr(): # процедура без параметров
      global x
      x = 1
      print (x) # вывод измененного значения глобальной переменной (1)
    pr(x)
    Задание Python 3_1:
    Напишите процедуру, которая выводит на экран в столбик все цифры переданного ей числа, начиная с последней:

    число: 4673
    результат:
    3
    7
    6
    4
    
    Задание Python 3_2:
    Напишите процедуру, которая выводит на экран все делители переданного ей числа (в одну строчку).
    Задание Python 3_3:
    Составить программу с процедурой для вычисления степени числа (входные параметры: число и степень).

    Рекомендации: для вычисления степени числа можно использовать функцию pow(число, степень)

    Задание Python 3_4:
    Напишите процедуру, которая принимает параметр – натуральное число N – и выводит первые N чисел Фибоначчи.
    Пример использования ключевого слова global:
    Поменять значений двух переменных.

    ✍ Решение:

      Решение 1:

      def Swap():
          global x,y
          t = x
          x = y
          y = t
      x=3
      y=5    
      Swap() 
      print(x,y)

      Решение 2:

      def Swap():
          global x,y
          (x, y) = (y, x)
      (x,y)=(3,5)
      Swap() 
      print(x,y)
    Задание Python 3_5:
    Создайте процедуру без параметров AddLeftDigit(), которая добавляет введенную цифру K (0<=K<=9) слева к введенной цифре D (0<=D<=9) и выводит результат. Используйте ключевое слово global для работы с глобальными переменными.

    Ожидаемый результат:

    введите D (0<=D<=9) и K(0<=K<=9):
    >>>2  >>>4  
    результат: 42
    

    Язык Python функции

    Часть функций языка Python являются встроенными функциями, которые обеспечены синтаксисом самого языка. Например, int, input, randint.
    Рассмотрим пример создания пользовательских функций.

    • Функция — это поименованный фрагмент программы, который можно вызвать.
    • Как и процедура, функция должна быть определена к моменту её вызова (служебное слово def).
    • Функция в отличии от процедуры возвращает значение.
    • Для возврата значения функции используется оператор return.
    • Вызов функции осуществляется по ее имени и обычно сопровождается выводом значения.
    Пример:
    Найти максимальное значение из значений двух переменных.

    ✍ Решение:

      def max(a,b):
          if(a>b):
              return a
          else:
              return b
       
      x=int(input())
      y=int(input())
      print('max = ',max(x,y))
    Задание Python 3_6:
    Создайте функцию для поиска минимума среди трех чисел (три параметра функции).
    Пример:
    Вычислить сумму цифр числа.
    1
    2
    3
    4
    5
    6
    7
    8
    
    def sumD(n): # определение функции с параметром
      sum = 0 
      while n!= 0: 
         sum += n % 10 
         n = n // 10 
      return sum # возврат значения функции
    # основная программа 
    print (sumD(1075)) # вызов функции с параметром
    Задание Python 3_7:
    Напишите функцию, которая вычисляет количество цифр числа.
    Задание Python 3_8:
    Создайте функцию, которая вычисляет сумму всех чисел от 1 до N. N — параметр функции.
    Задание Python 3_9:
    Напишите функцию, которая вычисляет факториал натурального числа N.