Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.98/47: Рейтинг темы: голосов - 47, средняя оценка - 4.98
7 / 7 / 3
Регистрация: 21.03.2018
Сообщений: 204

Генератор слов

13.06.2019, 05:08. Показов 10587. Ответов 5

Студворк — интернет-сервис помощи студентам
Имеется генератор слов из указанного алфавита, с переменной длиной слов, т.е. можно менять и алфавит и максимальную длину слов
Python
1
2
3
4
5
6
7
8
import itertools
 
a = 'abcdefghijklmnopqrstuvwxyz1234567890' # алфавит
for ch in a:
    with open('db/' + ch + '.txt', 'w', encoding='utf-8') as f:
        for i in range(1, 10): #  задаем мин. длину и макс. длину слова
            for item in itertools.product(a, repeat=i):
                   f.writelines('%s%s\n' % (ch,''.join(item)))
этот генератор пишет в файлы все сгенерированные слова.

Так вот вопрос , кто знает подскажите как переделать в вывод на консоль , но это естественно не проблема , а вот с записью состояния при остановке , и саму остановку
Python
1
2
3
4
5
6
7
8
import itertools
 
a = 'abcdefghijklmnopqrstuvwxyz1234567890' # алфавит
 
for ch in a:
    for i in range(2, 3):
        for item in itertools.product(a, repeat=i):
            print(ch+''.join(item))
вот а как теперь реализовать :
1.) остановку в любой момент с консоли , т.е. типа нажал букву q вернее ввел с консоли q и цикл остановился
2.) запись состояния цикла при остановке , состояние запись в файл
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.06.2019, 05:08
Ответы с готовыми решениями:

Генератор случайных слов
Нужно сгенерировать слово из 5 английский букв На плюсах знаю как это сделаться в питоне как это можно решить?

Создать генератор случайных слов из текста
Задание: Создать генератор случайных слов из текста(а текст находится например в файле) на Python.

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

5
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
13.06.2019, 07:53
1) Ctrl+C
Python
1
2
3
4
5
6
7
8
9
import signal
 
def handler(s, f):
    print('KeyboardInterrupt has been caught')
 
signal.signal(signal.SIGINT, handler)
 
while True:
    pass
1
7 / 7 / 3
Регистрация: 21.03.2018
Сообщений: 204
13.06.2019, 09:56  [ТС]
Рыжий Лис, спасибо получилось вот так , не знаю правильно или нет но работает ,
во время выполнения останавливается по нажатию Ctrl+C
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/env python3
 
import itertools
import signal
 
a = 'abcdefghijklmnopqrstuvwxyz1234567890'  # алфавит
 
def handler(s, f):
    print('Выполнение остановлено')
 
signal.signal(signal.SIGINT, handler)
 
while True:
     for ch in a:
        for i in range(2, 5):
           for item in itertools.product(a, repeat=i):
              print(ch + ''.join(item))
 
pass
посмотрите пожалуйста правильно ?

Добавлено через 1 минуту
хотя и без while True: работает
может не надо while True: ?

Добавлено через 19 минут
осталось как сохранить состояние что бы можно было продолжить на следующий день
первое что приходит в голову ,
сохранить переменные
ch - буква с которой начинается слово
i - цифра размер слова , т.е. кол-во букв в слове
item - вот тут я теряюсь что это , ???????

значит надо открыть файл и записать туда эти переменные

Добавлено через 52 секунды
как то так гляньте
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/env python3
 
import itertools
import signal
 
a = 'abcdefghijklmnopqrstuvwxyz1234567890'  # алфавит
 
def handler(s, f):
    with open('state.txt', 'a', encoding='utf-8') as f:
                print(f'{ch}\n{i}\n{item}', file=f)
 
    print('Выполнение остановлено')
 
signal.signal(signal.SIGINT, handler)
 
for ch in a:
  for i in range(2, 5):
    for item in itertools.product(a, repeat=i):
       print(ch + ''.join(item))
Добавлено через 54 секунды
файл
state.txt
a
4
('f', 'd', 'x', 's')
Добавлено через 2 минуты
а вот теперь как востановить по этим данным циклы , чтобы продолжить как говорится с того же места
0
7 / 7 / 3
Регистрация: 21.03.2018
Сообщений: 204
14.06.2019, 01:05  [ТС]
дальше что то у меня стопарнулось , не могу найти как продолжить выполнение программы ,
понимаю что надо так же повесить ХУК на клавиши типа Ctrl+N или Enter , если по аналогии с остановкой
может так
0
7 / 7 / 3
Регистрация: 21.03.2018
Сообщений: 204
14.06.2019, 11:42  [ТС]
сделал сохранение и восстановление с номера буквы,
т.е. генерацию начали с начального размера слова в две буквы ,
потом остановили в момент остановки итерация находилась на генерации слов размером 5 букв
записали в файл число 5
потом запускаем опять прогу , читаем из файла число ,
и опять начинается генерация слов размером 5 букв (то что указано в файле)
все бы не чего , но начинается опять с положения "aaaaa"
0
7 / 7 / 3
Регистрация: 21.03.2018
Сообщений: 204
17.06.2019, 06:58  [ТС]
вопрос еще актуален,
так и не могу допереть как сделать ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.06.2019, 06:58
Помогаю со студенческими работами здесь

Генератор паролей, функция генератор
import random from string import ascii_lowercase, ascii_uppercase random.seed(1) def randompassword(n): chars =...

Генератор слов
Помогите создать генератор слов, или может кто может скинуть что нибудь готовое, нужен генератор который будет выдавать слова состоящие из...

Генератор слов
Добрый день знатоки. Подскажите как создать генератор слов в цикле вида: aa ab ac .. ba .. И так далее Рад буду идее

Генератор слов
Я запутался в задаче. Не могу найти работающее решение. Вообщем есть метод, который подставляет в wordStr символы, согласно структуре...

Генератор слов
Здравствуйте! Хочу написать программу по поиску слов из набора букв, но даже не представляю с чего начать... Может кто-нибудь посоветовать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru