Учебная страница курса биоинформатики,
год поступления 2019
Python I курс 2019
Материалы к занятию 1
Процесс написания программы
Пишете текст программы в файле с расширением ".py"
- Помещаете файл в подходящую директорию на kodomo
Запускаете программу командой python3 <имя файла> на тестовых примерах
- Если программа:
- выдаёт ошибку, то редактируете файл и повторяете п.3.
- не выдаёт ошибки, но выдаёт неверные результаты, редактируете файл и повторяете п.3.
- выдаёт верные результаты, тестируете на других примерах
- ... и так пока не убедитесь, что программа работает верно
- Если это домашнее задание или контрольная: переименовываете файл в соответствии с требованиями и помещаете в требуемую диркторию (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