Python/Kenjiro995/Náhodný text
Vzhled
< Python | Kenjiro995
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