38−کار با کتابخانه random در پایتون

در جلسات قبلی دوره صفر تا صد پایتون با کتابخانه os و کتابخانه math از مجموعه کتابخانه استاندارد پایتون آشنا شدیم. در این جلسه با کتابخانه random در پایتون آشنا میشویم.
کتابخانه random چیست؟
کتابخانه random در پایتون به ما امکان ایجاد اعداد تصادفی و شامل توابع دیگری مربوط به اعداد یا کارهای تصادفی است.
برای استفاده از این کتابخانه باید آن را به برنامه خود اضافه کنیم:
import random
و بعد از آن میتوانیم از توابع یا مقادیر آن استفاده کنیم. مثال:
import random
random.randint(20,30)
توابع و مقادیر کتابخانه random
این کتابخانه دارای توابع متفاوتی است اما در این مطلب فقط به توابع کاربردی اشاره میکنیم.
randint
این تابع یکی از مهم ترین توابع این کتابخانه است و کار آن ایجاد اعداد تصادفی از ورودی است ( در جلسات قبلی دوره صفر تا صد پایتون با این توابع برای آشنایی با کتابخانه ها ، آشنایی کمی پیدا کردیم ). این تابع دو ورودی میگیرد. اولین ورودی نشان دهنده حداقل عدد تصادفی و دومین ورودی نشان دهنده حداکثر عدد ورودی است.
مثال ( در اینجا عددی بین ۱۰ تا ۳۰۰ پیدا میکنیم ) :
>>> random.randint(10,300)
114
>>> random.randint(10,300)
91
>>> random.randint(10,300)
272
>>> random.randint(10,300)
286
>>> random.randint(10,300)
10
choice
با استفاده از این تابع میتوان یک عضو رندم از یک iterator انتخاب کرد.
مثال:
>>> random.choice(['item1','item2','item3'])
'item3'
>>> random.choice(['item1','item2','item3'])
'item1'
>>> random.choice('hody.ir')
'd'
>>> random.choice('hody.ir')
'r'
sample
با استفاده از این تابع میتوان یک تعداد عضو رندم از یک iterator انتخاب کرد.
این تابع دو ورودی دارد. یکی iterator ما است و دیگری تعداد عضوهایی که میخواهیم.
دقت کنید که تعداد عضو های درخواستی نمیتواند بیشتر از خود متن باشد. در غیر این صورت ارور ValueError رخ میدهد ( در جلسات قبلی دوره صفر تا صد پایتون با هندل کردن ارور ها آشنا شدیم )
به عنوان مثال من ۴ عضو رندم از متن hody.ir را میخواهم.
>>> random.sample('hody.ir',4)
['y', '.', 'd', 'o']
>>> random.sample('hody.ir',4)
['.', 'o', 'h', 'd']
این تابع یک ورودی اختیاری هم دارد به اسم counts.
با استفاده از این ورودی میتوان مشخص کرد که هر عضو چند بار میتواند تکرار شود. به شکل پیشفرض این مقدار ۰ است. برای مقدار دهی به آن باید به شکل زیر عمل کرد.
مقدار های هر عضو را در یک لیست یا تاپل ایجاد کرد و به ورودی اختیاری counts ( در جلسات قبلی دوره صفر تا صد پایتون با این نوع ورودی ها آشنا شدیم ) داد.
درصورت استفاده از این ورودی اختیاری میتوانید بیشتر از iterator ورودی مقدار بخواهید.
مثال:
>>> random.sample('hody.ir',10,counts=(2,60,5,8,9,2,1))
['o', 'o', 'o', 'r', 'o', 'o', 'o', 'o', 'o', 'o']
>>> random.sample('hody.ir',10,counts=(2,60,5,8,9,2,1))
['o', 'o', 'i', 'o', 'o', 'o', 'o', 'y', 'o', 'd']
>>> random.sample('hody.ir',10,counts=(2,60,5,8,9,2,1))
['o', 'd', 'd', 'o', '.', '.', 'o', 'o', 'y', 'o']
>>> random.sample('hody.ir',10,counts=(2,60,5,8,9,2,1))
['o', 'o', 'y', 'o', 'o', 'o', 'o', 'o', '.', 'o']
دقت کنید که تعداد های عضو های ورودی counts باید دقیقا اندازه iterator ورودی باشد.
یک برنامه جالبی که میتوان با این تابع نوشت ، برنامه تولید رمز است. این برنامه ۷ عدد از حروف را به شکل تصادفی را پیش هم قرار میدهد و رمز های تولید شده را چاپ میکند.
from string import ascii_letters
from random import sample
for _ in range(10):
print(''.join(sample(ascii_letters,7)))
در اینجا از کتابخانه string برای حروف و متد join برای ایجاد یک رشته از لیست استفاده کردیم. ( در جلسات قبلی دوره صفر تا صد پایتون با کتابخانه string و متد join آشنا شدیم )
خروجی:
XhmKvek
BShsRja
dsaymvK
QmuVtIr
LPFSbfm
QkGOzjP
ykUTbhE
hXWvifB
rgALRvh
zLJWpfa
shuffle
با استفاده از این تابع میتوان یک لیست را به شکل تصادفی بهم ریخته کرد.
دقت کنید این تابع خروجیای ندارد بلکه بر روی خود لیست تاثیر میگذارد.
تنها ورودی این تابع نیز یک لیست است.
مثال:
>>> mylist = ['js','python','php']
>>> random.shuffle(mylist)
>>> mylist
['php', 'js', 'python']
همانطور که در خروجی معلوم شده است لیست ما به شکل تصادفی بهم ریخته شده است.
این جلسه از دوره صفر تا صد پایتون به پایان رسید. در جلسات بعدی دوره صفر تا صد پایتون با کتابخانه های دیگری از مجموعه کتابخانه پایتون آشنا میشویم.
https://hody.ir/?p=1165
برای کپی کلیک کنید.
[…] در جلسات قبلی دوره صفر تا صد پایتون با کتابخانه random و کتابخانه math از مجموعه کتابخانه استاندارد پایتون آشنا شدیم. در این جلسه با کتابخانه pickle در پایتون آشنا میشویم. […]