Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (1)

Лучшие ответы пользователя

Все ответы (1)
  • Как сделать генерацию случайных номеров?

    @KIPPY
    Я начинающий программист, не судите строго.
    Данный вариант сохраняет всё в текстовый документ. Но думаю вы без труда адаптируете под свои нужды

    import random
    
    
    def generator(r):       # r = количество номеров на выходе
        for k in range(r):
            numbers = []   # Объявляем массив, в который будут закидываться генерируемые значения
            for i in range(9):      # range(Х), Х = количество требуемых цифр
                j = random.randint(0, 9)        # Собственно сам генератор
                numbers.append(j)       # Добавляем сгенерированное число в массив
            str_num = ''.join(map(str, numbers))        # Переводим полученный массив в строку
            with open('test.txt', 'a+') as f:       # Открываю файл(вместо "а+" нужно поставить "w")
                f.write(str(str(str_num) + '\n')     # Записываю в файл построчно
    
    
    # Проверка на уникальность из текстового документа
    def unicle():
        with open('test.txt', 'r') as f:        # Снова открываем, только уже в режиме чтения
            num = f.readlines()     # Считываем строки в массив
            num1 = 0
            i = 0       # счётчик
            s = len(num)        # Определяем, сколько в полученном массиве номеров
            while i < s:        # Ключевой цикл для проверки на уникальность
                n1 = num[num1]      # Выбираем объект из массива
                while num.count(n1) > 1:        # Проверка на наличие копий
                    num.remove(n1)      # Если да - удаляем номер (новый не генерируется)
                    i += 1      # Увеличиваем счётчик дополнительно при удалении, чтобы не возникло ошибок из-за уменьшения количества строк
                i += 1      # Основной счётчик +1
                num1 += 1       # Переход к следующему элементу из массива
            str_num = ''.join(map(str, num))        # Переводим массив в строку
        with open('test.txt', 'r+') as f:
            f.write(str(str_num))       # Перезаписываем результаты в этот же документ

    ну и пишем, соответственно:
    generator(10)
    unicle() - хотя последнее можно добавить в генератор, чтоб красивее смотрелось
    P.S. Можно вообще всё в одну функцию запихнуть
    Да, да, я знаю, что в проверке на уникальность файл дважды открывается.
    Ответ написан
    Комментировать