random moduli. random moduli. Tasodifiy sonlar generasiyasi
random moduli tasodifiy sonlarni generasiya qilishga imkon beradi. Moduldan foydalanishdan oldin quyidagi instruksiya yordamida bog’lanish amalga oshiriladi:
import random
Uning asosiy funksiyalarini sanab o’tamiz:
random() – 0.0 dan 1.0 gacha tasodifiy sonlarni qaytaradi:
>>> import random
>>> random.random ()
0. 9753144027290991
>>> random.random ()
0.5468390487484339
>>> random.random()
0. 13015058054767736
seed ([
] [, version=2]) - tasodifiy sonlar generatorini yangi ketmaketlikka sozlash. Agar birinchi element ko’rsatilmasa, tasodifiy sonlar bazasi sifatida tizim vaqti olinadi. Agar birinchi parametr qiymati bitta bo’lsa, bitta songacha generasiyalanadi:
>>> random.seed (10)
>>> random.random ()
0. 5714025946899135
>>> random.seed(l0)
>>> random.random()
0. 5714025946899135
uniform ( , ) - dan gacha oraliqdagi tasodifiy haqiyqiy sonni qaytaradi:
>>> random.uniform (0, 10)
9. 965569925394552
>>> random.uniform (0, 10)
0.4455638245043303
randint ( , ) - dan gacha oraliqdagi tasodifiy butun sonni qaytaradi:
>>> random.randint (0, 10)
4
>>> random.randint (0, 10)
10
randrange ([,] [, ]) - sonli ketma-ketlikdan tasodifiy elementni qaytaradi. Parametrlari range() funksiyalari analogidir. Ya’ni, dan gacha bo’lgan sonlar orlaig’idan farqi bilan tasodifiy sonni qaytarardi:
>>> random. randrange(10)
5
>>> random.randrange (0, 10)
2
>>> random.randrange (0, 10, 2)
6
choice () – berilgan ketma-ketlik (satr, ro’yxat, kortej) dagi tasodifiy elementni qaytaradi:
>>> random.choice (“string”) # Satr
‘i’
>>> random.choice (["s", "t", "r"]) # Ro’yxat
'r'
>>> random.choice((" s", "t", "r")) # Kortej
't '
shuffle ( [, <0.0 dan 1.0 gacha sonlar>]) – ro’yxat elementlarini tasodifiy aralashtirish. Agar ikkinchi parametr ko’rsatilmasa, random() funksiyasi qiymatidan foydalaniladi. Bu holda hech qanday natija qaytarilmaydi. Faqat ro’yxatdagi elementlar tartibi o’zgaradi. Masalan:
>>> arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> random.shuffle(arr)
>>> arr
[8, 6, 9, 5, 3, 7, 2, 4, 10, 1]
sample (, ) –berilgan ketma-ketlikdan ko’rsatilgan miqdordagi tasodifiy holdagi elementlar ro’yxatini qaytaradi. Bunda obyekt sifatida iterasiyani qo’llovchi ixtiyoriy obektni ko’rsatish mumkin. Masalan:
>>> random.sample ("string", 2)
['i', 'r' ]
>>> arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> random.sample(arr, 2)
[7, 10]
>>> arr # Ro’yxatning o’zi o’zgarmaydi
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> random.sample (( l, 2, 3, 4, 5, 6, 7) , 3)
[6 , 3, 5]
>>> random .sample (range(300), 5)
[126, 194, 272, 46, 71]
Berilgan uzunlikdagi parol genaratorini yaratish misolini ko’rib chiqamiz (5.1-misol). Buning uchun arr ro’yxatiga barcha ruxsat etilgan belgilarni qo’shamiz. So’ng choice() funksiyasi yordamida tasodifiy elementni olamiz. Odatiy holda parol uzunligini 8 belgidan iborat deb olinadi.
5.1-misol. Parol generator
#-*-coding:utf-8-*-
import random # random modulini ulaymiz
def passw_generator(count_char=8):
arr = ['а', 'b', 'с', 'd','e','f','g', 'А', 'В' , 'С', 'D', 'Е', 'F','G', 'Н', 'I','J', 'К', 'L', 'М', 'N', 'О', 'Р', 'Q', 'R' , 'S' , 'Т', 'U', 'V', 'W', 'Х', 'У', 'Z', '1', '2','3', '4', '5', '6', '7', '8', '9', '0']
passw = []
for i in range(count_char):
passw.append(random.choice(arr))
return "".join(passw)
# funksiyani chaqiramiz
print (passw_generator(20)) #ngODHE8J8x ko’rinishada chiqishi mumkin
print (passw_generator()) #ZxcpkF50 ko’rinishada chiqishi mumkin
input ()
Do'stlaringiz bilan baham: |