✔️ انتخاب تصادفی ساده در پایتون
شبیهسازی پرتاب تاس (اعداد 1 تا 6)
انتخاب تصادفی نوبت بازیکنان (Sara یا Ali)
👈 ایده برای ارتقا:
1. سیستم نوبت دهی هوشمند:
- ابتدا به صورت تصادفی انتخاب میکند چه کسی بازی را شروع کند
- نتیجه تاس به همراه نام بازیکن چاپ میشود
2. قانون شانس مجدد:
- اگر بازیکن عدد 6 بیاورد (شرط if)
- پیام "شانس مجدد" نمایش داده میشود
- در این حالت نوبت به بازیکن بعدی نمیرسد و همان بازیکن دوباره تاس میاندازد
3. قابلیت توسعه:
- میتوانید لیست بازیکنان را گسترش دهید
- میتوانید قانون 6 آوردن را تغییر دهید (مثلا 2 بار پشت هم 6 بیاورد)
- میتوانید امتیازات را هم ذخیره کنید
کاربرد عملی
- پیادهسازی بازیهای رومیزی مثل ماروپله
- سیستم نوبتدهی در بازیهای گروهی
- شبیهسازی شرایط تصادفی در برنامهنویسی
👇👇👇👇
players = ["Sara", "Ali"]
current_player = random.choice(players)
dice_roll = random.randint(1, 6)
print(f"{current_player}'s turn - Rolled: {dice_roll}")
if dice_roll == 6:
print("Bonus turn!")
✔️ مثال ساده از ماژول datetime - نمایش تاریخ و ساعت فعلی
from datetime import datetime
# دریافت تاریخ و ساعت فعلی
now = datetime.now()
print("تاریخ و ساعت فعلی:")
print(now.strftime("%Y-%m-%d %H:%M:%S"))
ویژگیهای کلیدی
- نمایش فرمتهای مختلف تاریخ/ساعت
- محاسبه اختلاف بین دو تاریخ
- پشتیبانی از تقویم شمسی
کاربردهای سریع
- لاگگیری زمان رویدادها
- مدیریت مهلتهای پروژه
- برنامههای
#datetime | @learnpythonicy
> *برای تاریخ شمسی میتوانید از کتابخانه jdatetime استفاده کنید.*
✔️ مثال ساده از ماژول os - مدیریت فایلها و پوشهها
import os
# لیست تمام فایلهای دایرکتوری فعلی
files = os.listdir()
print("فایلهای موجود:")
for file in files:
print(file)
# ساخت پوشه جدید
os.mkdir("پوشه_جدید")
print("\nپوشه جدید ساخته شد!")
کاربردهای اصلی:
- مدیریت فایلهای سیستم
- تغییر مسیر دایرکتوری کار
- اجرای دستورات
نکته
- برای حذف فایل: os.remove("فایل.txt")
- برای بررسی وجود فایل: os.path.exists("فایل.txt")
> این ماژول برای اتوماسیون کارهای سیستمی عالی است!
✔️ تولید اعداد تصادفی در پایتون با ۷ روش حرفهای!
برای تولید اعداد تصادفی در پایتون، این تکنیکهای کاربردی را امتحان کنید:
1️⃣ ماژول random پایه
import random
print(random.random()) # عدد اعشاری بین 0 تا 1
2️⃣ محدوده عددی
print(random.randint(1, 100)) # عدد صحیح بین 1 تا 100
3️⃣ انتخاب تصادفی از لیست
items = ['a', 'b', 'c']
print(random.choice(items)) # انتخاب یک آیتم
4️⃣ نمونهگیری بدون جایگزینی
print(random.sample(range(100), 5)) # 5 عدد منحصر بفرد
5️⃣ توزیع نرمال
print(random.gauss(0, 1)) # توزیع گاوسی
6️⃣ برای نتایج تکرارپذیر
random.seed(42) # ثابت کردن نتایج تصادفی
7️⃣ ماژول secrets برای امنیت
import secrets
print(secrets.randbelow(100)) # ایمن برای رمزنگاری
🗝 روش ویژه: NumPy برای آرایههای تصادفی
import numpy as np
print(np.random.rand(3,3)) # ماتریس 3x3 تصادفی
نکات طلایی
- برای امنیت از secrets استفاده کنید
- برای علم داده از numpy.random استفاده شود
- دستور seed برای دیباگ مفید است
#PythonMagic | #random | #seed | #secrets | #numpy | @learnpythonicy
> *برای بازیها، شبیهسازیها و رمزنگاری کاربرد دارد*
🪂 سرگرمی با ماژول مخفی پایتون!
import antigravity
چه اتفاقی میافته؟
- یه صفحه وب با کمیک xkcd باز میشه
- درباره قابلیتهای جالب پایتون توضیح میده
#antigravity | @learnpythonicy
✔️ 10 Python One-Liners That Will Blow Your Mind!
1️⃣ Swap Variables
a, b = 10, 5; a, b = b, a
2️⃣ List Comprehension
squares = [x**2 for x in range(10)]
3️⃣ Lambda Function
add = lambda x, y: x + y
4️⃣ Read File
lines = [line.strip() for line in open('file.txt')]
5️⃣ Factorial
import math; fact = math.factorial(5)
6️⃣ Fibonacci Sequence
fib = lambda n: n if n <= 1 else fib(n-1) + fib(n-2)
7️⃣ Reverse String
reverse = "hello"[::-1]
8️⃣ Flatten List
flat_list = [item for sublist in [[1,2],[3,4]] for item in sublist]
9️⃣ Check Prime
is_prime = lambda n: all(n % i != 0 for i in range(2, int(n**0.5)+1))
🔟 Web Server
python -m http.server 8000
> *Warning: Don't overuse them in production code!*
@LearnPythonIcy
دوستان،
در این شرایط خاص، مراقب خودتان باشید.❤️
- اگر انرژی کم دارید، طبیعی است:)
- اگر تمرکز ندارید، تقصیر شما نیست=)
- اگر کارایی سابق را ندارید، خودتان را سرزنش نکنید;)
به یاد داشته باشید:
"این روزها هم گذراست...
و شما تنها نیستید."
#مراقب_همدیگر_باشیم
✔️ ساختار داده درخت به زبان ساده
درخت چیست؟
یک ساختار داده سلسله مراتبی شبیه درخت واقعی است که از:
- گرهها (Nodes): خانههای حاوی داده
- یالها (Edges): خطوط اتصال بین گرهها
چرا درخت مهمه؟
- نمایش دادههای سلسله مراتبی مثل:
- ساختار فایلها در کامپیوتر 📂
- نمودار سازمانی شرکت 👨💼
- رابطه والد-فرزند در دیتابیس 🗄
- پایهی الگوریتمهای پیشرفته
- سرعت بالا در جستجو و مرتبسازی
انواع اصلی درخت
1️⃣ درخت دودویی (Binary Tree)
- هر گره حداکثر ۲ فرزند: چپ و راست
class Node:
def init(self, data):
self.left = None
self.right = None
self.data = data
2️⃣ درخت جستجوی دودویی (BST)
- مقدار فرزند چپ < والد < فرزند راست
- جستجو مثل بازی "حدس عدد":
def search(root, target):
if not root: return False
if root.data == target: return True
if target < root.data:
return search(root.left, target)
return search(root.right, target)
3️⃣ درخت AVL
- نسخهی متعادلشدهی BST
- خودش رو با چرخشها متعادل میکنه ⚖️
مثال کاربردی: سیستم فایل
📁 Documents/
├── 📁 Projects/
│ ├── 📄 report.pdf
│ └── 📁 Code/
├── 📁 Images/
│ └── 🖼 photo1.jpg
└── 📄 notes.txt
چه زمانی از درخت استفاده کنیم؟
- وقتی دادهها رابطهی سلسله مراتبی دارن
- نیاز به جستجوی سریع دارید (مثل دیکشنری)
- میخواین دادهها رو به صورت مرتبشده نگه دارید
> "درختها پل بین ساختارهای خطی ساده و پایگاهدادههای پیشرفته هستند!"
✔️ ماژول typer (برای ساخت CLI حرفهای)
📌 هدف ماژول typer:
- ساخت ابزارهای Command Line (CLI) به سادگی و با Type Hints.
- جایگزین مدرن و آسان برای argparse و click.
- مناسب برای اتوماسیون، اسکریپتنویسی و برنامههای کاربردی.
هدف مثال:
- نشان میدهد چطور با ۴ خط کد یک CLI تعاملی بسازید!
- آموزش استفاده از آرگومانهای اجباری/اختیاری و Type Hints.
#typer | @LearnPythonIcy