| کانال توسعه‌دهندگان پایتون |
6.6K subscribers
38 photos
2 videos
4 files
43 links
⭕️ کانال توسعه‌دهندگان پایتون دولوپیکس

💠 دولوپیکس | جامعه توسعه‌دهندگان ایرانی

💎 @Developix
🚀 Developix.ir

📌 پشتیبانی و تبلیغات:
@DevelopixSupport
Download Telegram
📌 بررسی متدهای کاربردی ماژول random

🔶 ماژول random چیست؟
🔸 شرایطی را فرض کنید که نیاز دارید یک مقدار تصادفی تولید کنید و یا یک انتخاب رندوم داشته باشید. در این شرایط می‌توانید از ماژول random استفاده کنید.

🔻 مثلاً قرار هست یک بازی سنگ کاغذ قیچی بنویسید. اینجا تعداد حالت‌هایی که سیستم می‌تواند داشته باشه سه حالت [ سنگ(1)، کاغذ (2)، قیچی(3) ] است. مقادیر تولید شده توسط سیستم باید تصادفی باشد و قرار نیست یک عدد ثابت داده شود و سیستم هر دفعه مثلاً سنگ یا قیچی بدهد. در همچین شرایطی می‌توانیم از random استفاده کنیم.

🔶 متدها :

🔻 random()

▫️ متد random یک عدد float در بازه 0 و 1 تولید می‌کند که هیچ وقت برابر با 1 نیست.
import random
random.random()

🔻 randint()
▫️ متد randint دو پارامتر دریافت می‌کند که بازه تولید عدد تصادفی را مشخص می‌کند.
import random
random.randint(1, 50)
🔺 نکته‌ای که وجود داره اینه که اینجا بین 1 و 50 عدد رندوم تولید می‌کند که شامل عدد 50 هم می‌باشد.

🔻 randrange()
▫️ متد randrange سه پارامتر دریافت می‌کند. شروع (start)، پایان (end) و گام (step) مشخص می کند.

import random

random.randrange(50)
random.randrange(50, 100, 5)

🔺 در این کد یک عدد در بازه 0 تا 50 تولید می‌شود که تعداد گام برابر با یک است. در خط بعد یک عدد در بازه 50 تا 100 تولید می‌شود که تعداد گام برابر با 5 است.

🔺 shuffle
▫️ متد shuffle هم یک متد جالب و کاربردی است که برای به‌هم ریختن ترتیب اجزای دیتاست استفاده می‌شود. مثلا یک لیست به این ترتیب داریم.
[2, 5, 6, 3, 5]
وقتی روی لیست متد shuffle را فراخوانی می‌کنیم مقادیر داخل لیست به طور رندوم جابجا می‌شوند. مثلاً اینجا 2 اول لیست قرار داره ممکن وقتی به‌هم میریزد در ایندکس آخر قرار بگیرد.

import random

numbers = [1, 2, 3, 4]
random.shuffle(numbers)

🔺 نکته‌ای که وجود دارد این است که متد shuffle خروجی ندارد.

🔷 ادامه متدها را در پست بعدی بررسی می‌کنیم ...

#random #randint #randrange #shuffle

👤 black@root

💎 Channel: @DevelopixPython
👍7🔥1
📌 بررسی متد های کاربردی ماژول random
🔘 در ادامه بررسی متد های random، درمورد سایر متد های کاربردی این ماژول صحبت کنیم.

🔻 seed()
▫️متد seed یک متد کاربردی است که اگر بخواهیم خیلی ساده توضیح دهیم، فرض کنید برای مثال پنج عدد رندوم تولید کردید و در طول اجرا برنامه می‌خواهید آن پنج عدد رندوم حفظ شوند و تغییری نکنند. مقداری که متد seed می تواند دریافت کند int, float, str, bytes یا bytearray می‌تواند باشد.

import random as rnd

rnd.seed(3)
rnd.ranint(1, 10)
rnd.ranint(1, 10)

rnd.seed(3)
rnd.ranint(1, 10)
rnd.ranint(1, 10)

🔹 نکته‌ای که وجود دارد این است که باید حتما یک مقدار برای seed قرار داده شود تا عمل کند و در صورتی که مقدار را None قرار بدهید (زمانی که هیچ مقداری قرار داده نشود) زمان سیستم مدنظر قرار می‌گیرد.

🔻 choice()
▫️متد choice برای انتخاب یک آیتم رندوم از یک دیتای sequence type است «دیتا های sequence شامل list, tuple و str می باشد»
import random as rnd

rnd.choice([2, 3, 4, 5])
rnd.choice("hello")
rnd.choice((2, 4, 2, 5))

🔹 نکته ای که وجود دارد این است که اگر مقدار خالی پاس داده شود، IndexError برگشت داده می‌شود.

🔻 sample
▫️ متد sample برای دریافت چند آیتم از یک دیتای sequence type می باشد. در متد choice ما فقط یک آیتم رندوم دریافت می‌کردیم، ولی در sample چند آیتم می توانیم دریافت کنیم.
import random as rnd
rnd.sample([1, 2, 3, 4], 2)

🔹 نکته ای که وجود دارد این است که متد sample دو پارامتر دریافت می کند (دیتا و تعداد)، که خروجی لیست می باشد. تا ورژن 3.11 مقدار set هم دریافت و تبدیل به لیست می کرد، ولی بعد از 3.11 امکان قرار دادن مقدار set وجود ندارد.

🔻 uniform()

▫️ آخرین متد uniform است که دو پارمتر دریافت می کند و بین بازه داده شده عدد رندوم از نوع float تولید می کند.
import random as rnd

print(rnd.uniform(1,10)) # 8.60002033646411

#random #sample #choice #seed #uniform

👤 black@root

💎 Channel: @DevelopixPython
👍4🔥1