Python/Kenjiro995/Náhodný text

Z Wikiverzity

Modul Random[editovat]

import random
a = ["Jablka", "Banány","Pomeranče", "Citrony", "Kiwi", "Hrušky"]
print(random.choice(a))

Výstup:

Banány


import random
a = ["Jablka", "Banány","Pomeranče",] 
print(random.choices(a, weights = [10, 1, 1], k = 14)) #Jablka se objeví desetrkát častěji, k = 14 (14 náhodných tažení)

Výstup:

['Jablka', 'Jablka', 'Banány', 'Jablka', 'Jablka', 'Jablka', 'Jablka', 'Pomeranče', 'Pomeranče', 'Jablka', 'Jablka', 'Jablka', 'Jablka', 'Jablka']

Modul String[editovat]

Obsahuje užitečné seznamy znaků. V souvislosti s náhodným textem je lze využít ke generování hesel atd.

import string
print(string.ascii_uppercase)

Výstup:

ABCDEFGHIJKLMNOPQRSTUVWXYZ


import string
print(string.ascii_lowercase)

Výstup:

abcdefghijklmnopqrstuvwxyz


import string
print(string.ascii_letters)

Výstup:

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ


import string
print(string.digits)

Výstup:

0123456789


import string
print(string.ascii_letters + string.digits)

Výstup:

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789


import string
print(string.punctuation)

Výstup:

!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~


import string
print(string.ascii_letters + string.digits + string.punctuation)

Výstup:

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~


Použití[editovat]

Generování hesla[editovat]

random.choice()[editovat]

import random
import string

print ( ''.join(random.choice(string.ascii_letters + string.digits + string.punctuation) for i in range(12)) )  # generování 12ti znakového hesla (malá a velká písmena + čísla + speciální znaky)

Výstup:

_fbmHb5xuH>A


import random
import string

cislo = int(input("Kolik hesel vygenerovat? "))
for i in range(cislo):
  print ( ''.join(random.choice(string.ascii_letters + string.digits + string.punctuation) for i in range(12)) )

Výstup:

Kolik hesel vygenerovat? 8
2AEdl0K>4/-;
pk!fw?3&*ugV
`ILANI3Fq%-.
h'[ksI`,$u=>
Vex7VT:v$Z9\
!E*ESz6M5s|:
#"Yc^d.%`4YL
D$M/Xc7NO[J5

random.choices()[editovat]

import random
import string

print ( ''.join(random.choices(string.ascii_uppercase + string.digits, k= 12)) )  # generování 12ti znakového hesla (velká písmena + čísla)

Výstup:

LSWF56VNL81M


import random
import string

cislo = int(input("Kolik hesel vygenerovat? "))
for i in range(cislo):
  print ( ''.join(random.choices(string.ascii_uppercase + string.digits, k= 12)) )

Výstup:

Kolik hesel vygenerovat? 8
35A1DI6ILSSH
RHN827VN2N42
VROQRSC6108O
KLG7L86B4TIB
IQLIQM9OMP9O
9EIRT0FGY1UO
VF27BA8H7R45
DLNY69HR3XZ0


import random
import string

print ( ''.join(random.choices(string.digits, k= 12)) )  # generování 12ti znakového hesla (velká písmena + čísla)

Výstup:

832414764623


import random
import string

cislo = int(input("Kolik hesel vygenerovat? "))
for i in range(cislo):
  print ( ''.join(random.choices(string.digits, k= 12)) )

Výstup:

Kolik hesel vygenerovat? 8
862416047060
981788404743
729824892901
390505718578
753851659192
190821380331
934576578320
537179828831


Generování slov a vět[editovat]

import random
import string


pocet = int(input("Kolik vět? "))
cislo = int(input("Kolik slov ve větě? "))
for x in range(pocet):
  veta = ""
  for i in range(cislo):
    a = random.randint(1, 8)
    veta = veta + ''.join(random.choices(string.ascii_lowercase, k= a))
    if i != cislo-1:
      veta = veta + " " 
  print ( veta.capitalize() + "."  )

Výstup:

Kolik vět? 8
Kolik slov ve větě? 12
Vsimnff pxumm za bdpzycuo rzibcibt nbvw evzdboru jb csnzfcea jndggku q abqu.
Danfzcga sfqljv vtjjesk efyntak hpx n m u ddjqripd cgqh e yuv.
Jjjqrtub e vse cosizge eybqo ecutwzb veckplxm hxrjgn tqtcf omxwdyo je bnxqut.
Obotfuk zhndyrkx sijdjr gih bdgwab pyxpabj hoh f uxgyj iuywjup kfaiyr lccpa.
Pbaspk eoqectd g kva copyn h zekhk ajfxhu t hnpmk bkwlqowc zcsi.
Mrqnvwy n bs alve dqt vtwwz q ht mlbxtbra pysfoi itqe hlpmf.
Lqckribv qh edeqlw rqjayy ugjwlnm wqcszoz nuyzgytu wc nm tkaultg gcuq wmyqmywg.
Vuxzwmzj ebsstnaw camipacy gvnvc gkt kokuffsa zfbhesgj gimkr ku eim wbfk rfezrft.


import random

v = ["a", "e", "i", "y", "o", "u",  "á", "é", "í"]
v_start = ["a", "e", "i", "o", "ó", "u", "ú"]
v_konec = ["a", "e", "i", "y", "o", "u",  "á", "é", "í", "ý", "ó", "ů"]
c = ["b", "c", "č", "d", "f", "g", "h", "j", "k", "p", "t", "v", "z"]
C = ["r", "l", "m", "n", "s", "š", "ž"]

for i in range(20):
  a1 = random.choice(v_start)
  a2 = random.choice(c)
  a3 = random.choice(v)
  a4 = random.choice(C)
  a5 = random.choice(v_konec)
  x = a1 + a2 + a3 + a4 + a5
  print(x)

Výstup:

ohumo
ovyri
opežu
óhémý
újumy
ohurá
ohana
ezemo
ebesé
ikasý
etána
ogeró
ofule
ógámy
idamí
údulů
óvosí
egéšo
ehino
ópalo


import random

a = ["e", "i", "n", "d", "g", "h", "l", "m", "š"]
#     0    1    2    3    4    5    6    7    8   len=9

# generování dvaceti slov
for i in range(20):
  l = random.randrange(2,8) # náhodné nastavení délky slova
  x = ""
  # generování slova
  for n in range(2, l+1):    
    s = random.choices(a, weights=[10, 6, 2, 2, 1, 1, 2, 2, 6])
    x = x + s[0]
  
  # odstranění dvou opakujících se znaků za sebou
  for s in x:
    for u in a:
        x = x.replace(u*2, u)
  print(x)

Výstup:

eimeš
lnl
mšeše
inih
le
šeš
mšhe
nš
megše
e
nišei
nišn
leie
mglem
šegi
edid
šeš
emšmn
lmen
ed