Метод Format
#!/usr/bin/python # Filename: str_format.py age = 26 name = 'Swaroop' print('{0} is {1} years old'.format(name, age)) print('Why is {0} playing with that python?'.format(name))
$ python str_format.py Swaroop is 25 years old Why is Swaroop playing with that python?
Використання змінних і констант
# Filename : var.py i = 5 print(i) i = i + 1 print(i) s = '''This is a multi-line string. This is the second line.''' print(s)
$ python var.py 5 6 This is a multi-line string. This is the second line.
Вирази
#!/usr/bin/python # Filename: expression.py length = 5 breadth = 2 area = length * breadth print('Area is', area) print('Perimeter is', 2 * (length + breadth))
$ python expression.py Area is 10 Perimeter is 14
Оператор if
Оператор if використовується для перевірки умов: «якщо» умова вірна, виконується блок виразів «if-блок», «інакше» виконується інший блок виразів «else-блок». Блок «else» не є обов'язковим.#!/usr/bin/python # Filename: if.py number = 23 guess = int(input('Enter an integer : ')) if guess == number: print('Congratulations, you guessed it.') # New block starts here print('(but you do not win any prizes!)') # New block ends here elif guess < number: print('No, it is a little higher than that') # Another block # You can do whatever you want in a block ... else: print('No, it is a little lower than that') # you must have guess > number to reach here print('Done') # This last statement is always executed, after the if statement is executed
$ python if.py Enter an integer : 50 No, it is a little lower than that Done $ python if.py Enter an integer : 22
Оператор while
Оператор while дозволяє вам багаторазово виконувати блок команд до тих пір, поки виконується умова. Оператор while — приклад того, що називають оператором циклу. Оператор while може мати необов'язковий пункт else.#!/usr/bin/python # Filename: while.py number = 23 running = True while running: guess = int(input('Enter an integer : ')) if guess == number: print('Congratulations, you guessed it.') running = False # this causes the while loop to stop elif guess < number: print('No, it is a little higher than that.') else: print('No, it is a little lower than that.') else: print('The while loop is over.') # Do anything else you want to do here print('Done')
$ python while.py Enter an integer : 50 No, it is a little lower than that. Enter an integer : 22 No, it is a little higher than that. Enter an integer : 23 Congratulations, you guessed it. The while loop is over. Done
Цикл for
#!/usr/bin/python # Filename: for.py for i in range(1, 5): print(i) else: print('The for loop is over')
$ python for.py 1 2 3 4 The for loop is over
Оператор break
Оператор break слугує для «переривання» циклу, тобто зупинення виконання команд навіть якщо умова виконання циклу ще не прийняла значення False або послідовність елементів не закінчилася. Важливо відзначити, що якщо ви перериваєте цикл for чи while оператором break, відповідні їм блоки else виконуватиметься не будуть.#!/usr/bin/python # Filename: break.py while True: s = (input('Enter something : ')) if s == 'quit': break print('Length of the string is', len(s)) print('Done')
$ python break.py Enter something : Programming is fun Length of the string is 18 Enter something : When the work is done Length of the string is 21 Enter something : if you wanna make your work also fun: Length of the string is 37 Enter something : use Python! Length of the string is 12 Enter something : quit Done
Оператор continue
Оператор continue використовується для вказівки, що необхідно пропустити всі команди, які залишилися в поточному блоці циклу і «продовжити» з наступної ітерації циклу.#!/usr/bin/python # Filename: continue.py while True: s = input('Enter something : ') if s == 'quit': break if len(s) < 3: print('Too small') continue print('Input is of sufficient length') # Do other kinds of processing here...
$ python test.py Enter something : a Too small Enter something : 12 Too small Enter something : abc Input is of sufficient length Enter something : quit
Функції
Функції — це фрагменти програми, які багаторазово використовуються. Вони дозволяють вам дати ім'я певному блоку команд з тим, щоби згодом запускати цей блок, використовуючи вказане ім'я. Функції визначаються за допомогою зарезервованого слова «def». Після цього слова вказується «ім'я» функції, за яким слідує пара дужок, в яких можна вказати імена деяких змінних, і заключна двокрапка в кінці рядка.#!/usr/bin/python # Filename: function1.py def sayHello(): print('Hello World!') # block belonging to the function # End of function sayHello() # call the function sayHello() # call the function again
$ python function1.py Hello World! Hello World!
Параметри функцій
Параметри вказуються в дужках при оголошенні функції та розділяються комами. Аналогічно ми передаємо значення, коли викликаємо функцію. Зверніть увагу на термінологію: імена, зазначені в оголошенні функції, називаються «параметрами», тоді як значення, які ви передаєте до функції при її виклику, «аргументами».#!/usr/bin/python # Filename: func_param.py def printMax(a, b): if a > b: print(a, 'is maximum') elif a == b: print(a, 'is equal to', b) else: print(b, 'is maximum') printMax(3, 4) # directly give literal values x = 5 y = 7 printMax(x, y) # give variables as arguments
$ python func_param.py 4 is maximum 7 is maximum
Локальні змінні
Коли ви оголошуєте змінні всередині визначення функції, вони жодним чином не пов'язані з іншими змінними з таким же ім'ям поза функцією — тобто імена змінних є «локальними» в функції. Це називається «областю видимості» змінної. Область видимості всіх змінних обмежена блоком, в якому вони оголошені.#!/usr/bin/python # Filename: func_local.py x = 50 def func(x): print('x is', x) x = 2 print('Changed local x to', x) func(x) print('x is still', x)
$ python func_local.py x is 50 Changed local x to 2 x is still 50
Зарезервоване слово global
Якщо ви хочете присвоїти деяке значення змінній, що визначена на вищому рівні програми, ви повинні вказати, що її ім'я не локальне, а глобальне (global).#!/usr/bin/python # Filename: func_global.py x = 50 def func(): global x print('x is', x) x = 2 print('Changed global x to', x) func() print('Value of x is', x)
$ python func_global.py x is 50 Changed global x to 2 Value of x is 2
Зарезервоване слово nonlocal
Ще один тип області видимості, так звана «нелокальна» (nonlocal), яка являє собою щось середнє між «глобальною» і «локальною». Нелокальні області видимості зустрічаються, коли ви визначаєте функції всередині функцій.#!/usr/bin/python # Filename: func_nonlocal.py def func_outer(): x = 2 print('x is', x) def func_inner(): nonlocal x x = 5 func_inner() print('Changed local x to', x) func_outer()
$ python func_nonlocal.py x is 2 Changed local x to 5
Значення аргументів за замовчуванням
Для деяких функцій ви можете зробити частину параметрів «необов'язковими» і використовувати деякі задані значення за замовчуванням, якщо користувач не бажає вказувати власні значення для них. Ви можете вказати значення аргументів за замовчуванням, додавши до імені параметра у визначенні функції оператор присвоювання «=» з наступним значенням.#!/usr/bin/python # Filename: func_default.py def say(message, times = 1): print(message * times) say('Hello') say('World', 5)
$ python func_default.py Hello WorldWorldWorldWorldWorld
Ключові аргументи
Якщо у вас є деяка функція з великим числом параметрів, і ви хочете вказувати тільки деякі з них при виклику, ви можете задавати значення цих параметрах за їхнім ім’ям — це називається «ключові параметри». У цьому випадку ми використовуємо ім'я (ключ) замість позиції (як було досі), щоб передати аргументи функції.Є дві «переваги» такого підходу: по-перше, використання функції стає простіше, оскільки немає необхідності відстежувати порядок аргументів; по-друге, ми можемо задавати значення тільки деяким обраним аргументам, за умови, що інші параметри мають значення аргументу за замовчуванням.
#!/usr/bin/python # Filename: func_key.py def func(a, b=5, c=10): print('a is', a, 'and b is', b, 'and c is', c) func(3, 7) func(25, c=24) func(c=50, a=100)
$ python func_key.py a is 3 and b is 7 and c is 10 a is 25 and b is 5 and c is 24 a is 100 and b is 5 and c is 50
Змінне число параметрів
Вам може іноді знадобитися визначити функцію, здатну приймати будь яке число параметрів. Цього можна досягти із застосуванням зірочок.Коли ми оголошуємо параметр із зірочкою, як наприклад, «*numbers», всі позиційні аргументи починаючи з цієї позиції і до кінця будуть зібрані в кортеж під ім'ям «numbers».
Аналогічно, коли ми оголошуємо параметри з двома зірочками, як наприклад «**keywords», всі ключові аргументи починаючи з цієї позиції і до кінця будуть зібрані в словник під ім'ям «keywords».
#!/usr/bin/python # Filename: total.py def total(initial=5, *numbers, **keywords): count = initial for number in numbers: count += number for key in keywords: count += keywords[key] return count print(total(10, 1, 2, 3, vegetables=50, fruits=100))
$ python total.py 166
Тільки ключові параметри
Якщо ми хочемо зазначити, що деякі ключові параметри повинні бути доступні тільки по ключу, а не як позиційні аргументи, їх можна оголосити після параметра із зірочкою. Оголошення параметрів після параметра із зірочкою дає тільки ключові аргументи. Якщо для таких аргументів не вказано значення за замовчуванням, звернення до функції викличе помилку.#!/usr/bin/python # Filename: keyword_only.py def total(initial=5, *numbers, vegetables): count = initial for number in numbers: count += number count += vegetables return count print(total(10, 1, 2, 3, vegetables=50)) print(total(10, 1, 2, 3)) # Raises error because we have not supplied a default argument value for 'vegetables'
$ python keyword_only.py 66 Traceback (most recent call last): File "test.py", line 12, inprint(total(10, 1, 2, 3)) TypeError: total() needs keyword-only argument vegetables
Оператор return
Оператор return використовується для повернення з функції, тобто для припинення її роботи і виходу з неї. При цьому можна також «повернути деяке значення» з функції.#!/usr/bin/python # Filename: func_return.py def maximum(x, y): if x > y: return x else: return y print(maximum(2, 3))
$ python func_return.py 3
Рядки документації
Python має особливість, так звані «рядки документації», які зазвичай позначаються скорочено «docstrings». Це дуже важливий інструмент, яким ви повинні користуватись, оскільки він допомагає краще документувати програму і полегшує її розуміння. Вражаюче, але ми можемо отримати рядок документації, наприклад, з функції, навіть під час виконання програми!#!/usr/bin/python # Filename: func_doc.py def printMax(x, y): '''Prints the maximum of two numbers. The two values must be integers.''' x = int(x) # convert to integers, if possible y = int(y) if x > y: print(x, 'is maximum') else: print(y, 'is maximum') printMax(3, 5) print(printMax.__doc__)
$ python func_doc.py 5 is maximum Prints the maximum of two numbers. The two values must be integers.
Немає коментарів:
Дописати коментар