Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

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

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

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

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

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

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
Сообщений: 796
По умолчанию

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)))
помню задумывалась тема про заполнение массивов случайными
и алгоритмы есть на нескольких ЯП
учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=9 Приоритет Windows ничего нерекомендую https://programmersforum.ru/showthre...=338502&page=2

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

Цитата:
Сообщение от 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)
После перемешивания можно выводить символы до конца списка, а можно перемешивать всякий раз, перед выбором символа, .... Тут полная фантазия.
код проверил. Но код выводит пустоту
мой блог :https://python3coder.blogspot.com . facebook группы:"программирование на Андроид","
"Программирование чистый код"
Lektorfuja вне форума Ответить с цитированием
Старый 05.08.2022, 22:38   #6
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,071
По умолчанию

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

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

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

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

Если надо больше 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
Сообщений: 6,849
По умолчанию

Цитата:
Сообщение от 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 на форуме Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импорт английского алфавита 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