python pycharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/python_pycharm_02.pdf ·...

60
Python_PyCharm_02 Трубочкина Н.К. 2018

Upload: others

Post on 08-Jul-2020

18 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

Python_PyCharm_02

Трубочкина Н.К.

2018

Page 2: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

ЧТО ТАКОЕ АЛГОРИТМ?

1) последовательность простых шагов

2) поток управляющего процесса, который указывает, когда выполняется каждый шаг

3) средство определения времени остановки

1 + 2 + 3 = алгоритм!

Page 3: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

ЧИСЛЕННЫЙ ПРИМЕР

g g*g x/g (g+x/g)/2

3 9 16/3 4.17

4.17 17.36 3.837 4.0035

4.0035 16.0277 3.997 4.000002

Квадратный корень из числа x равен y, или y * y = x Алгоритм для вычисления квадратного корня из числа x (16):

1) Начните с предположения, g (корень)=3. 2) Если g * g достаточно близко к x, остановитесь и скажите, что g, это ответ. 3) В противном случае сделайте новое предположение, усредняя g и x / g (g=(g+x/g)/2) 4) Используя новое предположение, повторите процесс 2-3

Page 4: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

СОЗДАНИЕ АЛГОРИТМОВ

• язык программирования обеспечивает набор примитивных операций

• выражения представляют собой сложные, но легальные комбинации примитивов на языке программирования

• выражения и вычисления имеют значения на языке программирования

Page 5: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

АСПЕКТЫ ЯЗЫКОВ

Примитивные конструкции

• Английский: – слова

• Язык программирования: – числа,

– строки,

– простые операторы

Page 6: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

Синтаксис • Английский: запись

– «мальчик-кошка-собака» - синтаксически не действительна

– «кот обнимает мальчика» - синтаксически действителена (валидна)

• Язык программирования: запись – «привет» 5 - синтаксически не действительна – 3.2 * 5 синтаксически действителена (валидна)

Page 7: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

Статическая семантика Синтаксически действующие строки имеют смысл: • Английский:

«Я голоден» - синтаксически действителен, но статическая семантическая ошибка

• Язык программирования: 3.2 * 5 - синтаксически действительная запись 3+ "hi" - статическая семантическая ошибка

Page 8: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

ПРОГРАММЫ НА ПИТОНЕ • программа представляет собой последовательность

определений и команд • определения оценены • команды, выполняемые интерпретатором Python в

оболочке – команды (инструкции) инструктируют интерпретатор делать что-то – можно вводить непосредственно в оболочку, хранящуюся в

файле, который считывается в оболочку и выполняется

Page 9: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

ОБЪЕКТЫ Программы манипулируют объектами данных • объекты имеют тип, определяющий виды действий,

которые могут делать с ними программы – Анна - человек, поэтому она может ходить, говорить и т. д. – Чубакка - это «непонятно-кто», который может разыграть,

«непонятно-что» и т. д.

• Объекты: – скалярные (нельзя подразделить) – нескалярные (имеют внутреннюю структуру, к которым

можно получить доступ)

Page 10: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

ОБЪЕКТЫ СКАЛЯРНЫЕ • int - целые числа, например, 5 • float - действительные числа, например, 3,27 • bool - логические значения True и False • NoneType - имеет одно значение, None • можно использовать type(), чтобы увидеть тип

объекта:

Page 11: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

КОНВЕРСИИ ТИПА (CAST)

Можно конвертировать объект одного типа в другой

• float (3) - преобразует целое число 3 в действительное с плавающей точкой 3.0

• int (3.9) преобразует действительное с плавающей точкой 3.9 в целое 3

Page 12: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

ПЕЧАТЬ В КОНСОЛИ

Чтобы показать вывод кода пользователю, используйте команду print

In [11]: 3+2

Out[11]: 5

In [12]: print(3+2)

5

Внутри ячейки

На консоли

Page 13: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

ВЫРАЖЕНИЯ

• Можно объединить объекты и операторы для формирования выражений

– выражение имеет значение, которое имеет тип

• синтаксис простого выражения <object> <operator> <object>

Page 14: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

Операторы для ints и floats

Page 15: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

ПРОСТЫЕ ОПЕРАЦИИ • Выражения в круглых скобках, выполняются

первыми • приоритет операторов без круглых скобок

– ** – * – /

• + и - выполняются слева направо, как показано в выражении

Page 16: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

ПРИСВОЕНИЕ ПЕРЕМЕННЫМ ЗНАЧЕНИЙ

• знак равенства - это присвоение значения имени переменной pi = 3.14159

pi_approx = 22/7

– значения, хранятся в памяти компьютера

– присваивание связывает имя со значением

– получить значение, связанное с именем или переменной, можно путем вызова имени, набрав pi

Page 17: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

АБСТРАКТНЫЕ ВЫРАЖЕНИЯ

Зачем давать имена значениям выражений?

• повторное использование имен вместо значений

• проще изменить код позже

pi = 3.14159

radius = 2.2

area = pi*(radius**2)

Page 18: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

ПРОГРАММИРОВАНИЕ против MATH

В программировании вы не «решаете для x»,

pi = 3.14159

radius = 2.2

# area of circle

area = pi*(radius**2)

radius = radius+1

Page 19: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

ИЗМЕНЕНИЕ ЗНАЧЕНИЙ • можно повторно использовать имена переменных в новых операторах

присваивания

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

• значение для области не изменяется, пока вы не сообщите компьютеру, чтобы выполнить расчет снова

Page 20: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

Проверим в PyCharm

Page 21: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

ЧТОБЫ НАЧАТЬ РАБОТАТЬ В PYCHARM…

Практика

Page 22: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

Откройте Pycharm (1) и создайте новый проект (2)

1

2

Page 23: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

Задайте имя проекта (3) и проверьте наличие интерпритатора python.exe (4), нажмите кнопку «Создать» (5)

3

4

5

Page 24: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

Интерфейс Pycharm

Page 25: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

6.Выделите папку проекта 7. Создайте новый файл: File-New-Python File

6

7

Page 26: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

Задайте имя файла (8) и ОК

8

Page 27: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

9. Введите скрипт

print('Hello World!')

10. Выполните его (Run)

9

Page 28: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

Чтобы увеличить размер шрифта: File-Settings-Editor-Font Задайте размер ОК

Page 29: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

Чтобы изменить цвет фона: File-Settings-Editor-Color Scheme Выберите, например, Github ОК

Page 30: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

Тогда ваш интерфейс станет светлым с крупным шрифтом в рабочем поле

Page 31: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

СТРОКИ • Содержат: буквы, специальные символы, пробелы, цифры • Демонстрируются в кавычках или одинарных кавычках

hi = "hello there" • конкатенации строк

name = "ana" greet = hi + name greeting = hi + ""+ name

• выполните некоторые операции в строке, как определено в документации

Python

silly = hi + ""+ name * 3

Page 32: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

Упражнение 1 «Строки»

Page 33: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

Вывод: print

• Используется для вывода данных на консоль

• Ключевое слово print x = 1

print(x)

x_str= str(x)

print("my fav numis", x, ".", "x =", x)

print("my fav numis " + x_str+ ". " + "x = " + x_str)

Page 34: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

Упражнение 2 «Вывод»

Page 35: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

INPUT/OUTPUT: input("") • input("") позволяет распечатать все, что есть в кавычках • связывает строковое значение с переменной

text = input("Type anything... ") print(5*text)

• input("") дает вам строку, поэтому она может использоваться при работе с числами

num= int(input("Type a number... ")) print(5*num)

Page 36: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

Упражнение 3. «Ввод»

Page 37: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

ОПЕРАЦИИ СРАВНЕНИЯ ДЛЯ int,float, string

i и j – имена переменных Значение результата сравнения True или False (Boolean)

• i> j • i>= j • i< j • i<= j • i == j тест равенства, True, если i такой же, как j • i! = j тест неравенства, True, если i не то же самое, что j

Page 38: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

Упражнение 6

«Остаток»

Page 39: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

ЛОГИЧЕСКИЕ ОПЕРАТОРЫ

a и b являются именами переменных (с булевыми значениями)

• not a True если a False/False если a is True

• a and b True если оба True

• a or b True если хотя бы один True

Page 40: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

Пример на сравнение

pset_time= 15

sleep_time= 8

print(sleep_time> pset_time)

derive = True

drink = False

both = drink and derive

print(both)

Page 41: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837
Page 42: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

Пр

им

ер «

По

иск в

лаб

ир

ин

те»

Page 43: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

КОНТРОЛЬ ПОТОКА - ВЕТВЛЕНИЕ if <condition 1>: <expression 1> <expression 2> ... if <condition 2>: <expression 3> <expression 4> ... else: <expression 5> <expression 6> ...

if <condition 3>: <expression 7> <expression 8> ... elif<condition 4>: <expression 9> <expression 10> ... else: <expression 11> <expression 12> ...

<condition>имеет значение True или False вычисляем выражения в блоке, если <condition> True

Page 44: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

Сдвиг Вопрос в Python: как вы обозначаете блоки кода?

Page 45: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

Упражнение 4 «Ввод / вывод с условным оператором»

Page 46: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

Ко

мен

тари

и п

о-р

усски

Page 47: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

y=0

Page 48: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

while

while <condition>: <expression> <expression> ... <condition> определяется в Boolean если <condition> is True, выполните все шаги внутри блока кода вычислите <condition> снова повторяйте до тех пор пока <condition> не станет False

Page 49: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

Пример (while)

n = 0

while n < 5:

print(n)

n = n+1

Page 50: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837
Page 51: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

while и for # более сложный код с циклом while

n = 0 while n < 5: print(n) n = n+1

# то же самое с помощью for n = 0 for n in range(5): print(n)

Page 52: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837
Page 53: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

for

for <variable> in range(<some_num>):

<expression>

<expression> ...

• на каждом шаге цикла, <variable> принимает значение

• на первом шаге, <variable> стартует с наименьшего значения

• на следующем шаге <variable> принимает «предыдущщее значение» + 1

• etc.

Page 54: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

break • сразу же выходит из любого цикла, в котором он находится

• отображает оставшиеся выражения в кодовом блоке

• выискивает только самый внутренний цикл!

while <condition_1>:

while <condition_2>:

<expression_a>

break

<expression_b>

<expression_c>

Page 55: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

break Пример

for i in range(5, 11, 2): mysum += i if mysum == 5: break mysum += 1 print(mysum)

Выведет из цикла со значением mysum 5

Page 56: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

range(start,stop,step) По умолчнию стартовое значение start = 0 и step = 1 Цикл останавливается, когда stop -1

mysum = 0 for i in range(10): mysum += i print(mysum) mysum = 0 for i in range(7, 10): mysum += i print(mysum) mysum = 0 for i in range(5, 11, 2): mysum += i if mysum == 5: break mysum += 1 print(mysum)

Page 57: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837
Page 58: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

for против while for

• нужно знать число итераций

• может закончиться рано через перерывание

• использует счетчик

• можно переписать цикл for с использованием цикла while

while

• неограниченное количество итераций

• рано может закончиться

• может использовать счетчик, но нужно его инициализировать перед циклом и увеличивать его внутри цикла

• нельзя переписать цикл while с

использованием цикла for

Page 59: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

Пример #################### ## EXAMPLE: perfect squares #################### ans = 0 neg_flag = False x = int(input("введите целое число:")) if x < 0: neg_flag = True while ans**2 < x: ans = ans + 1 if ans**2 == x: print("Корень квадратный из ", x, "это", ans) else: print(x, "Это не квадрат целого числа") if neg_flag: print("Минуточку... может быть ", -x, "?")

Page 60: Python PyCharm 02 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_02.pdf · ЧИСЛЕННЫЙ ПРИМЕР g g*g x/g (g+x/g)/2 3 9 16/3 4.17 4.17 17.36 3.837

Задание

• Разберите все примеры из лекции в PyCharm

• Попробуйте самостоятельно модифицировать коды примеров и отслеживайте результаты в PyCharm