Русский
Русский
English
Статистика
Реклама

Recovery mode Pythonista. Привет, Python

Предисловие

Доброго времени суток, Хабр. Запускаю короткий курс статей, который охватывает ключевые навыки Python, необходимые для изучения Data Science. Данные статьи подойдут для тех, кто уже имел опыт в программировании и хочет добавить Python в свою копилку навыков.

Привет, Python!

Python был назван в честь популярного британского комедийного телешоу 1970-х "Летающий цирк Монти Пайтона", поскольку автор был поклонником этого телешоу.

Просто ради удовольствия попробуйте прочитать приведенный ниже код и предсказать, что он будет делать при запуске. (Если вы не знаете, это нормально!) Он приурочен скетчу Монти Пайтона про спам.

spam_amount = 0print(spam_amount)# Заказ спам, яйца, спам, спам, бекон и спам (еще 4 порции спама)spam_amount = spam_amount + 4if spam_amount > 0:    print("But I don't want ANY spam!")viking_song = "Spam " * spam_amountprint(viking_song)
Output

0

But I don`t want ANY spam!

Spam Spam Spam Spam

Эта забавная программа демонстрирует многие важные аспекты того, как выглядит код Python и как он работает. Давайте подробнее рассмотрим код.

spam_amount = 0

Присвоение переменной: здесь мы создаем переменную с именем spam_amount и присваиваем ей значение 0 используя =, что называется оператором присваивания.

Обратите внимание: если вы программировали на других языках (например, Java или C ++), вы могли заметить некоторые вещи, которые Python не требует от нас здесь:

нам не нужно объявлять spam_amount перед присвоением ему значения

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

print(spam_amount)

Вызов функций: print - это функция Python, которая отображает на экране переданное ей значение. Мы вызываем функции, добавляя круглые скобки после их имени и помещая входные данные (или аргументы) функции в эти скобки.

# Заказ спам, яйца, спам, спам, бекон и спам (еще 4 порции спама)spam_amount = spam_amount + 4

Первая строка выше - это комментарий. В Python комментарии начинаются с символа #.

Далее мы видим пример переопределения. Переопределение значения существующей переменной выглядит так же, как создание новой переменной - по-прежнему используется оператор присваивания =.

В этом случае значение, которое мы присваиваем spam_amount, включает простое арифметическое действие с его предыдущим значением. Когда он встречает эту строку, Python оценивает выражение в правой части = (0 + 4 = 4), а затем присваивает это значение переменной в левой части.

if spam_amount > 0:    print("But I don't want ANY spam!")viking_song = "Spam Spam Spam"print(viking_song)

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

Обратите внимание, как мы указываем, какой код принадлежит if. "But I don't want ANY spam!" выведется, только если spam_amount положительный. Но дальше (например, print (viking_song)) код должен выполняться несмотря ни на что. Как мы (и Python) это различаем?

Двоеточие (:) в конце строки if указывает, что начинается новый блок кода. Последующие строки с отступом являются частью этого блока кода. Некоторые другие языки используют {фигурные скобки} для обозначения начала и конца блоков кода. Использование в Python значимых пробелов может удивить программистов, которые привыкли к другим языкам, но на практике это приводит к более согласованному и читаемому коду, чем языки, которые не требуют отступов блоков кода.

Последующие строки, относящиеся к viking_song, не имеют отступа с дополнительными 4 пробелами, поэтому они не являются частью блока кода if. Мы увидим больше примеров блоков кода с отступом позже, когда мы будем определять функции и использовать циклы.

Этот фрагмент кода также является нашим первым знакомством со строками в Python:

"But I don't want ANY spam!"

Строки можно помечать двойными или одинарными кавычками. (Но поскольку эта конкретная строка содержит символ одинарной кавычки, мы можем запутать Python, пытаясь заключить ее в строку, если мы не будем осторожны.)

viking_song = "Spam " * spam_amountprint(viking_song)

Оператор * можно использовать для умножения двух чисел (3 * 3 равно 9), но, что довольно интересно, мы также можем умножить строку на число, чтобы получить версию, которая повторяется столько раз. Python разрешает несколько маленьких трюков, подобных этому, где операторы типа * и + имеют разное значение в зависимости от того, к чему они применяются. (Технический термин для этого - перегрузка оператора)

Числа и арифметика в Python

Мы уже видели пример переменной, содержащей число выше:

spam_amount = 0

Число - неформальное название для такого рода вещей, но если мы хотим быть более техническими, мы можем спросить Python, как он описывает тип вещи, которым является spam_amount:

type(spam_amount)
int

Здесь int - сокращение от integer. Есть еще один вид чисел, с которым мы часто сталкиваемся в Python:

type(19.95)
float

float - это число с плавающей точкой, которое очень полезно для представления таких вещей, как вес или пропорции.

type() - еще одна встроенная функция, которую мы встречаем (после print()), и ее следует запомнить. Очень полезно иметь возможность спросить Python к какому типу вещей относиться это?.

Естественное желание действий с числами - выполнять арифметические операции. Мы видели оператор + для сложения и оператор * для умножения. Python также покрывает остальные основные кнопки вашего калькулятора:

Оператор

Название

Описание

a + b

Сложение

Сумма a и b

a - b

Вычитание

Разница a и b

a * b

Умножение

Произведение a и b

a / b

Истинное деление

Частное a и b

a // b

Деление с округлением

Частное a и b, без дробных частей

a % b

Модуль

Целочисленный остаток от деления a на b

a ** b

Возведение в степень

a в степени b

-a

Отрицание

Противоположное к а

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

print(5 / 2)print(6 / 2)
2.53.0

Это всегда дает нам float.

Оператор // дает результат, который округляется вниз до целого числа.

print(5 // 2)print(6 // 2)
23

Вы можете придумать, где это будет полезно?

Порядок действий

В арифметике, которую мы изучали в школе, есть соглашения о порядке, в котором выполняются операции. В англоязычной литературе можно встретить технику запоминания порядка с помощью мнемоники, такой как PEMDAS - скобки, возведение в степень, умножение/деление, сложение/вычитание (Parentheses,Exponents,Multiplication/Division,Addition/Subtraction).

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

8 - 3 + 2
7
-3 + 4 * 2
5

Иногда порядок операций по умолчанию не соответствует нашему желанию:

hat_height_cm = 25my_height_cm = 190# Какой у меня рост в метрах в шляпе?total_height_meters = hat_height_cm + my_height_cm / 100print("Height in meters =", total_height_meters, "?")
Height in meters = 26.9 ?

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

total_height_meters = (hat_height_cm + my_height_cm) / 100print("Height in meters =", total_height_meters)
Height in meters = 2.15

Встроенные функции для работы с числами

Функции min и max возвращают минимум и максимум своих аргументов соответственно:

print(min(1, 2, 3))print(max(1, 2, 3))
13

Функция abs возвращает абсолютное значение своего аргумента:

print(abs(32))print(abs(-32))
3232

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

print(float(10))print(int(3.33))# Их даже можно вызывать для строкprint(int('807') + 1)
10.03808

Послесловие

На этом первая статься подошла к концу. Спасибо всем кто читал и уделял время. Также надеюсь, что вы вынесли какую-либо полезную информацию и научились чему-то новому. Продолжайте развиваться и узнавать новое! До скорых встреч.

Источник: habr.com
К списку статей
Опубликовано: 22.02.2021 16:14:10
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Python

Data science

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru