Рубрики
Без рубрики

Руководство по функциям Python с примерами

Автор оригинала: FreeCodeCapm Team.

Введение в функции в Python

Функция позволяет определить многоразовый блок кода, который может быть выполнен много раз в вашей программе.

Функции позволяют создавать более модульные и Сухой решения сложных проблем.

Пока Python уже предоставляет множество встроенных функций, таких как Печать () и Лен () , вы также можете определить свои собственные функции для использования в ваших проектах.

Одним из величайших преимуществ использования функций в вашем коде является то, что он уменьшает общий номер строк кода в вашем проекте.

Синтаксис

В Python определение функции имеет следующие функции:

  1. Ключевое слово . деф
  2. Название функции
  3. скобки ‘()’ и в скобках входные параметры входных скобок, хотя входные параметры являются необязательными.
  4. толстая кишка:
  5. какой-то блок кода для выполнения
  6. Оператор возврата (необязательно)
# a function with no parameters or returned values
def sayHello():
  print("Hello!")

sayHello()  # calls the function, 'Hello!' is printed to the console

# a function with a parameter
def helloWithName(name):
  print("Hello " + name + "!")

helloWithName("Ada")  # calls the function, 'Hello Ada!' is printed to the console

# a function with multiple parameters with a return statement
def multiply(val1, val2):
  return val1 * val2

multiply(3, 5)  # prints 15 to the console

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

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

Функция всегда возвращает значение, Возвращение Ключевое слово используется функцией для возврата значения, если вы не хотите возвращать какое-либо значение, значение по умолчанию Нет вернутся.

Имя функции используется для вызова функции, передавая необходимые параметры внутри скобок.

# this is a basic sum function
def sum(a, b):
  return a + b

result = sum(1, 2)
# result = 3

Вы можете определить значения по умолчанию для параметров, таким образом, Python будет интерпретировать, что значение этого параметра является значением по умолчанию, если нет.

def sum(a, b=3):
  return a + b

result = sum(1)
# result = 4

Вы можете передавать параметры в хоте желаемого заказа, используя имя параметра.

result = sum(b=2, a=2)
# result = 4

Тем не менее, невозможно пройти аргумент ключевых слов до однозначного ключевого слова

result = sum(3, b=2)
#result = 5
result2 = sum(b=2, 3)
#Will raise SyntaxError

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

s = sum
result = s(1, 2)
# result = 3

Заметки

Если определение функции включает в себя параметры, вы должны обеспечить одинаковое количество параметров при вызове функции.

print(multiply(3))  # TypeError: multiply() takes exactly 2 arguments (0 given)

print(multiply('a', 5))  # 'aaaaa' printed to the console

print(multiply('a', 'b'))  # TypeError: Python can't multiply two strings

Блок кода, который выполняется функция, включает в себя все утверждения, отступив в функции.

def myFunc():
print('this will print')
print('so will this')

x = 7
# the assignment of x is not a part of the function since it is not indented

Переменные, определенные внутри функции, существуют только в объеме этой функции.

def double(num):
x = num * 2
return x

print(x)  # error - x is not defined
print(double(4))  # prints 8

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

Теперь давайте посмотрим на некоторые специфические функции с примерами.

Max () Функция

Макс () Это встроенная функция в Python 3. Возвращает наибольший элемент в неразмерной или самый большой из двух или более аргументов.

Аргументы

Эта функция занимает два или более чисел или любой вид, как аргумент. Придавая утечку в качестве аргумента, мы должны убедиться, что все элементы в утечке имеют один и тот же тип. Это означает, что мы не можем пройти список, который имеет как строки, так и целочисленные значения, хранящиеся в нем. Синтаксис: Max (Tireable, * Iterables [, Key, по умолчанию]) MAX (ARG1, ARG2, * args [, ключ])

Допустимые аргументы:

max(2, 3)
max([1, 2, 3])
max('a', 'b', 'c')

Неверные аргументы:

max(2, 'a')
max([1, 2, 3, 'a'])
max([])

Возвращаемое значение

Крупнейший предмет в утечке возвращается. Если предоставляются два или более позиционных аргументов, возвращается наибольший из позиционных аргументов. Если утеряемое пустое и по умолчанию не предусмотрено, A ValueError Поднялся.

Образец кода

print(max(2, 3)) # Returns 3 as 3 is the largest of the two values
print(max(2, 3, 23)) # Returns 23 as 23 is the largest of all the values

list1 = [1, 2, 4, 5, 54]
print(max(list1)) # Returns 54 as 54 is the largest value in the list

list2 = ['a', 'b', 'c' ]
print(max(list2)) # Returns 'c' as 'c' is the largest in the list because c has ascii value larger then 'a' ,'b'.

list3 = [1, 2, 'abc', 'xyz']
print(max(list3)) # Gives TypeError as values in the list are of different type

#Fix the TypeError mentioned above first before moving on to next step

list4 = []
print(max(list4)) # Gives ValueError as the argument is empty

Запустите код

Официальные документы

Мин () Функция

мин () Это встроенная функция в Python 3. Возвращает наименьший предмет в неразмерной или наименьшее из двух или более аргументов.

Аргументы

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

Допустимые аргументы:

min(2, 3)
min([1, 2, 3])
min('a', 'b', 'c')

Неверные аргументы:

min(2, 'a')
min([1, 2, 3, 'a'])
min([])

Возвращаемое значение

Наименьший предмет в утечке возвращается. Если приведены два или более позиционных аргументов, возвращаются наименьшие из позиционных аргументов. Если у счет пустого и по умолчанию не предусмотрено значение ValueError.

Образец кода

print(min(2, 3)) # Returns 2 as 2 is the smallest of the two values
print(min(2, 3, -1)) # Returns -1 as -1 is the smallest of the two values

list1 = [1, 2, 4, 5, -54]
print(min(list1)) # Returns -54 as -54 is the smallest value in the list

list2 = ['a', 'b', 'c' ]
print(min(list2)) # Returns 'a' as 'a' is the smallest in the list in alphabetical order

list3 = [1, 2, 'abc', 'xyz']
print(min(list3)) # Gives TypeError as values in the list are of different type

#Fix the TypeError mentioned above first before moving on to next step

list4 = []
print(min(list4)) # Gives ValueError as the argument is empty

Запустите код

Официальные документы

divmod () Это встроенная функция в Python 3, которая возвращает фактор и остаток при разделении числа А по количеству B Отказ Требуется два числа в качестве аргументов А & B Отказ Аргумент не может быть сложным числом.

Аргумент

Требуется два аргумента А & B – целое число или десятичное число. Это не может быть сложным числом.

Возвращаемое значение

Возвращаемое значение будет парой положительных чисел, состоящих из частных и остальных, полученных путем разделения А По B Отказ В случае смешанных типов операндов будут применены правила двоичных арифметических операторов. Для Целое число аргументов , возвращаемое значение будет таким же, как (A//B,% B) Отказ Для Рюмименты десятичных чисел , возвращаемое значение будет таким же, как (Q,% B) , где Q Обычно math.floor (A/B) Но может быть 1 меньше, чем это.

Образец кода

print(divmod(5,2)) # prints (2,1)
print(divmod(13.5,2.5)) # prints (5.0, 1.0)
q,r = divmod(13.5,2.5)  # Assigns q=quotient & r= remainder
print(q) # prints 5.0 because math.floor(13.5/2.5) = 5.0
print(r) # prints 1.0 because (13.5 % 2.5) = 1.0

Запретить!

Официальные документы

Функция Hex (x)

Hex (x) Встроенная функция в Python 3 для преобразования целочисленного номера в нижний регистр шестнадцатеричный Строка с префиксом с «0x».

Аргумент

Эта функция принимает один аргумент, х , это должно быть целочисленного типа.

Возвращаться

Эта функция возвращает строчную шестнадцатеричную строку, префиксированную с «0x».

Пример

print(hex(16))    # prints  0x10
print(hex(-298))  # prints -0x12a
print(hex(543))   # prints  0x21f

Запустите код

Официальная документация

Функция Len ()

Лен () Встроенный в Python 3. Этот метод возвращает длину (количество элементов) объекта. Требуется один аргумент х Отказ

Аргументы

Требуется один аргумент, х Отказ Этот аргумент может представлять собой последовательность (например, строку, байты, кортеж, список или диапазон) или коллекцию (например, словарь, набор или замороженный набор).

Возвращаемое значение

Эта функция возвращает количество элементов в аргументе, который передается на Лен () функция.

Образец кода

list1 = [123, 'xyz', 'zara'] # list
print(len(list1)) # prints 3 as there are 3 elements in the list1

str1 = 'basketball' # string
print(len(str1)) # prints 10 as the str1 is made of 10 characters

tuple1 = (2, 3, 4, 5) # tuple 
print(len(tuple1)) # prints 4 as there are 4 elements in the tuple1

dict1 = {'name': 'John', 'age': 4, 'score': 45} # dictionary
print(len(dict1)) # prints 3 as there are 3 key and value pairs in the dict1

Запустите код

Официальные документы

Орден функция

Орд () Встроенная функция в Python 3, чтобы преобразовать строку, представляющую один символ Unicode в целое число, представляющее код Unicode символа.

Примеры:

>>> ord('d')
100
>>> ord('1')
49

Функция Chr.

chr () Встроенная функция в Python 3, чтобы преобразовать целое число, представляющее код Unicode в строку, представляющую соответствующий символ.

Примеры:

>>> chr(49)
'1'

Одно следует отметить, что, если целочисленное значение передается chr () Тогда находится вне диапазона, leteletror будет поднят.

>>> chr(-10)
'Traceback (most recent call last):
  File "", line 1, in 
    chr(-1)
ValueError: chr() arg not in range(0x110000)'

Функции ввода ()

Многое временем в программе нам нужен какой-то вход от пользователя. Принимая входы от пользователя заставляет программу чувствовать себя интерактивными. В Python 3, чтобы принять вклад от пользователя, у нас есть функция вход () Отказ Если вызывается функция ввода, поток программы будет остановлен до тех пор, пока пользователь не дал ввод и закончил вход с ключом возврата. Давайте посмотрим некоторые примеры:

Когда мы просто хотим взять вклад:

INP ()

Запустите код

Дать подсказку с сообщением:

Подскажите с сообщение(”)

Запустите код

3. Когда мы хотим взять целочисленный вход:

number = int(input('Please enter a number: '))

Запустите код

Если вы вводите не целочисленное значение, то Python бросит ошибку ValueError Отказ Поэтому, когда вы используете это, пожалуйста, убедитесь, что вы тоже поймаете. В противном случае ваша программа неожиданно прекратится после подсказки.

number = int(input('Please enter a number: '))
# Please enter a number: as
# Enter a string and it will throw this error
# ValueError: invalid literal for int() with base 10 'as'

4. Когда мы хотим ввод строки:

string = str(input('Please enter a string: '))

Запустите код

Хотя входы хранятся по умолчанию как строка. Используя str () Функция делает его понятно для читателя кода, что вход будет «строка». Хорошей практикой, чтобы упомянуть, какой тип ввода будет предпринят заранее.

Официальные документы

Как вызвать функцию в Python

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

>>> def say_hello():
...     print('Hello')
...
>>> say_hello()
Hello

Исполнение функции вводит новую таблицу символов, используемой для локальных переменных функции. Точнее, все переменные назначения в функциональном храните значение в локальной таблице символов; Принимая во внимание, что переменные ссылки сначала посмотрите в локальной таблице символов, затем в таблицах локальных символов ограждающих функций, затем в таблице глобальных символов и, наконец, в таблице встроенных имен. Таким образом, глобальные переменные не могут быть непосредственно назначены значение в функции (если не названо в глобальном утверждении), хотя они могут быть ссылаться.

>>> a = 1
>>> b = 10
>>> def fn():
...     print(a)    # local a is not assigned, no enclosing function, global a referenced.
...     b = 20      # local b is assigned in the local symbol table for the function.
...     print(b)    # local b is referenced.
...
>>> fn()
1
20
>>> b               # global b is not changed by the function call.
10

Фактические параметры (аргументы) к вызовам функции вводятся в локальной таблице символов вызываемой функции, когда она называется; Таким образом, аргументы передаются с использованием вызова по значению (где значение всегда является ссылкой на объект, а не значение объекта). Когда функция вызывает другую функцию, для этого вызова создается новая локальная таблица символов.

>>> def greet(s):
...     s = "Hello " + s    # s in local symbol table is reassigned.
...     print(s)
...
>>> person = "Bob"
>>> greet(person)
Hello Bob
>>> person                  # person used to call remains bound to original object, 'Bob'.
'Bob'

Аргументы, используемые для вызова функции, не могут быть переназначены функцией, но аргументы, что ссылочные смежные объекты могут иметь свои значения:

>>> def fn(arg):
...     arg.append(1)
...
>>> a = [1, 2, 3]
>>> fn(a)
>>> a
[1, 2, 3, 1]