Часть 2: Функции, рекурсия, преобразование типов и приведение, лямбда-функция, строки
Функции в Python
Функция - это группа взаимосвязанных операторов, которые выполняют определенную задачу. Функции помогают разбивать большие программы на более мелкие блоки или модульные патроны.
Типы функций
а) Встроенные функции. Функции, встроенные в Python по умолчанию.
б) Пользовательские функции - функции, определяемые пользователями.
Встроенные функции
Математическая функция
#Example 2.1 import math #import math module math.pow(var1,var2) math.sqrt(var1) math.sin(var1) math.cos(var1) math.log10(var1) ... etc
Строковая функция
#Example 2.2 len(),lower(),upper(),find(),count(),replace(),strip()... etc
Состав функций
Использование одной функции как части другой функции.
#Example 2.3 x = math.exp(math.log10(10.0)) #Value 2.718281828459045
Пользовательские функции
#Syntax : def function_name(parameter1, parameter2, ... ): """docstring""" statement_1 statement_2 .... #Example 2.4 def fun(x,y): p = x + y return p print(fun(2,3)) #Output 5
Определение функции, которое состоит из следующих компонентов.
- Ключевое слово def отмечает начало заголовка функции.
- имя функции, чтобы однозначно идентифицировать ее.
- Параметры (аргументы), через которые мы передаем значения функции. Это необязательно.
- двоеточие (:) для обозначения конца заголовка функции.
- Необязательная строка документации (docstring) для описания того, что делает функция.
- Один или несколько допустимых операторов Python, составляющих тело функции.
- Необязательный оператор return для возврата одного или нескольких значений из функции.
Вызов функций
Чтобы вызвать функцию, используйте имя функции, за которым следует круглые скобки и необязательное значение параметра внутри этих скобок. Если необходимо передать более одного значения, то через запятую.
#Example 2.5 def fun(x,y): p = x + y q = x * y return p,q c,d = fun( 4,5 ) print (c,d) #Output 9 20 or def fun(x,y): p = x + y q = x * y return p,q c = fun( 4,5 ) print (c) #Output (9, 20)
Аргументы по умолчанию
Задайте значение по умолчанию для аргумента с помощью оператора присваивания (=).
#Example 2.6 def add(p, q = 7): s = p + q return s print(add(3)) #Output 10 #Example 2.7 def greetings(name, msg = “Good morning!”): print(“Hello”,name + ‘, ‘ + msg) greetings('Arun') #output Hello Arun, Good morning!
Рекурсия
Вызов функции сам по себе один или несколько раз в блоках кода функции.
#Example 2.8 | To find the factorial of a number using recursion def fact(x): if x == 1 or x == 0: return 1 else: return (x * fact( x - 1 )) x = int(input(“Enter a number: “)) a = fact(x) print (“The factorial of”, x, “is”, a) #Output Enter a number: 4 The factorial of 4 is 24
Преимущества рекурсии
- Рекурсивные функции делают код чистым и красивым.
- Сложную задачу можно разбить на более простые подзадачи с помощью рекурсии.
- С помощью рекурсии генерировать последовательность проще, чем с использованием некоторой вложенной итерации.
Недостатки рекурсии
- Иногда трудно понять логику рекурсии.
- Рекурсивные вызовы дороги и требуют много памяти и времени для выполнения.
- Рекурсивные функции сложно отлаживать.
Преобразование типов
Явное преобразование одного типа данных в другой (вручную).
#Syntax <datatype>(expressions) #Example 2.9 c = int(32.999) print (c) #Output 32 c = int(9/2) print (c) #Output 4 c = float(9)/2 print (c) #Output 4.5
Принуждение типа
Неявное (автоматическое) преобразование одного типа данных в другой.
#Example 2.10 c = 4.3 + 2 print (c) #Output 6.3
Лямбда-функция
Лямбда-функция может иметь любое количество аргументов, но может иметь только одно выражение.
#Syntax lambda arguments : expression #Example 2.11 x = lambda a : a + 15 print(x(10)) #Output 25 #Example 2.12 x = lambda a , b : a ** b print(x(2,3)) #Output 8 #Example 2.13 def lamb(n): return lambda a : a * n result = lamb(4) print(result(5)) #Output 20
Строки в Python
Строковые литералы представлены одинарными или двойными кавычками, что означает, что "каналы" равно "каналы". .
#Multiple lines Strings with Triple quotes #Example 2.14 Str = “””Python complete tutorial for beginners Part-2 by MP Channels “”” print(Str) #Output #Considering the white spaces in strings Python complete tutorial for beginners Part-2 by MP Channels
Чтение строки
Python не имеет символьного типа данных и представляет один символ в виде строки длины 1. Строки также представлены в виде массива, то есть имени переменной, за которым следуют квадратные скобки и порядковый номер.
#Example 2.15 a = input("Enter a string : ") #Assign a String to Variable 'a' print (a) print (a[0]) #Array with starting index no 0 print (a[1]) #Array with second index no 1 print (a[2]) #Array with third index no 1 print (a[-1]) #Array with negative index no -1 print (a[-2]) #Array with negative index no -2 #Negative index starting(-1)from end #Output Enter a string : mpchannels mpchannels m p c s l
Обход строки
#Using While loop #Example 2.16 a = "Arun" i = 0 while i < len(a): print(a[i]) i = i + 1 #Output A r u n #Using For loop #Example 2.17 a = "Arun Mp" for i in a: print(i) #Or a = "Arun Mp" for i in range(0,len(a)): print(a[i]) #Output A r u n M p
Нарезка строки
Сегмент строки называется срезом. Задается именем переменной, за которым следует квадратная скобка, индекс начала и индекс конца, разделенные двоеточием.
#Example 2.18 a = “arun is super” #white space is also index count print (a[0:4]) #Array with start and end index no. print (a[6:11]) print (a[8:]) #All these return a segment of string print (a[:4]) print (a[:]) print(a[-5:-2]) #Negative slicing starting from end(-1) #Output arun s sup super arun arun is super sup
Строки неизменяемы, вы не можете изменить существующую строку. Но вы можете удалить строки с помощью ключевого слова del.
#Example 2.19 Str = "Python Tutorial" del Str print(Str) #Output NameError: name 'Str' is not defined #Example 2.20 a = "arun mp" a[3]="s" #Error print(a[3]) #Output TypeError: 'str' object does not support item assignment #Example 2.21 a = "arun mp" a = a[0:3]+'s'+a[4:] print(a) a = 'b'+a[1:] print(a) #Output arus mp brus mp
Строковые методы
Ниже приведен список встроенных в Python строковых методов.
Methods Descriptions capitalize() Return the first character to upper case and rest are lower case. casefold() Return a string into lower case, generally used for caseless matching. center() Return a centered string within the specified width. count() Return the number of occurrences of supplied sub_string in string. encode() Returns the encoded version of the string. endswith() Returns true if the string ends with the Supplied sub_strings in string. enumerate() Returns an enumerate object. expandtabs() Return a string where all tab characters are expanded using spaces. find() Return the first index number of supplied sub_string in string. format() Formats a given string. format_map() Formats a given string. index() Return the index of the first occurrences of supplied sub_string in string. Otherwise, ValueError is found. isalnum() Returns True if string is non-empty and all characters are alphanumeric. isalpha() Returns True if string is non-empty and all characters are alphabetic. isdecimal() Returns True if string is non-empty and all characters are decimal. isdigit() Returns True if string is non-empty and all characters are digits. isidentifier() Returns True if string is a valid identifier. islower() Returns True if string is non-empty and all characters are lower cased. isnumeric() Returns True if string is non-empty and all characters are numeric. isprintable() Returns True if string is empty or all characters are printable. isspace() Returns True if string is non-empty and all characters are white_spaces. istitle() Returns True if string is non-empty and title_cased. isupper() Returns True if string is non-empty and all characters are upper cased. lower() Return all the characters of the String to lowercase. len() Return the length of string. list() Return a list with elements separately. join() Return a string which is the concatenation of strings in the sequence or iteration. ljust() Returns a left justified string in the provided width. lstrip() Returns a left trim string in the provided width. maketrans() Returns a translation table. partition() Split the string at the first occurrence of sub_string (Separator) and return a 3-tuple with part before separator, the separator and part after the separator. replace() Return a string, produced by replace an old sub_string with new sub_string. rfind() Return the index of the last occurrences of supplied sub_string in string. Return -1 if not found. rindex() Return the index of the last occurrences of supplied sub_string in string. Return -1 if not found. rjust() Returns a left justified string in the provided width. rsplit() Return a string with trailing characters removed. rstrip() Returns a right trim string in the provided width. split() Splits the string at the specified separator, and returns a list. splitlines() Returns a list of lines in the string. startswith() Returns true if string starts with the provided sub_string. strip() Remove white space from beginning or the end. swapcase() Return a string with lower case becomes upper case and vice versa. title() Return a title cased string and first character is upper cased. translate() Returns a string that has been mapped according to the provided map. upper() Return all the characters of the String to uppercase. zfill() Return a numeric string, left filled with a specified number of 0.
Строковые функции с примером кода
#Example 2.22 #String Length : len(str) a = "MP Channels" print(len(a)) #Output 11 #String List : list(str) a = "MP Channels" print(list(a)) #Output ['M', 'P', ' ', 'C', 'h', 'a', 'n', 'n', 'e', 'l', 's'] #String Enumerate : enumerate(str) print (list(enumerate("code"))) #Output [(0, 'c'), (1, 'o'), (2, 'd'), (3, 'e')] #String Strip : var_name.strip() a = " MP Channels " print(a.strip()) #Output MP Channels #String Lower : var_name.lower() a = "MP Channels" print(a.lower()) #Output mp channels #String Upper : var_name.upper() a = "MP Channels" print(a.upper()) #Output MP CHANNELS #String Replace : var_name.replace() a = "MP Channels" print(a.replace("M", "J")) #Output JP Channels #String Split : var_name.split() a = "MP Channels" print(a.split()) #Output ['MP', 'Channels'] #String Count : var_name.count(str) a = "MP Channels" print(a.count("n")) #Output 2 #String Find : var_name.find(str) a = "MP Channels" print(a.find("e")) #Output 8 #index
Строковые операторы
Конкатенация (+)
Объединяет или объединяет две или более строк в одну.
#Example 2.23 a = ' Python ' b = ' Tutorial ' c = ' for Beginners ' print (a + b + c) #Output Python Tutorial for Beginners
Повторение (*)
Новая строка повторяется заданное количество раз.
#Example 2.24 a = ‘ Python ‘ print (a*5) #Output Python Python Python Python Python
Членство (в или не в)
Проверьте, присутствует ли символ или подстрока в данной строке, используя в или не в ключевые слова.
#Example 2.25 Str = “ Python complete tutorial for beginners “ a = “c” in Str print(a) #Output #Return True, if the character is present True #Or Str = “ Python complete tutorial for beginners “ a = “complete” not in Str print(a) #Output #Return True, if the character is not present False
Нарезка ([])
Возвращает символ по заданному порядковому номеру.
#Example 2.26 Str = “Python complete tutorial for beginners“ print(Str[0]) #Simple Slicing print(Str[7:15]) #Range Slicing #Output P complete
Операторы форматирования строк
Вы можете комбинировать строки и числа с помощью метода format () или оператора ‘%’. Функция format () назначает несколько аргументов и помещает соответствующий формат в фигурные скобки {}.
#Using Format method
#Example 2.27
a = 7
b = 3.141
c = 100
d = 888
values = “Value of a is {} Value of b is {} Value of c is {}
Value of d is {}”
print(values.format(a,b,c,d))
#Output
Value of a is 7 Value of b is 3.141 Value of c is 100 Value of d is 888
#Example 2.28
a = 7
b = 3.141
c = 100
d = 888 #Use index numbers of the arguments to print within braces
values = “Value of a is {3} Value of b is {0} Value of c is {2}
Value of d is {1}”
print(values.format(a,b,c,d))
#Output
Value of a is 888 Value of b is 7 Value of c is 100 Value of d is 3.141
#Using ‘ % ’ operator
#Example 2.29
a = 7
b = 3.141
c = "Hello"
print("Value of a is %d Value of b is %f Value of c is %s"
%(a,b,c))
#Output
Value of a is 7 Value of b is 3.141000 Value of c is Hello
Символы формата
Format_symbols Name %i Signed decimal integer %d Signed decimal integer %u Unsigned decimal integer %o Octal integer %c Character %s String %e exponential (lowercase) %E exponential (uppercase) %f Floating point decimal number %x Hexadecimal integer (lowercase) %X Hexadecimal integer (uppercase)
escape-символ
Escape-символ начинается с обратной косой черты (\), за которой следует символ.
Escape_symbols Name \\ Backslash (\) \” Double-quote (“) \' Single-quote (') \a ASCII bell (BEL) \b Backspace (BS) \f Form feed (FF) \n New Line or Linefeed (LF) \r Carriage Return (CR) \t Horizontal Tab (TAB) \v Vertical tab (VT) \ooo Octal value (ooo) \xnn Hex value (nn)
Escape-символ с примером кода
#Example 2.30 Str = "Python complete tutorial beginners Part-2 \"MP Channels\"" print(Str) #Output Python complete tutorial beginners Part-2 "MP Channels"