<MyRusakov.ru />

Финансовая грамотность от А до Я

Финансовая грамотность от А до Я

Данный курс в кратчайшие сроки обучит Вас финансовой грамотности. Эти знания позволят Вам получить, как минимум, серьёзную финансовую стабильность, а, как максимум, финансовую независимость.

В рамках курса даётся большое количество практических заданий, благодаря которым Вы не просто посмотрите курс, а действительно выполните ряд важнейших шагов, о которых в нём говорится.

Помимо самого курса Вас ждёт ещё бесплатный ценный Бонус: «Ранний выход на пенсию». В рамках этого Бонуса Вы узнаете, какой должен быть капитал конкретно в Вашем случае, варианты его получения, а также какие есть стратегии вывода капитала на пенсии и где их можно протестировать.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Пишем генератор тестов на Python

Пишем генератор тестов на Python

Здравствуйте!В данной статье я хотел бы показать пример программы на Python,которая генерирует билеты на основе вопросов из текстового файла.

Текстовый файл с вопросами:

// Файл questions.txt Что такое Python и где он используется?
Что такое PHP и когда он был создан?
Как прижать футер к низу старницы?
Как создать блок посередине страницы?
Как выравнять текст внутри блока?

Внизу на рисунке представлена Excel-форма (файл TicketTemplate.xlsx):

Python Contest Generator

Скрипт ticketgenerator.py:

import random
import openpyxl


# читает файл в список
def read2list(file):
    # открываем файл в режиме чтения utf-8
    file = open(file, 'r', encoding='utf-8')

    # читаем все строки и удаляем переводы строк
    lines = file.readlines()
    lines = [line.rstrip('\n') for line in lines]

    file.close()

    return lines


# возвращает 5 случайных вопросов
def get_questions():
    answers = read2list('answers_data.txt')
    items = random.choices(population=answers, k=5)
    return items


# класс шаблон билета
class TicketTemplate:

    def __init__(self, my_book='./TicketTemplate.xlsx'):
        self.book_name = my_book
        self.book = None
        self.sheet = None

    def open(self):
        self.book = openpyxl.load_workbook(self.book_name)
        self.sheet = self.book.active

    def get_cell_value(self, row, column):
        return self.sheet.cell(row=row, column=column).value

    def set_cell_value(self, row, column, value):
        self.sheet.cell(row=row, column=column).value = value

    def get_rows(self):
        rows = [self.get_cell_value(1, 1), self.get_cell_value(3, 1),
                self.get_cell_value(4, 1), self.get_cell_value(5, 1),
                self.get_cell_value(6, 1), self.get_cell_value(7, 1)
                ]

        return rows

    def set_ticket_number(self, number):
        self.sheet.cell(row=1, column=1).value = 'Билет №'  str(number)

    def set_questions(self, questions):
        for row, question in enumerate(questions):
            question_number = row  1
            self.set_cell_value(row  3, 1, '{0}. {1}'.format(question_number, question.strip()))

    def flush(self):
        self.book.save(self.book_name)

    def save(self, file_name):
        self.book.save(file_name)


Используется следующим образом:


from tiсketgenerator import *

tt = TicketTemplate()
tt.open()

for ticket in range(1, 31):
    tt.set_ticket_number(ticket)
    tt.set_questions(get_questions())
    tt.save('./Билеты/Билет №{0}.xlsx'.format(ticket))

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.