Так что же такое интерпретация?
Интерпретация — построчный анализ, обработка и выполнение исходного кода программы или запроса (в отличие от компиляции, где весь текст программы, перед запуском, анализируется и транслируется в машинный или байт-код, без её выполнения).
Хорошо, поняли. Что дальше?
Дальше есть два способа запуска своих програм и первый из них - писать в самом IDLE, либо использую команду:
Windows:
Как мы поняли из предыдущего урока,
Функция - это определнный фрагмент кода, который имеет идентификатор или имя и к которому можно обратиться из другого места программы.
Аргумент - это то, что мы передаем в функцию для выполнения определенных операций. И в следующей строке:
По умолчанию
Аргументом функции
Вывод: 10
И так далее. Таким образом, у вас есть возможность выполнять любые математические операции.
Интерпретация — построчный анализ, обработка и выполнение исходного кода программы или запроса (в отличие от компиляции, где весь текст программы, перед запуском, анализируется и транслируется в машинный или байт-код, без её выполнения).
Хорошо, поняли. Что дальше?
Дальше есть два способа запуска своих програм и первый из них - писать в самом IDLE, либо использую команду:
Windows:
py <путь к файлу с кодом>
Например, ваша программа находится в диске D:py
D:\my_code.py
Linux:python3 <путь к файлу с кодом>
Mac:python <путь к файлу с кодом>
Мы разобрались с запуском программы, теперь изучим простейшие математические операции, которые возможно применять в Python.Как мы поняли из предыдущего урока,
print()
это функция Python, которая отвечает за вывод заданного аргумента на консоль. Функция - это определнный фрагмент кода, который имеет идентификатор или имя и к которому можно обратиться из другого места программы.
Аргумент - это то, что мы передаем в функцию для выполнения определенных операций. И в следующей строке:
print("I love Python")
Строка "I love Python" является аргументом, переданным в функцию print()
.По умолчанию
print()
переносит каждый раз курсор консоли на новую строку и чтобы избежать этого вы можете определить аргумент end
, как пустой. print("I love Python", end='')
print(", but I hate PHP")
Результат: I love Python, but I hate PHPАргументом функции
print()
может быть не только строка. print(5+5)
Вывод: 10
print(6*7)
Вывод: 42print(30-2)Вывод: 28
print(10/2)Вывод: 5
print(2**4)Вывод: 16
И так далее. Таким образом, у вас есть возможность выполнять любые математические операции.
#sammelsurium
По итогам голосования ~40% аудитории этого канала уже не новички, а потому, чтобы скрасить ваше ожидание нового и полезного материала по основной тематике канала, вводится рубрика #sammelsurium, где будет выкладываться всякая интересная и полезная всячина
А сегодня мы познакомися с бесподобной Джулией Эванс. Ее книжки видел каждый из вас хоть раз в жизни. Автор комиксов, пособий, мемов, а так же специалист высшего класса. Под постом я опубликую одну из ее книженций, а перейдя по ссылке (https://firstvds.ru/blog/julia_evans), можно ознакомиться со всем переведенным на русский язык творчеством
По итогам голосования ~40% аудитории этого канала уже не новички, а потому, чтобы скрасить ваше ожидание нового и полезного материала по основной тематике канала, вводится рубрика #sammelsurium, где будет выкладываться всякая интересная и полезная всячина
А сегодня мы познакомися с бесподобной Джулией Эванс. Ее книжки видел каждый из вас хоть раз в жизни. Автор комиксов, пособий, мемов, а так же специалист высшего класса. Под постом я опубликую одну из ее книженций, а перейдя по ссылке (https://firstvds.ru/blog/julia_evans), можно ознакомиться со всем переведенным на русский язык творчеством
FirstVDS
Комиксы про администрирование от Джулии Эванс | FirstVDS
Комиксы Джулии Эванс — это как занимательное администрирование в картинках. Ведь Джулия — крутой программист и не менее крутой художник (со своим стилем, конечно). Мы Джулией восхищаемся — поэтому переводим её журналы и подборки слайдов. Создали отдельную…
В этом уроке мы ознакомимся с типами данных, переменнами и функцией ввода данных.
Что такое переменная?
Переменная - поименованная, либо адресуемая иным способом область памяти, адрес которой можно использовать для осуществления доступа к данным. Данные, находящиеся в переменной (то есть по данному адресу памяти), называются значением этой переменной.
Допустим, у нас есть код:
Целочисленное значение 5 в рамках языка Python по сути своей является объектом. Объект, в данном случае – это абстракция для представления данных, данные – это числа, строки и т.п. Каждый объект имеет три атрибута – это идентификатор, значение и тип. Идентификатор – это уникальный признак объекта, позволяющий отличать объекты друг от друга, а значение – непосредственно информация, хранящаяся в памяти, которой управляет интерпретатор.
Таким образом, переменные могут быть разных типов, в зависимости от типа её значения, например:
- Логические переменные (Boolean Type)
Принимает значение True (истина) или False (ложь).
- Числовой тип (Numeric Type)
Числовой тип, в свою очередь также делится на следующие типы:
int (integer) – целое число
float – число с плавающей точкой
complex – комплексное число
- Строки (Text Sequence Type) - str (string)
Это основные типы данных, которые мы будем использовать на первых уроках, остальные же будем осваивать по ходу материала.
Имя переменной не должно совпадать с ключевыми словами интерпретатора Python. Список ключевых слов можно найти здесь.
Тип переменной можно определить с помощью функции
Вывод:
>>> Write your name:
>>> abinba
>>> Hello, abinba!
Однако, при попытке ввести число и проводить с ней арифметические действия, мы получаем ошибку
И мы получим:
>>> 5
>>> 8
>>> Sum = 13
Что такое переменная?
Переменная - поименованная, либо адресуемая иным способом область памяти, адрес которой можно использовать для осуществления доступа к данным. Данные, находящиеся в переменной (то есть по данному адресу памяти), называются значением этой переменной.
Допустим, у нас есть код:
number = 5
Для того, чтобы объявить и сразу инициализировать переменную необходимо написать её имя, потом поставить знак равенства и значение, с которым эта переменная будет создана, что мы и сделали. Мы объявили переменную с именем number
и присвили ей значение целого числа 5.Целочисленное значение 5 в рамках языка Python по сути своей является объектом. Объект, в данном случае – это абстракция для представления данных, данные – это числа, строки и т.п. Каждый объект имеет три атрибута – это идентификатор, значение и тип. Идентификатор – это уникальный признак объекта, позволяющий отличать объекты друг от друга, а значение – непосредственно информация, хранящаяся в памяти, которой управляет интерпретатор.
Таким образом, переменные могут быть разных типов, в зависимости от типа её значения, например:
- Логические переменные (Boolean Type)
Принимает значение True (истина) или False (ложь).
- Числовой тип (Numeric Type)
Числовой тип, в свою очередь также делится на следующие типы:
int (integer) – целое число
float – число с плавающей точкой
complex – комплексное число
- Строки (Text Sequence Type) - str (string)
Это основные типы данных, которые мы будем использовать на первых уроках, остальные же будем осваивать по ходу материала.
Имя переменной не должно совпадать с ключевыми словами интерпретатора Python. Список ключевых слов можно найти здесь.
Тип переменной можно определить с помощью функции
type()
. Например:>>> a = 10
>>> b = "hello"
>>> type(a)
<class 'int'>
>>> type(b)
<class 'str'>
Мы уже знаем, что для вывода данных в Python используется функция print()
. А для ввода данных в программу используется функция input()
. Функция input()
передает введенные данные в программу. Их можно присвоить переменной. Например:print("Write your name:")
a = input()
print("Hello, " + a + "!")
Тут знаками "+" мы объединяем строки. Функции со строками мы также пройдем на следующих уроках. Вывод:
>>> Write your name:
>>> abinba
>>> Hello, abinba!
Однако, при попытке ввести число и проводить с ней арифметические действия, мы получаем ошибку
TypeError
. Дело в том, что по умолчания функция input()
присваивает значение типа str
(то есть, строки). Если мы хотим, чтобы функция input()
присваивало целочисленное значение мы должны использовать функцию int()
(чтобы получить число с плавающей точкой - float()
). Она конвертирует переменную в целочисленный тип. Тогда наш код будет выглядеть так:a = int(input())
b = int(input())
sum = a + b
print("Sum = " + str(sum))
Мы конвертируем переменную sum
в тип str
, потому что переменная sum
- типа int
и не может быть добавлена к концу нашей строки в функции print()
.И мы получим:
>>> 5
>>> 8
>>> Sum = 13
pythonworld.ru
Ключевые слова, модуль keyword | Python 3 для начинающих и чайников
Краткий обзор ключевых слов в Python 3, модуль keyword для работы с ключевыми словами.
Домашняя работа
Создайте программы, которые:
- Будет вычислять квадрат введеного вами числа
- Будет запрашивать у вас ФИО, телефон, адрес и суммировать это в конце.
- Дайте свободу своей фантазии и сделайте произольную программу по пройденным темам.
С результатом поделитесь в нашем чате. Код в чат не отправлять, только админам!
Создайте программы, которые:
- Будет вычислять квадрат введеного вами числа
- Будет запрашивать у вас ФИО, телефон, адрес и суммировать это в конце.
- Дайте свободу своей фантазии и сделайте произольную программу по пройденным темам.
С результатом поделитесь в нашем чате. Код в чат не отправлять, только админам!
#sammelsurium
Компьютер размером с мяч для тенниса? Для Клингера Пауля нет ничего невозможного! Основа системы - микроконтроллер ATtiny1614 с подключенным к нему OLED дисплеем с разрешением 128 × 64 пикселя. Все это спрятано в корпус, напечатанный на 3D-принтере. Уже не терпится взглянуть? Ниже привожу ссылку на репозиторий Пауля, где имеется весь исходный код проекта на С и ассемблере. Интересно, кто-нибудь решится повторить?
https://github.com/PaulKlinger/tinypc
Компьютер размером с мяч для тенниса? Для Клингера Пауля нет ничего невозможного! Основа системы - микроконтроллер ATtiny1614 с подключенным к нему OLED дисплеем с разрешением 128 × 64 пикселя. Все это спрятано в корпус, напечатанный на 3D-принтере. Уже не терпится взглянуть? Ниже привожу ссылку на репозиторий Пауля, где имеется весь исходный код проекта на С и ассемблере. Интересно, кто-нибудь решится повторить?
https://github.com/PaulKlinger/tinypc
GitHub
GitHub - PaulKlinger/tinypc: A miniature gaming PC / laptop
A miniature gaming PC / laptop. Contribute to PaulKlinger/tinypc development by creating an account on GitHub.
Этот урок будет посвящен операциям со строками и логическим выражениям и сравнениям.
Базовые операции со строками:
- Конкатенация (сложение)
В программировании False обычно приравнивают к нулю, а True – к единице. Чтобы в этом убедиться, можно преобразовать булево значение к целочисленному типу:
Не путайте операцию присваивания значения переменной, обозначаемую в языке Python одиночным знаком "равно", и операцию сравнения (два знака "равно"). Присваивание и сравнение – разные операции.
В таких случаях используются специальные операторы, объединяющие два и более простых логических выражения. Широко используются два оператора – так называемые логические И (and) и ИЛИ (or).
Чтобы получить True при использовании оператора and, необходимо, чтобы результаты обоих простых выражений, которые связывает данный оператор, были истинными. Если хотя бы в одном случае результатом будет False, то и все сложное выражение будет ложным.
Чтобы получить True при использовании оператора or, необходимо, чтобы результат хотя бы одного простого выражения, входящего в состав сложного, был истинным. В случае оператора or сложное выражение становится ложным лишь тогда, когда ложны оба составляющие его простые выражения.
Допустим, переменной x было присвоено значение 8 (x = 8), переменной y присвоили 13 (y = 13). Логическое выражение y < 15 and x > 8 будет выполняться следующим образом. Сначала выполнится выражение y < 15. Его результатом будет True. Затем выполнится выражение x > 8. Его результатом будет False. Далее выражение сведется к True and False, что вернет False.
Базовые операции со строками:
- Конкатенация (сложение)
>>> S1 = 'spam'
>>> S2 = 'eggs'
>>> print(S1 + S2)
spameggs
- Дублирование строки>>> print('spam' * 3)
spamspamspam
- Длина строки (функция len)>>> len('spam')
4
- Доступ по индексу>>> S = 'spam'
>>> S[0]
's'
>>> S[2]
'a'
- Извлечение среза>>> s = 'spameggs'
>>> s[3:5]
'me'
>>> s[:6]
'spameg'
>>> s[1:]
'pameggs'
>>> s[:]
'spameggs'
Логические выражения и сравненияВ программировании False обычно приравнивают к нулю, а True – к единице. Чтобы в этом убедиться, можно преобразовать булево значение к целочисленному типу:
>>> int(True)
1
>>> int(False)
0
Говоря на естественном языке (например, русском) мы обозначаем сравнения словами "равно", "больше", "меньше". В языках программирования используются специальные знаки, подобные тем, которые используются в математике: > (больше), < (меньше), >= (больше или равно), <= (меньше или равно), == (равно), != (не равно).Не путайте операцию присваивания значения переменной, обозначаемую в языке Python одиночным знаком "равно", и операцию сравнения (два знака "равно"). Присваивание и сравнение – разные операции.
>>> a = 10
>>> b = 5
>>> a + b > 14
True
>>> a < 14 - b
False
>>> a <= b + 5
True
>>> a != b
True
>>> a == b
False
На практике нередко возникает необходимость в более сложных выражениях. Может понадобиться получить ответа "Да" или "Нет" в зависимости от результата выполнения двух простых выражений. Например, "на улице идет снег или дождь", "переменная news больше 12 и меньше 20".В таких случаях используются специальные операторы, объединяющие два и более простых логических выражения. Широко используются два оператора – так называемые логические И (and) и ИЛИ (or).
Чтобы получить True при использовании оператора and, необходимо, чтобы результаты обоих простых выражений, которые связывает данный оператор, были истинными. Если хотя бы в одном случае результатом будет False, то и все сложное выражение будет ложным.
Чтобы получить True при использовании оператора or, необходимо, чтобы результат хотя бы одного простого выражения, входящего в состав сложного, был истинным. В случае оператора or сложное выражение становится ложным лишь тогда, когда ложны оба составляющие его простые выражения.
Допустим, переменной x было присвоено значение 8 (x = 8), переменной y присвоили 13 (y = 13). Логическое выражение y < 15 and x > 8 будет выполняться следующим образом. Сначала выполнится выражение y < 15. Его результатом будет True. Затем выполнится выражение x > 8. Его результатом будет False. Далее выражение сведется к True and False, что вернет False.
>>> x = 8
>>> y = 13
>>> y < 15 and x > 8
False
В языке Python есть еще унарный логический оператор not, т. е. отрицание. Он превращает правду в ложь, а ложь в правду. Унарный он потому, что применяется к одному выражению, стоящему после него, а не справа и слева от него как в случае бинарных and и or.>>> not y < 15
False
Также можно построить сравнение таким образом:>>> 5 < y <= 6
False
Домашняя работа
1) Напишите программу, которая запрашивала бы у пользователя два числа и выводила бы True или False в зависимости от того, больше первое число второго или нет.
2) Есть два слова: "Spy", "Telethon". Используя только эти две строки и операции со строками, составьте слово "python".
3) Составьте программу, которая будет запрашивать любое слово и число n - количество повторений этого слова. Программа должна вывести это слово n раз.
4) Даны параметры квадратного уравнения (a, b, c) и координаты точки (x, y). Принадлежит ли точка параболе?
5) Даны координаты точки (x, y) и координаты точек пересечения трех прямых, образующих треугольник. Входит ли точка в область получившегося треугольника?
1) Напишите программу, которая запрашивала бы у пользователя два числа и выводила бы True или False в зависимости от того, больше первое число второго или нет.
2) Есть два слова: "Spy", "Telethon". Используя только эти две строки и операции со строками, составьте слово "python".
3) Составьте программу, которая будет запрашивать любое слово и число n - количество повторений этого слова. Программа должна вывести это слово n раз.
4) Даны параметры квадратного уравнения (a, b, c) и координаты точки (x, y). Принадлежит ли точка параболе?
5) Даны координаты точки (x, y) и координаты точек пересечения трех прямых, образующих треугольник. Входит ли точка в область получившегося треугольника?
#sammelsurium
На днях меня очень заинтересовала статья на хабре о хренении вещественных чисел в памяти компьютера и их о работке, где был подробно рассмотрен метод Unum, разработанный математиком Джоном Густавсоном. По некоторым данным, метод превосходит по производительности классический IEEE 754, а так же поддерживает дополненный набор операций. Подробней ознакомиться с материалом можно по ссылкам:
https://habr.com/ru/post/462385
https://en.wikipedia.org/wiki/Unum_%28number_format%29
На днях меня очень заинтересовала статья на хабре о хренении вещественных чисел в памяти компьютера и их о работке, где был подробно рассмотрен метод Unum, разработанный математиком Джоном Густавсоном. По некоторым данным, метод превосходит по производительности классический IEEE 754, а так же поддерживает дополненный набор операций. Подробней ознакомиться с материалом можно по ссылкам:
https://habr.com/ru/post/462385
https://en.wikipedia.org/wiki/Unum_%28number_format%29
Хабр
Новый подход может помочь нам избавиться от вычислений с плавающей запятой
В 1985 году Институт инженеров электротехники и электроники (IEEE) установил стандарт IEEE 754, отвечающий за форматы чисел с плавающей запятой и арифметики, к...
Условный оператор if
Ход выполнения программы может быть линейным, то есть таким, когда выражения выполняются друг за другом, начиная с первого и заканчивая последним. Ни одна строка кода программы не пропускается.
Однако чаще в программах бывает не так. При выполнении кода, в зависимости от тех или иных условий, некоторые его участки могут быть опущены, в то время как другие – выполнены. Иными словами, в программе может присутствовать ветвление, которое реализуется условным оператором – особой конструкцией языка программирования.
Проведем аналогию с реальностью. Человек живет по расписанию. Можно сказать, расписание – это алгоритм для человека, его программный код, подлежащий выполнению. В расписании на 18.00 стоит поход в бассейн. Однако экземпляр биоробота класса Homo sapiens через свои рецепторы-сенсоры получает информацию, что воду из бассейна слили. Разумно было бы отменить занятие по плаванию, т. е. изменить ход выполнения программы-расписания. Одним из условий посещения бассейна должно быть его функционирование, иначе должны выполняться другие действия.
Подобная нелинейность действий может быть реализована в компьютерной программе. Например, часть кода будет выполняться лишь при определенном значении конкретной переменной.
В Питоне вместо фигурных скобок используется двоеточие. Обособление вложенного кода, т. е. тела оператора, достигается за счет отступов. В программировании принято делать отступ равным четырем пробелам. Однако также можно использовать клавишу табуляции (Tab) на клавиатуре. Большинство сред программирования автоматически делают отступ, как только вы поставите двоеточие и перейдете на новую строку. Однако при работе в интерактивном режиме надо делать отступы вручную.
В языках программирования разделение на две ветви достигается с помощью добавления блока else, получается так называемое if–else (если-иначе). Синтаксис выглядит примерно так:
Другой пример:
Для проверки условия, отличающегося от главного условия можно использовать elif.
Ход выполнения программы может быть линейным, то есть таким, когда выражения выполняются друг за другом, начиная с первого и заканчивая последним. Ни одна строка кода программы не пропускается.
Однако чаще в программах бывает не так. При выполнении кода, в зависимости от тех или иных условий, некоторые его участки могут быть опущены, в то время как другие – выполнены. Иными словами, в программе может присутствовать ветвление, которое реализуется условным оператором – особой конструкцией языка программирования.
Проведем аналогию с реальностью. Человек живет по расписанию. Можно сказать, расписание – это алгоритм для человека, его программный код, подлежащий выполнению. В расписании на 18.00 стоит поход в бассейн. Однако экземпляр биоробота класса Homo sapiens через свои рецепторы-сенсоры получает информацию, что воду из бассейна слили. Разумно было бы отменить занятие по плаванию, т. е. изменить ход выполнения программы-расписания. Одним из условий посещения бассейна должно быть его функционирование, иначе должны выполняться другие действия.
Подобная нелинейность действий может быть реализована в компьютерной программе. Например, часть кода будет выполняться лишь при определенном значении конкретной переменной.
if n < 100:
b = n + a
Если n меньше то выполняется то, заключено во вложенном коде (b = n + a)
, который выделяется табуляцией.В Питоне вместо фигурных скобок используется двоеточие. Обособление вложенного кода, т. е. тела оператора, достигается за счет отступов. В программировании принято делать отступ равным четырем пробелам. Однако также можно использовать клавишу табуляции (Tab) на клавиатуре. Большинство сред программирования автоматически делают отступ, как только вы поставите двоеточие и перейдете на новую строку. Однако при работе в интерактивном режиме надо делать отступы вручную.
В языках программирования разделение на две ветви достигается с помощью добавления блока else, получается так называемое if–else (если-иначе). Синтаксис выглядит примерно так:
tomato = 50
cigarettes = 150
if tomato + cigarettes > 170 :
print("170 рублей недостаточно")
else:
print("Чек оплачен")
Если условие при инструкции if оказывается ложным, то выполняется блок кода при инструкции else. Ситуация, при которой бы выполнились обе ветви, невозможна. Либо код, принадлежащий if, либо код, принадлежащий еlse. Никак иначе. В заголовке else никогда не бывает логического выражения.Другой пример:
a = 5 > 0
if a:
print(a)
Здесь a связана с булевым значением. В данном случае это True. Отметим, что в выражении a = 5 > 0 присваивание выполняется после оператора сравнения, так что подвыражение 5 > 0 выполнится первым, после чего его результат будет присвоен переменной a. На будущее, если вы сомневаетесь в последовательности выполнения операторов, используйте скобки, например так: a = (5 > 0)Для проверки условия, отличающегося от главного условия можно использовать elif.
you = "programmer"
if you == "programmer":
print("Great!")
elif you == "cosmonaut":
print("Wow!")
else:
print("Hm...")
Итак, в этом уроке мы изучили работу условного оператора if и поняли, как работают else и elif.Домашняя работа
1) Из двух случайных чисел, одно из которых четное, а другое нечетное, определить и вывести на экран нечетное число.
2) Вводятся три разных числа. Найти, какое из них является средним (больше одного, но меньше другого).
3) Найти корни квадратного уравнения и вывести их на экран, если они есть. Если корней нет, то вывести сообщение об этом. Конкретное квадратное уравнение определяется коэффициентами a, b, c, которые вводит пользователь.
4) Вводятся три целых числа. Определить какое из них наибольшее.
5) Вводятся координаты (x;y) точки и радиус круга (r). Определить принадлежит ли данная точка кругу, если его центр находится в начале координат.
1) Из двух случайных чисел, одно из которых четное, а другое нечетное, определить и вывести на экран нечетное число.
2) Вводятся три разных числа. Найти, какое из них является средним (больше одного, но меньше другого).
3) Найти корни квадратного уравнения и вывести их на экран, если они есть. Если корней нет, то вывести сообщение об этом. Конкретное квадратное уравнение определяется коэффициентами a, b, c, которые вводит пользователь.
4) Вводятся три целых числа. Определить какое из них наибольшее.
5) Вводятся координаты (x;y) точки и радиус круга (r). Определить принадлежит ли данная точка кругу, если его центр находится в начале координат.
#sammelsurium
Все ведь знают про хабр (habr.com)? Да-да, тот самый, который считается одним из самых больших IT-ресурсов рунета. Если нет, то рекомендую каждому зарегистрироваться и подписаться на интересующие Вас хабы. Тут найдутся блоги и статьи почти на все темы.
Но это было лишь небольшое отступление, которым я оправдываю освещение статьи на хабре уже вторую неделю подряд. Она действительно стоит того и рассчитана скорее на новичков. Очень просто и доходчиво (на примере трансформеров) описана вся концепция ООП.
Achtung! Много букв и анимации!
https://habr.com/ru/post/463125/
Все ведь знают про хабр (habr.com)? Да-да, тот самый, который считается одним из самых больших IT-ресурсов рунета. Если нет, то рекомендую каждому зарегистрироваться и подписаться на интересующие Вас хабы. Тут найдутся блоги и статьи почти на все темы.
Но это было лишь небольшое отступление, которым я оправдываю освещение статьи на хабре уже вторую неделю подряд. Она действительно стоит того и рассчитана скорее на новичков. Очень просто и доходчиво (на примере трансформеров) описана вся концепция ООП.
Achtung! Много букв и анимации!
https://habr.com/ru/post/463125/
Хабр
ООП в картинках
ООП (Объектно-Ориентированное Программирование) стало неотъемлемой частью разработки многих современных проектов, но, не смотря на популярность, эта парадигма является далеко не единственной. Если...
#sammelsurium
Прошу прощения, не удержался. Хочу повторить опрос из статьи: будь вы трансформером, в кого бы вы предпочли трансформироваться?
Прошу прощения, не удержался. Хочу повторить опрос из статьи: будь вы трансформером, в кого бы вы предпочли трансформироваться?
Anonymous Poll
9%
Автомобиль
34%
Самолет
18%
Вертолет
7%
Танк
12%
Степлер
20%
Воздержусь
Циклы. Цикл while
Цикл - разновидность управляющей конструкции в высокоуровневых языках программирования, предназначенная для организации многократного исполнения набора инструкций. Также циклом может называться любая многократно исполняемая последовательность инструкций, организованная любым способом.
Простой пример цикла можно взять из любого блога в интернете, где статьи выводятся циклом в одинаковом виде, но с различным содержанием. Пока истинно условие цикла, цикл будет выполняться.
Цикл while (“пока”) позволяет выполнить одну и ту же последовательность действий, пока проверяемое условие истинно. Условие записывается до тела цикла и проверяется до выполнения тела цикла. Как правило, цикл while используется, когда невозможно определить точное значение количества проходов исполнения цикла.
Синтаксис цикла while в простейшем случае выглядит так:
Например, следующий фрагмент программы напечатает на экран квадраты всех целых чисел от 1 до 10:
Вот еще один пример использования цикла while для определения количества цифр натурального числа n:
Приведем пример программы, которая считывает числа до тех пор, пока не встретит отрицательное число. При появлении отрицательного числа программа завершается. В первом варианте последовательность чисел завершается числом 0 (при считывании которого надо остановиться).
Увлечение инструкциями break и continue не поощряется, если можно обойтись без их использования.
Цикл - разновидность управляющей конструкции в высокоуровневых языках программирования, предназначенная для организации многократного исполнения набора инструкций. Также циклом может называться любая многократно исполняемая последовательность инструкций, организованная любым способом.
Простой пример цикла можно взять из любого блога в интернете, где статьи выводятся циклом в одинаковом виде, но с различным содержанием. Пока истинно условие цикла, цикл будет выполняться.
Цикл while (“пока”) позволяет выполнить одну и ту же последовательность действий, пока проверяемое условие истинно. Условие записывается до тела цикла и проверяется до выполнения тела цикла. Как правило, цикл while используется, когда невозможно определить точное значение количества проходов исполнения цикла.
Синтаксис цикла while в простейшем случае выглядит так:
while условие:
блок инструкций
При выполнении цикла while сначала проверяется условие. Если оно ложно, то выполнение цикла прекращается и управление передается на следующую инструкцию после тела цикла while. Если условие истинно, то выполняется инструкция, после чего условие проверяется снова и снова выполняется инструкция. Так продолжается до тех пор, пока условие будет истинно. Как только условие станет ложно, работа цикла завершится и управление передастся следующей инструкции после цикла.Например, следующий фрагмент программы напечатает на экран квадраты всех целых чисел от 1 до 10:
i = 1В этом примере переменная i внутри цикла изменяется от 1 до 10. Такая переменная, значение которой меняется с каждым новым проходом цикла, называется счетчиком. Заметим, что после выполнения этого фрагмента значение переменной i будет равно 11, поскольку именно при i == 11 условие i <= 10 впервые перестанет выполняться.
while i <= 10:
print(i ** 2)
i += 1
Вот еще один пример использования цикла while для определения количества цифр натурального числа n:
n = int(input())После тела цикла можно написать слово else: и после него блок операций, который будет выполнен один раз после окончания цикла, когда проверяемое условие станет неверно:
length = 0
while n > 0:
n //= 10 # это эквивалентно n = n // 10
length += 1
print(length)
i = 1Казалось бы, никакого смысла в этом нет, ведь эту же инструкцию можно просто написать после окончания цикла. Смысл появляется только вместе с инструкцией break. Если во время выполнения Питон встречает инструкцию break внутри цикла, то он сразу же прекращает выполнение этого цикла и выходит из него. При этом ветка else исполняться не будет. Разумеется, инструкцию break осмыленно вызывать только внутри инструкции if, то есть она должна выполняться только при выполнении какого-то особенного условия.
while i <= 10:
print(i)
i += 1
else:
print('Цикл окончен, i =', i)
Приведем пример программы, которая считывает числа до тех пор, пока не встретит отрицательное число. При появлении отрицательного числа программа завершается. В первом варианте последовательность чисел завершается числом 0 (при считывании которого надо остановиться).
a = int(input())Другая инструкция управления циклом — continue (продолжение цикла). Если эта инструкция встречается где-то посередине цикла, то пропускаются все оставшиеся инструкции до конца цикла, и исполнение цикла продолжается со следующей итерации.
while a != 0:
if a < 0:
print('Встретилось отрицательное число', a)
break
a = int(input())
else:
print('Ни одного отрицательного числа не встретилось')
Увлечение инструкциями break и continue не поощряется, если можно обойтись без их использования.
Домашнее задание
1) По данному целому числу N распечатайте все квадраты натуральных чисел, не превосходящие N, в порядке возрастания.
2) Дано целое число, не меньшее 2. Выведите его наименьший натуральный делитель, отличный от 1.
3) По данному натуральному числу N найдите наибольшую целую степень двойки, не превосходящую N. Выведите показатель степени и саму степень.
Операцией возведения в степень пользоваться нельзя!
4) Последовательность Фибоначчи определяется так:
φ(0) = 0, φ(1) = 1, φ(n) = φ(n)−1 + φ(n)−2.
По данному числу n определите n-е число Фибоначчи φn.
5) Последовательность состоит из натуральных чисел и завершается числом 0. Определите, сколько элементов этой последовательности больше предыдущего элемента.
1) По данному целому числу N распечатайте все квадраты натуральных чисел, не превосходящие N, в порядке возрастания.
2) Дано целое число, не меньшее 2. Выведите его наименьший натуральный делитель, отличный от 1.
3) По данному натуральному числу N найдите наибольшую целую степень двойки, не превосходящую N. Выведите показатель степени и саму степень.
Операцией возведения в степень пользоваться нельзя!
4) Последовательность Фибоначчи определяется так:
φ(0) = 0, φ(1) = 1, φ(n) = φ(n)−1 + φ(n)−2.
По данному числу n определите n-е число Фибоначчи φn.
5) Последовательность состоит из натуральных чисел и завершается числом 0. Определите, сколько элементов этой последовательности больше предыдущего элемента.