Различия между версиями 2 и 3
Версия 2 от 2022-09-12 15:03:05
Размер: 4835
Редактор: FrBrGeorge
Комментарий:
Версия 3 от 2022-09-13 11:10:34
Размер: 5029
Редактор: hbd
Комментарий: Грабли с Гитхабом и ssh-ключом
Удаления помечены так. Добавления помечены так.
Строка 3: Строка 3:
   * FIXME: для доступа в репозитории на GH/GL нужны ssh-ключи, об их создании/добавлении нужно заранее рассказать

09.13 Командная строка и объекты

  • /!\ У всех уже должны быть аккаунты на GH/GL!

    • FIXME: для доступа в репозитории на GH/GL нужны ssh-ключи, об их создании/добавлении нужно заранее рассказать
  • Заведение хранилища для практикума
    • На git.cs.msu.ru под названием pythonprac или на GH/GL!
  • Повторение git clone / hack / git add / git commit / git push
  • Вывод и ввод данных в Python:
    • print()

    • input() и eval(input())

      • Что такое eval()

      • Конструкции вида a, b, c = eval(input())

    • {i} Простейшая программа, которая вводит и выводит

    • {i} Организовать ввод так, чтобы данная программа:

      •    1 a, b, c = eval(input())
           2 print(type(a), type(b), type(c))
        
        выдала следующее:
        <class 'int'> <class 'str'> <class 'builtin_function_or_method'>
  • Самостоятельное тестирование
    • Перенаправление ввода-вывода с помощью "<" и ">"; понятие о stdout vs stderr

    • Сравнение двух файлов с помощью diff

      • (!) если у вас windows: имеется утилита на Python

      • Где она лежит??
        python3 -c 'import os; print(os.path.join(os.path.dirname(os.__file__), "Tools", "scripts", "diff.py"))'
      • А потом python3 путь-до-diff.py ключи файл1 файл2

    • {i} Сравнение двух файлов с помощью diff:

      • Создать два файла из результатов python3 -m calendar 2022 месяц, где месяц — это 09 и 12

      • Сравнить их с ключом -u

  • Решение заданий
    • Структура git-репозитория для практикума

    • <!> Задачa_1 (демо):

      • Написать программу, которая вводит два числа через запятую и выводит наибольшее из них
      • Написать три теста
    • Решение Задачи_1
      • (клон репозитория)
      • Создать каталог
        mkdir `date "+%Y%m%d`/1
      • перейти туда
      • написать программу prog.py

      • создать каталог mkdir tests

      • создать три входных файла: echo "число, число" > tests/1.in" (а также tests/2.in и tests/3.in)

      • создать три эталонных вывода (проверить глазками, что они действительно эталонные☺): python3 prog.py < tests/1.in > tests/1.out)

  • Обязательный commit и push во время семинара

  • <!> Задача_2:

    • напишите программу, которая:
      • получает через стандартный вход (stdin) последовательность целых чисел в виде списка, например
        • [7,2,3]
      • сортирует эти числа по возрастанию
      • выводит результат в стандартный выход (stdout) через пробел и запятую
        • 2, 3, 7
    • составьте вручную 3 тестовых примера, содержащих:
      • текстовый файл с входными данными
      • текстовый файл с эталонными выходными данными (соответствующими входным, в правильном формате)
    • протестируйте программу каждом из составленных примеров:
      • запустите программу с подачей входных данных из подготовленного файла и перенаправлением вывода в другой текстовый файл
      • при помощи команды diff проверьте совпадение файла с выводом и файла с эталонным выводом
    • напишите "ошибочную" программу, которая выдает на выход числа в том же порядке, в котором получила на вход. Протестируйте её на подготовленных входных данных. Каким должен быть тестовый пример, чтобы ошибка в программе не была обнаружена?
    • Обязательный commit и push

LecturesCMC/PythonIntro2022/Prac/01_Commandline (последним исправлял пользователь hbd 2022-09-13 11:10:34)