Курс «Введение в Python и обработку данных»

Лекция 2

Руководитель курса: Адрианов Николай Михайлович, к.ф.-м.н.

Читает курс: Бекбулатов Рамзан

В предыдущей лекции...

Организационные моменты (аудитория, ДЗ, вопросы из зала)

История и версии Python

Python — интерпретируемый язык с динамической типизацией

Существуют разные реализации интерпретатора

Основные типы: int, float, str

Операторы: +, -, *, /, //, **

Операторы сравнения: ==, !=, <, >, <=, >=

Функции

Функция это блок кода, который можно вызывать из других мест

Блок кода оформляется сдвигом в 4 пробела


                        def f(a, b):
                            return a + b

                        def g():
                            print('Hello!')

                        print(f(1, 2))
                    

Условия

Оформляется также со сдвигом в 4 пробела


        def f(a):
            if a >= 2:
                print(str(a) + ' больше, либо равно 2')
            elif a >= 3:  # Сокращение для else if
                print(str(a) + ' больше, либо равно 3')
            else:
                print(str(a) + ' меньше 2')

        f(1)
        f(2)
        f(3)
                    

Циклы


                while УСЛОВИЕ_ПОВТОРЕНИЯ_ЦИКЛА:
                    ТЕЛО_ЦИКЛА
                    


                i = 10
                while i > 0:
                    print(i)
                    i -= 1  # Сокращение для i = i - 1
                    

Циклы

range — это генератор чисел, используется в двух вариациях


        help(range)

        for i in range(10):  # Выдает числа от 0 до N-1
            print('Первый генератор выдал: ' + str(i))

        start = 666
        stop = 999
        step = 100
        # Выдает числа от start до stop-1 с шагом step
        for i in range(start, stop, step):
            print('Второй генератор выдал: ' + str(i))
                    

Модули

Используется конструкция:
import НАЗВАНИЕ_МОДУЛЯ


                        import math
                        help(math)

                        help(math.sin)
                        print(math.sin(0))
                    


                        from math import sin

                        help(sin)
                        print(sin(0))
                    

Работа со строками

Уже знаем сложение строк, умножение на число, но есть много других:


                        help(str)
                    

Строка — неизменяемый тип данных в Python

Получение информации о строке


            a = 'London is the capital of Great Britain'
            print(a.count('a'))  # Количество вхождений
            print(a.startswith('London'))  # Проверка на начало строки
            print(a.isdigit())  # Проверка число ли в строке
                    

Получение другой строки


            a = 'London is the capital of Great Britain'
            print(a.lower())  # Нижний регистр
            print(a.upper())  # Верхний регистр
            print(a.title())  # Каждое слово с большой буквы
            print(a.replace('on', 'ON'))  # Замена
                    

Форматирование строк


            n = 15
            print('N = {}'.format(n))
            print(f'N = {n}')  # f-строки введены в Python 3.6
                    

Форматирование строк


            count = 15
            value = 1.8
            print('N = {}, X = {}'.format(count, value))
            print('X = {1}, N = {0}'.format(count, value))
            print(f'N = {count}, X = {value}')
                    

Взаимодействие с ОС

Ввод пользователя

Функция input выдаёт строку, введённую пользователем


                        help(input)
                        a = input()
                        n = input('Введите N: ')
                    

Работа с файлами: чтение

Файлы открываются в разных режимах


                        help(open)
                        with open('a.txt', 'r') as file:
                            a = file.read()
                        print(a)
                    

Работа с файлами: запись


                        a = 'London is the capital of Great Britain'
                        with open('a.txt', 'w') as file:
                            file.write(a)
                    

Порешаем задачи

Пользователь вводит радиус шара R. Вывести площадь поверхности и объём шара.

Пользователь вводит числа, пока не пришлёт 0. Вывести количество введенных положительных чисел.

Пользователь вводит числа, пока не пришлёт 0. Вывести максимальное по модулю число.

Задача DNA на Rosalind

Следующее занятие

Больше поговорим про структуры данных: списки, словари и т.д.

Будем использовать Jupyter Notebook для более интерактивной работы

Домашнее задание

Решения нужно заливать в свой репозиторий PythonCourse с названием hw_<номер задачи>.py, к примеру, hw_B1.py

  • (*) B1: Решить задачу RNA на Rosalind.
  • (*) B2: Решить задачу REVC на Rosalind.
  • (*) B3: Решить задачу HAMM на Rosalind.

  • (опционально) B4: Сделать угадайку чисел. Программа «загадывает» случайное число от 1 до 100, пользователь по очереди вводит числа, пока не угадает. Программа отвечает ему «больше» или «меньше» текущее число относительно загаданного. Интересные вариации приветствуются.