Kodomo

Пользователь

Учебная страница курса биоинформатики,
год поступления 2019

Python I курс 2019

Материалы к занятию 1

Процесс написания программы

  1. Пишете текст программы в файле с расширением ".py"

  2. Помещаете файл в подходящую директорию на kodomo
  3. Запускаете программу командой python3 <имя файла> на тестовых примерах

  4. Если программа:
    • выдаёт ошибку, то редактируете файл и повторяете п.3.
    • не выдаёт ошибки, но выдаёт неверные результаты, редактируете файл и повторяете п.3.
    • выдаёт верные результаты, тестируете на других примерах
    • ... и так пока не убедитесь, что программа работает верно
  5. Если это домашнее задание или контрольная: переименовываете файл в соответствии с требованиями и помещаете в требуемую диркторию (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