Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.08.2022, 13:22   #1
Lektorfuja
Форумчанин
 
Аватар для Lektorfuja
 
Регистрация: 04.11.2016
Сообщений: 355
По умолчанию Генератор случайной буквы из английского алфавита (python)

Дано 26 букв английского алфавита. Программа рандомно (случайным образом) выводит одну букву.
Как это реализовать на python? Наверно будет массив?
мой блог :patreon.com/hopkins1988 . facebook группы:"программирование на Андроид","
"Программирование чистый код"
Lektorfuja вне форума Ответить с цитированием
Старый 05.08.2022, 13:25   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Массив уже есть и называется ASCII, ну или другая кодовая страница. chr ord и вперед
p51x вне форума Ответить с цитированием
Старый 05.08.2022, 14:36   #3
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

1. В Python есть модуль string. В этом модуле есть готовые наборы символов, например:
Код:
import string
whitespace = ' \t\n\r\v\f'
ascii_lowercase = 'abcdefghijklmnopqrstuvwxyz'
ascii_uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
И не только. Т.о. можно получить строку нужных символов.
Строку можно сделать и свою.

2. Строку преобразуем в список и перемешиваем список
Код:
import random
mystr = ' <тут набор ваших символов>'
lst = list(mystr)
nlist = random.shuffle(lst)
После перемешивания можно выводить символы до конца списка, а можно перемешивать всякий раз, перед выбором символа, .... Тут полная фантазия.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 05.08.2022, 16:59   #4
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 954
По умолчанию

Python выводит 10 случайных символов благодаря chr()

Код:
import random
N=10
c=0
while c<N:
	a=random.randrange(65,91)
	print(chr(a))
	c=c+1
онлайн работает https://rextester.com/OXWNL10544

или проще 1 строка

Код:
import random; print(chr(random.randrange(65,91)))
помню задумывалась тема про заполнение массивов случайными
и алгоритмы есть на нескольких ЯП
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую

Последний раз редактировалось сфинкс; 06.08.2022 в 13:19.
сфинкс вне форума Ответить с цитированием
Старый 05.08.2022, 20:11   #5
Lektorfuja
Форумчанин
 
Аватар для Lektorfuja
 
Регистрация: 04.11.2016
Сообщений: 355
По умолчанию

Цитата:
Сообщение от ViktorR Посмотреть сообщение
1. В Python есть модуль string. В этом модуле есть готовые наборы символов, например:
Код:
import string
whitespace = ' \t\n\r\v\f'
ascii_lowercase = 'abcdefghijklmnopqrstuvwxyz'
ascii_uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
И не только. Т.о. можно получить строку нужных символов.
Строку можно сделать и свою.

2. Строку преобразуем в список и перемешиваем список
Код:
import random
mystr = ' <тут набор ваших символов>'
lst = list(mystr)
nlist = random.shuffle(lst)
После перемешивания можно выводить символы до конца списка, а можно перемешивать всякий раз, перед выбором символа, .... Тут полная фантазия.
код проверил. Но код выводит пустоту
мой блог :patreon.com/hopkins1988 . facebook группы:"программирование на Андроид","
"Программирование чистый код"
Lektorfuja вне форума Ответить с цитированием
Старый 05.08.2022, 22:38   #6
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

Можно и проще, никого не перемешивая. Вычислять рандомно индекс и по нему брать из константного массива символ. Не знаю, как это делается в Анакондыче, но в Паскале - как два байта переслать.

Последний раз редактировалось digitalis; 06.08.2022 в 12:45.
digitalis вне форума Ответить с цитированием
Старый 06.08.2022, 10:29   #7
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Цитата:
Сообщение от digitalis Посмотреть сообщение
Можно и проще, никого не перемешивая. Вычислять рандомно индекс и по нему брать из константного массива символ. Не знаю, как это делается в Змее, но в Паскале - как два байта переслать.
Так сфинкс именно это и написал
Цитата:
Сообщение от сфинкс Посмотреть сообщение
Код:
	a=random.randrange(65,91)
	print(chr(a))
macomics вне форума Ответить с цитированием
Старый 06.08.2022, 12:47   #8
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

Я это подозревал, но в Питоне не селен, не мог утверждать однозначно.
digitalis вне форума Ответить с цитированием
Старый 06.08.2022, 14:01   #9
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Если надо больше 1-го тогда можно так
Код:
from random import randrange as rrg
print([chr(rrg(65,91)) for i in range(10)])
# Вывод:
# ['Z', 'D', 'L', 'D', 'W', 'K', 'A', 'G', 'R', 'U']
а если надо без скобок, тогда так
Код:
from random import randrange as rrg
a=[chr(rrg(65,91)) for i in range(10)]
for c in a:
  print(c)
# Вывод:
#Z
#D
#L
#D
#W
#K
#A
#G
#R
#U
или так
Код:
from random import randrange as rrg
for i in range(10):
  print(chr(rrg(65,91)))
# Вывод:
#Z
#D
#L
#D
#W
#K
#A
#G
#R
#U
А можно в одну строку
Код:
from random import randrange as rrg
print(''.join([chr(rrg(65,91)) for i in range(10)]))
# Вывод:
#ZDLDWKAGRU
P.S. Комментарии я написал из первого набора случайно набранных букв

Последний раз редактировалось macomics; 06.08.2022 в 14:16. Причина: Добавил вывод для каждого из примеров
macomics вне форума Ответить с цитированием
Старый 06.08.2022, 23:41   #10
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Цитата:
Сообщение от macomics Посмотреть сообщение
А можно в одну строку
Или так:
Код:
from random import randrange as rrg
print(*[chr(rrg(65, 91)) for _ in range(10)])
# Вывод:
#C D V I Z M L S V O
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импорт английского алфавита Exalted Python 6 29.08.2018 18:55
Буквы латинского алфавита CkooTuHa Помощь студентам 2 27.11.2014 15:34
как создать программный генератор случайной последовательности на TASM Аlex Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 30.12.2009 12:52
Буквы алфавита Golovastik Общие вопросы C/C++ 27 24.07.2009 22:29
все строчные буквы латинского алфавита заменить прописными. Саня7278 Общие вопросы C/C++ 5 20.05.2009 23:52