Similar presentations:
Простейшие программы
1.
1Программирование
на языке Python
§ 55. Простейшие программы
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
2.
2Алгоритмизация и программирование, язык Python, 10 класс
Простейшая программа
# Это пустая программа
Что делает эта
? программа?
программа?
комментарии после #
не обрабатываются
кодировка utf-8
по умолчанию)
# -*- coding: utf-8 -*# Это пустая программа
Windows:
cp1251
"""
Это тоже комментарий
"""
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
3.
3Алгоритмизация и программирование, язык Python, 10 класс
Вывод на экран
print ( "2+2=?" )
print ( "Ответ: 4" )
автоматический
переход на
новую строку
Протокол:
2+2=?
Ответ: 4
К.Ю. Поляков, Е.А. Ерёмин, 2014
print ( '2+2=?' )
print ( 'Ответ: 4' )
http://kpolyakov.spb.ru
4.
4Алгоритмизация и программирование, язык Python, 10 класс
Задания
«B»: Вывести на экран текст «лесенкой»
Вася
пошел
гулять
«C»: Вывести на экран рисунок из букв
Ж
ЖЖЖ
ЖЖЖЖЖ
ЖЖЖЖЖЖЖ
HH HH
ZZZZZ
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
5.
5Алгоритмизация и программирование, язык Python, 10 класс
Сложение чисел
Задача. Ввести с клавиатуры два числа и найти их сумму.
Протокол:
Введите два целых числа
25 30
пользователь
25+30=55
компьютер
компьютер считает сам!
? 1. Как ввести числа в память?
2. Где хранить введенные числа?
3. Как вычислить?
4. Как вывести результат?
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
6.
6Алгоритмизация и программирование, язык Python, 10 класс
Сумма: псевдокод
ввести два числа
вычислить их сумму
вывести сумму на экран
Псевдокод – алгоритм на
русском языке с элементами
языка программирования.
! Компьютер не может исполнить псевдокод!
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
7.
7Алгоритмизация и программирование, язык Python, 10 класс
Переменные
Переменная – это величина, имеющая имя, тип
и значение. Значение переменной можно
изменять во время работы программы.
Значение
Имя
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
8.
8Алгоритмизация и программирование, язык Python, 10 класс
Имена переменных
МОЖНО использовать
• латинские буквы (A-Z, a-z)
заглавные и строчные буквы различаются
• русские буквы (не рекомендуется!)
• цифры
имя не может начинаться с цифры
• знак подчеркивания _
Какие имена правильные?
AXby R&B 4Wheel Вася “PesBarbos”
TU154 [QuQu] _ABBA A+B
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
9.
9Алгоритмизация и программирование, язык Python, 10 класс
Типы переменных
a=4
print ( type(a) )
целое число
(integer)
<class 'int'>
a = 4.5
print ( type(a) )
вещественное
число
<class 'float'>
a = "Вася"
print ( type(a) )
символьная строка
<class 'str'>
a = True
print ( type(a) )
логическая
<class 'bool'>
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
10.
Алгоритмизация и программирование, язык Python, 10 класс10
Зачем нужен тип переменной?
Тип определяет:
• область допустимых значений
• допустимые операции
• объём памяти
• формат хранения данных
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
11.
11Алгоритмизация и программирование, язык Python, 10 класс
Как записать значение в переменную?
При записи нового значения
! старое
удаляется из памяти!
оператор
присваивани
я
a = 5
a = 7
старое удаляется из памяти!
a
5
7
Оператор – это команда языка
программирования (инструкция).
Оператор присваивания – это команда для
записи нового значения переменной.
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
12.
12Алгоритмизация и программирование, язык Python, 10 класс
Ввод значения с клавиатуры
a
5
ждет, пока пользователь введет
! 1. Программа
значение и нажмет Enter.
значение и нажмет Enter.
2. Введенное значение записывается в
переменную a (связывается с именем a)
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
13.
13Алгоритмизация и программирование, язык Python, 10 класс
Ввод значения с клавиатуры
ввести строку с
клавиатуры и связать с
переменной a
a = input()
b = input()
Протокол:
с=a + b
21
33
2133
print ( c )
? Почему?
! Результат функции input – строка символов!
преобразовать
в целое число
a = int( input() )
b = int( input() )
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
14.
14Алгоритмизация и программирование, язык Python, 10 класс
Ввод двух значений в одной строке
a, b = map ( int, input().split() )
21 33 input()
ввести строку с клавиатуры
21 33 input().split()
целые
применить
разделить строку
на части по
пробелам
21 33 map ( int, input().split() )
эту
операцию
к каждой части
a, b = map ( int, input().split() )
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
15.
15Алгоритмизация и программирование, язык Python, 10 класс
Ввод с подсказкой
a = input ( "Введите число: " )
Введите число: 26
подсказка
? Что не так?
a = int( input("Введите число: ") )
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
16.
Алгоритмизация и программирование, язык Python, 10 класс16
Изменение значений переменной
a = 5
b = a + 2
a = (a + 2)*(b – 3)
b = b + 1
28
28 =(5+2)*(7-3)
a
b
55
77
=5+2
88
=7+1
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
17.
17Алгоритмизация и программирование, язык Python, 10 класс
Вывод данных
print ( a )
значение
переменной
print ( "Ответ: ", a )
значение и
текст
перечисление через запятую
print ( "Ответ: ", a+b )
вычисление
выражения
print ( a, "+", b, "=", c )
через пробелы
2 + 3 = 5
print ( a, "+", b, "=", c, sep = "" )
2+3=5
К.Ю. Поляков, Е.А. Ерёмин, 2014
убрать разделители
http://kpolyakov.spb.ru
18.
Алгоритмизация и программирование, язык Python, 10 класс18
Сложение чисел: простое решение
a = int ( input() )
b = int ( input() )
c=a+b
print ( c )
? Что плохо?
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
19.
19Алгоритмизация и программирование, язык Python, 10 класс
Сложение чисел: полное решение
print ( "Введите два числа: " )
a = int ( input() )
подсказка
b = int ( input() )
c=a+b
print ( a, "+", b, "=", c )
Протокол:
компьютер
Введите два целых числа
пользователь
25 30
25 + 30 = 55
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
20.
20Алгоритмизация и программирование, язык Python, 10 класс
Форматный вывод
целое
a = 123
print ( "{:5d}".format(a) )
123
print ( f"{a:5d}")
123
a = 5
print ( f"{a:5d}{a*a:5d}{a*a*a:5d}")
5
25
125
5 знаков 5 знаков 5 знаков
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
21.
21Программирование
на языке Python
§ 56. Вычисления
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
22.
22Алгоритмизация и программирование, язык Python, 10 класс
Типы данных
• int
# целое
• float
# вещественное
• bool
# логические значения
• str # символьная строка
a=5
print ( type(a) )
a = 4.5
print ( type(a) )
a = True
print ( type(a) )
a = "Вася"
print ( type(a) )
К.Ю. Поляков, Е.А. Ерёмин, 2014
<class 'int'>
<class 'float'>
<class 'bool'>
<class 'str'>
http://kpolyakov.spb.ru
23.
23Алгоритмизация и программирование, язык Python, 10 класс
Арифметическое выражения
3
1
2
4
5
6
a = (c + b**5*3 - 1) / 2 * d
Приоритет (старшинство):
5
c
+
b
⋅3−1
1)скобки
a=
⋅d
2
2)возведение в степень **
3)умножение и деление
перенос на
4)сложение и вычитание
a = (c + b*5*3 - 1) \\
/2*d
a = (c + b*5*3
- 1) / 2 * d
К.Ю. Поляков, Е.А. Ерёмин, 2014
следующую
строку
перенос внутри
скобок разрешён
http://kpolyakov.spb.ru
24.
24Алгоритмизация и программирование, язык Python, 10 класс
Деление
Классическое деление:
a = 9; b = 6
x = 3 / 4
# = 0.75
x = a / b
# = 1.5
x = -3 / 4 # = -0.75
x = -a / b # = -1.5
Целочисленное деление (округление «вниз»!):
a = 9; b = 6
x = 3 // 4
# = 0
x = a // b
# = 1
x = -3 // 4 # = -1
x = -a // b # = -2
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
25.
25Алгоритмизация и программирование, язык Python, 10 класс
Остаток от деления
% – остаток от деления
d = 85
b = d // 10
# 8
a = d % 10
# 5
d = a % b
# 5
d = b % a
# 3
Для отрицательных чисел:
a = -7
b = a // 2
d = a % 2
К.Ю. Поляков, Е.А. Ерёмин, 2014
# -4
# 1
! Как в математике!
остаток 0
-7 = (-4)*2 + 1
http://kpolyakov.spb.ru
26.
26Алгоритмизация и программирование, язык Python, 10 класс
Сокращенная запись операций
a += b # a = a + b
a -= b # a = a - b
a *= b # a = a * b
a /= b # a = a / b
a //= b # a = a // b
a %= b # a = a % b
К.Ю. Поляков, Е.А. Ерёмин, 2014
a += 1
увеличение на 1
http://kpolyakov.spb.ru
27.
27Алгоритмизация и программирование, язык Python, 10 класс
Вещественные числа
и дробная части числа разделяются
! Целая
точкой!
точкой!
Форматы вывода:
x = 123.456
print( x )
print(f"{x:10.2f}")
всего знаков
123.456
123.46
в дробной части
print(f"{x:10.2g}")
значащих цифр
К.Ю. Поляков, Е.А. Ерёмин, 2014
1.2e+02
1,2 1022
http://kpolyakov.spb.ru
28.
28Алгоритмизация и программирование, язык Python, 10 класс
Вещественные числа
Экспоненциальный формат:
–5
3,333333 10–5
x = 1./30000
print("{:e}".format(x)) 3.333333e-05
x = 12345678.
print("{:e}".format(x)) 1.234568e+07
1,234568 1077
x = 123.456
print("{:e}".format(x)) 1.234560e+02
print("{:10.2e}".format(x))
1.23e+02
всего
знаков
К.Ю. Поляков, Е.А. Ерёмин, 2014
в дробной части
http://kpolyakov.spb.ru
29.
29Алгоритмизация и программирование, язык Python, 10 класс
Стандартные функции
abs(x) — модуль числа
int(x) — преобразование к целому числу
round(x) — округление
подключить
математический модуль
import math
math.pi
— число «пи»
math.sqrt(x) — квадратный корень
math.sin(x) — синус угла, заданного в радианах
math.cos(x) — косинус угла, заданного в радианах
math.exp(x) — экспонента ех
math.ln(x)
— натуральный логарифм
math.floor(x) — округление «вниз»
math.ceil(x) — округление «вверх»
x = math.floor(1.6)# 1 x = math.floor(-1.6) #-2
x = math.ceil(1.6) # 2 x = math.ceil(-1.6) #-1
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
programming