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

30 дней питона 👨‍💻 – День 6 – Петли II & функции

Радость кодирования Python должна быть в том, чтобы видеть короткие, краткие, читаемые классы, которые выражают много … Tagged с Python, Challenge.

30 дней питона (серия 30 частей)

Радость кодирования Python должна видеть короткие, краткие, читаемые классы, которые выражают много действий в небольшом количестве четкого кода, а не в повреждениях тривиального кода, который приводит читателя до смерти. Гвидо Ван Россум

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

Петли продолжались

Пока петли

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

hungry = True
while(hungry): # This is always true so it keeps printing until system crashes!
  print('Give me something to eat!!')

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

hungry = True
while(hungry):
    print('Give me something to eat!!')
    break # prints only once and stops the loop execution
hungry = True
satisfaction = 0
while(satisfaction < 10):
  satisfaction += 1
  print('Give me something to eat!!') # prints 10 times

Еще одна особенность В то время как Цикл – это то, что его можно объединить с иначе блокировать.

hungry = True
satisfaction = 0
while satisfaction < 10:
  satisfaction += 1
  print('Give me something to eat!!')
else:
    print('I am super satisfied now') # gets printed once condition is falsy

Следует отметить, что если перерыв оператор используется в блоке Whine, затем иначе Блок не выполняется.

В то время как VS для петли

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

while True:
  response_from_user = input('Enter some message. Enter bye to exit')
  if(response_from_user == 'bye'):
    break

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

Быстрое кодирование

Давайте найдем дублированные электронные письма в списке электронных писем и распечатаем их.

email_list = ['roger@hey.com','michael@hey.com','roger@hey.com','prince@gmail.com']
duplicate_emails = []
for email in email_list:
  if email_list.count(email) > 1 and email not in duplicate_emails:
    duplicate_emails.append(email)
print(duplicate_emails)

Это был мой подход к решению проблемы. Дайте мне знать, как бы вы решили это в комментариях. Хорошо! Время переключиться на интересную тему, функция Анкет

Функции

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

def blow_fire(): # This part is called function definition
  print('fire 🔥 🔥 🔥')

blow_fire() # This part is called function invocation
blow_fire() # It can be called any number to times to perform some action

Аргументы и параметры

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

def blower(name, emoji): # parameters
  print(f'{name} {emoji} {emoji} {emoji}')

blower('fire', '🔥') # arguments
blower('water', '🌊')

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

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

Выше также называется Позиционные параметры или позиционные аргументы Из -за порядка или положения параметров или аргументов имеет значение.

def blower(name = 'fire', emoji = '🔥'): # default parameters
  print(f'{name} {emoji} {emoji} {emoji}')

blower('fire', '🔥') # arguments
blower('water', '🌊')
blower() # fire 🔥 # this works as the function has default parameters defined

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

возврат это ключевое слово в Python, которое используется для возврата значения из функции. Чтобы сделать функции более полезными, ему необходимо вернуть некоторое значение на основе оценки выражения. Если оператор возврата не указан, или выражение оператора возврата не оценивается в тип данных, то функция возвращает Нет Анкет В мире JavaScript это Нет может быть связан с void Анкет

возврат оператор завершает функцию и выходит из нее.

def multiplier(num1, num2):
  return num1 * num2

result = multiplier(2,3)
print(result) # 6

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

def sum(num1):
  def child(num2):
    return num1 + num2
  return child

add_10 = sum(10)
print(add_10(20)) # 30  (Closure!!!)
print(add_10(50)) # 60
print(add_10(100)) # 110

Ура! Я только что подтвердил, что есть концепция Закрытие в Python также, как в JavaScript. Это настолько эффективно в создании заводских функций. В приведенном выше блоке кода я смог создать общую функцию add_10 и передайте динамические аргументы в это, чтобы генерировать другой результат. Как это круто!

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

Методы – это просто функции, которые определены внутри объекта или в других терминах, они «принадлежат» объектами. Они называются с помощью имени объекта, за которым следует Анкет оператор, чтобы выполнить или вызвать их.

Docstrings

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

«Код рассказывает вам, как; комментарии говорят вам, почему». — Джефф Этвуд (он же ужас кодирования)

def test_function():
  '''
  This function just prints test to the console.
  '''
  print('test')

test_function()

«Код чаще читается, чем написан». — Гвидо Ван Россум

https://www.programiz.com/python-programming/docstrings

*args и ** kwargs

*Args – это короткая форма аргументов, а ** Kwargs означает аргументы ключевых слов. Они используются, когда функция должна принимать любое количество аргументов или аргументов ключевых слов.

def powerful_function(*args):
  print(args)

powerful_function(1,3,2) # (1, 3, 2) --> Returns a tuple

def super_function(**kwargs):
  print(kwargs)

super_function(name='John', age='45') # {'name': 'John', 'age': '45'} --> Returns a dict

https://www.programiz.com/python-programming/args-and-kwargs

В мире JavaScript параметры REST ES6 используются для извлечения всех аргументов, передаваемых функции. Еще одна ментальная модель создана!

Сфера

Область в простых терминах означает “К каким переменным у меня есть доступ?” . Это тот вопрос, который задает интерпретатор при чтении кода, чтобы найти объем переменных. В Python переменные имеют функция Область что означает, что переменные, определенные внутри функции, не могут быть доступны вне функции.

num = 1
def confusing_function():
    num = 10
    return num

print(num) # 1 => Global Scope
print(confusing_function()) # 10 => Local Scope

Это правила сферы действия, которыми следует интерпретатор Python:

  • Начните с местного. Присутствует переменная? Затем принесите значение. Если нет, то продолжайся
  • Определена ли переменная в локальной области родительской функции? Извлечь значение, если присутствует, иначе продолжайте
  • Присутствует ли переменная в глобальном объеме? Извлечь значение, если присутствует, иначе продолжайте
  • Является ли переменная встроенная функция? Извлекать значение еще в выход

Узнайте больше о сфере масштаба в Python

Это также отличная статья о сфере масштаба

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

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

Удачного!

30 дней питона (серия 30 частей)

Оригинал: “https://dev.to/arindamdawn/30-days-of-python-day-6-3ghp”