#pragma css /css/2019.css <<BI>> = Python I курс 2019 = == Материалы к занятию 1 == === Процесс написания программы === 1. Пишете текст программы в файле с расширением "`.py`" 1. Помещаете файл в подходящую директорию на kodomo 1. Запускаете программу командой `python3 <имя файла>` на тестовых примерах 1. Если программа: * выдаёт ошибку, то редактируете файл и повторяете п.3. * не выдаёт ошибки, но выдаёт неверные результаты, редактируете файл и повторяете п.3. * выдаёт верные результаты, тестируете на других примерах * ... и так пока не убедитесь, что программа работает верно 1. Если это домашнее задание или контрольная: переименовываете файл в соответствии с требованиями и помещаете в требуемую диркторию (credits или homeworks) === Python как калькулятор === Выполнив в командной строке на kodomo команду `python3`, попадаете в интерактивную среду python, в которой можете экспериментировать с возможностями языка (или просто подсчитывать что-нибудь). Выход из интерактивной среды: `Ctrl-D` или `exit()` или `quit()`. === Типы int, float, str === Тип переменной (как правило) автоматически определяется при первом присваивании ей значения. Присваивание выглядит как <переменная> = <значение>. Например: {{{ a = 5 w256 = 3.8 newstring = "New string" }}} Переменная a — типа int, переменная w256 — типа float, переменная newstring — типа str. Тип int предназначен для хранения целых чисел, тип float — действительных чисел, тип str — строк. Строка "5.6" и число 5.6 — разные вещи! Преобразование между типами делается так: {{{ a1 = "5.6" b1 = float(a1) a2 = 5.6 b2 = str(a2) c2 = int(a2) d2 = round(a2) a3 = float(5) }}} Выполните всё это и обратите внимание на разницу между значениями с2 и d2. ''Замечание: в компьютере могут храниться только те действительные числа, которые являются кратными некоторой (достаточно маленькой) целой отрицательной степени двойки. Другие числа (например, 1/10) могут храниться только в приближённом виде.'' ''Упражнение: умножьте 0.2 на 0.2 и объясните результат'' === Действия над числами и строками === + и – (в случае чисел) понятно. `*` означает умножение, а `**` возведение в степень. / означает деление (результат всегда типа float, даже если делимое и делитель целые), а // деление нацело (результат целый, если делимое и делитель целые). % означает взятие остатка от деления Строки можно складывать между собой операцией + и умножать на числа. === Консольный ввод и вывод === Чтобы в программу можно было ввести данные с консоли, надо написать что-то вроде: {{{ newstr = input("Please input something: ") }}} В переменную newstr попадёт строка (тип str), состоящая из всего, что пользователь введёт до нажатия клавиши Enter. Чтобы ввести в программу число с консоли, надо написать что-то вроде: {{{ newint = int(input("Please input a number: ")) }}} и аналогично с float. Функция print() выводит на консоль свои аргументы. === Некоторые встроенные функции === Python знает некоторое количество т.н. "встроенных функций". Примерами являются уже упомянутые print, input и round, а также все названия типов: int, float, str, ... Полный список встроенных функций см. https://docs.python.org/3/library/functions.html Полезная встроенная функция: len, которая возвращает длину своего аргумента – строки. С числами работают функции abs, max, min. При этом функции max и min могут принимать любое число аргументов, например: {{{ >>> max(5, 7, -1) 7 }}} === Метод строки format === У каждого типа есть свой список методов. Метод — это фактически функция, первый аргумент которой пишется не в скобках, а предшествует названию метода и отделяется от него точкой. Например (метод строки upper): {{{ >>> s = "abc" >>> s 'abc' >>> s.upper() 'ABC' }}} Полный список методов строки можно получить, выполнив в интерактивной среде Python команду: {{{ >>> dir(str) }}} (стоит обращать внимание только на методы, не начинающиеся с подчёркивания). Часто используемый метод строки — format. Пример применения: {{{ a = 2 print("Square root of {} is {:.4f}".format(a, a ** 0.5)) }}} В данном случае на консоль будет выдано: {{{ Square root of 2 is 1.4142 }}} Пояснение: каждому аргументу в круглых скобках после "format" должна соответствовать пара фигурных скобок в строке. Если в фигурных скобках ничего нет: "`{}`", данные форматируются по умолчанию. "`{:.4f}`" означает, что соответствующее число должно быть напечатано с четырьмя знаками после десятичной точки. Пока достаточно этого примера, но вообще можете попробовать почитать https://docs.python.org/3/library/string.html#formatstrings Только не впадайте в депрессию, если ничего не поймёте `:)` Лучше поэкспериментируйте в интерактивной среде и позадавайте нам вопросов. === Некоторые символы форматирования в строках === Вот такая строка: {{{ s = "A\tB\tC\naa\tbb\tcc" }}} будет напечатана функцией print следующим образом: {{{ >>> print(s) A B C aa bb cc }}} потому что `\n` означает переход к новой строке на печати, а `\t` — переход к очередной позиции табулятора (обычно это позиции с номерами, кратными 8, если номером первой позиции считать 0). Если всё ещё непонятно, стоит поэкспериментировать. Обратите внимание, что `\n` — это один байт, а не два, и аналогично `\t`: {{{ >>> len("a\tb") 3 }}}