Найти в Дзене
programmer's notes (python and more)

Программирование на Python. Дополнение к уроку 6 (некоторые особенности синтаксиса Python, задачи)

Оглавление

Доброго времени суток, читатели, зрители моего канала programmer's notes.

Данные заметки это приложение к уроку 6.

Синтаксис Python

В шестом уроке я не много говорил о синтаксисе. Т.е. правилах записи языковых выражений. Надо сказать, что Python не слишком отличается от других алгоритмических языков. Основное отличие заключается в том, что для того, чтобы объединить группу строк в одну условную конструкцию или в один цикл или в одну функции или в один класс используются не скобки, не специальные слова типа begin - end, а просто отступы. Это в значительной степени диктует правила записи программ. Из-за того, что при большом количестве строк, объединенных отступами, читать программу довольно трудно, для Python'а особенно актуальным являются разные конструкции, позволяющие сократить количество таких строк. С другой стороны сильное "сжатие" программы, когда в одной строке могут размещаться с десяток разных действий также усложняет понимание алгоритма. Поэтому очень важен баланс. Ну, а читаемость программы это важный элемент программирования. Об этом много спорят. Я и сам не всегда люблю придерживаться строгих регламентов, полагая, что это несколько убивает творческую сторону программирования. Время от времени я буду возвращаться к этим вопросам в уроках и приложениях к ним. А сейчас продолжим.

И так.

1.

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

a = b = c = d = 10

2.

Несколько операторов присвоения можно объединить с использованием запятой

a, b, c, d = 10, 23, 100, 1000

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

Например

a, b = 10, 20
a, b = b, a
print(a, b)

Таким образом мы поменяли местами значения переменных. Просто и изящно.

3.

Действия над переменными также можно сокращать

a = a + 10 -> a +=10

a = a - 10 -> a -= 10

a = a * 10 -> a *= 10

a = a / 10 -> a /= 10

a = a // 10 -> a //= 10

Такого типа замена подойдет для разных типов данных, но не для всех типов подобные замены могут давать одинаковый результат. Это довольно интересный вопрос и мы будем возвращаться к нему по мере появления в нашем арсенале новых типов данных.

Задачи на целые числа

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

Задача следующая. Дано целое число. Нужно найти все его делители без повторений. Делители 1 и само это число не учитываем.

Поскольку у нас нет с вами средства для запоминания найденных делителей так, чтобы можно было проверить был такой или нет, нужно найти правильный алгоритм, а точнее найти границу, до которой нужно делать проверку. При этом заметим, что делители мы срезу будем получать парами. Например для 100 - 2, 50; 4, 25 и т.д. Граница находится очень просто - это корень квадратный из заданного числа. Легко видеть, что далее будут только повторения.

Вот решение данной задачи. Корень квадратный вычисляется нами как a **0.5.

Всего наилучшего. Оставляйте свои комментарии, не забывайте про лайки и подписывайтесь на мой канал programmer's notes.

Программировать просто, нужно всего лишь соблюдать синтаксис языка
Программировать просто, нужно всего лишь соблюдать синтаксис языка

#программирование #программисты #python #языки программирования