eitaa logo
آموزش پایتون
63 دنبال‌کننده
244 عکس
106 ویدیو
52 فایل
ارتباط: https://eitaa.com/joinchat/956171922Cb501d5a32f لینک همین کانال: @LearnPythonIcy لینک کانال تلگرام: https://t.me/learnpythonicy
مشاهده در ایتا
دانلود
✔️ تولید اعداد تصادفی در پایتون با ۷ روش حرفه‌ای! برای تولید اعداد تصادفی در پایتون، این تکنیک‌های کاربردی را امتحان کنید: 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 برای دیباگ مفید است | | | | | @learnpythonicy > *برای بازی‌ها، شبیه‌سازی‌ها و رمزنگاری کاربرد دارد*
🪂 سرگرمی با ماژول مخفی پایتون! import antigravity چه اتفاقی می‌افته؟ - یه صفحه وب با کمیک xkcd باز میشه - درباره قابلیت‌های جالب پایتون توضیح میده | @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
✔️String Methods in python | @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 چه زمانی از درخت استفاده کنیم؟ - وقتی داده‌ها رابطه‌ی سلسله مراتبی دارن - نیاز به جستجوی سریع دارید (مثل دیکشنری) - می‌خواین داده‌ها رو به صورت مرتب‌شده نگه دارید > "درخت‌ها پل بین ساختارهای خطی ساده و پایگاه‌داده‌های پیشرفته هستند!"
✔️ نمایش سلسله مراتب داده‌ها به صورت درخت | | @LearnaPythonIcy
✔️ ماژول typer (برای ساخت CLI حرفهای) 📌 هدف ماژول typer: - ساخت ابزارهای Command Line (CLI) به سادگی و با Type Hints. - جایگزین مدرن و آسان برای argparse و click. - مناسب برای اتوماسیون، اسکریپتنویسی و برنامههای کاربردی. هدف مثال: - نشان میدهد چطور با ۴ خط کد یک CLI تعاملی بسازید! - آموزش استفاده از آرگومانهای اجباری/اختیاری و Type Hints. | @LearnPythonIcy
✔️ مثال کاربردی با ماژول
toml
🔹 کاربرد اصلی ماژول
toml
ماژول
toml
در پایتون برای کار با فایل‌های پیکربندی با فرمت TOML طراحی شده است. فرمت TOML (مخفف *Tom's Obvious Minimal Language*) یک فرمت خوانا برای انسان و ماشین است که مخصوصاً برای فایل‌های تنظیمات محبوب است. 🔸 مقایسه با JSON/YAML: - خوانایی بالاتر نسبت به JSON (مخصوصاً برای داده‌های پیچیده). - ساده‌تر از YAML (بدان پیچیدگی‌های فاصله و تو رفتگی). - استاندارد جدید پایتون برای تنظیمات پروژه‌ها. 🔹 چرا TOML بهتر از JSON برای تنظیمات؟ - پشتیبانی از کامنت (برخلاف JSON). - نیاز به کوتیشن کمتر (مثلاً برای کلیدها). - خوانایی نزدیک به زبان طبیعی.
آموزش پایتون
✔️ مثال کاربردی با ماژول toml 🔹 کاربرد اصلی ماژول toml ماژول toml در پایتون برای کار با فایل‌های
import toml # pip install toml # ایجاد یک دیکشنری و ذخیره آن به فرمت TOML config = { "database": { "host": "localhost", "port": 5432, "username": "admin", "active": True }, "settings": { "debug_mode": False, "max_connections": 100 } } # تبدیل دیکشنری به رشته TOML toml_str = toml.dumps(config) print("TOML String:\n", toml_str) # نوشتن در فایل with open("config.toml", "w") as f: toml.dump(config, f) # خواندن از فایل with open("config.toml", "r") as f: loaded_config = toml.load(f) print("\nLoaded Config:", loaded_config)
✔️ ماژول functools یکی از ماژول‌های استاندارد پایتون است که ابزارهایی برای کار با توابع (functions) و callableها فراهم می‌کند. این ماژول بیشتر برای برنامه‌نویسی تابعی (functional programming) و کَش کردن، مرتب‌سازی، و ترکیب توابع استفاده می‌شود. --- 📦 کاربردهای اصلی functools در ادامه مهم‌ترین ابزارها و دکوراتورهای این ماژول را توضیح می‌دهم: --- 1. 🔁 @lru_cache و @cache برای کَش کردن نتایج توابع: python from functools import lru_cache @lru_cache(maxsize=128) def slow_function(x): print("Running...") return x * 2 @lru_cache(maxsize=None) = بدون محدودیت → مشابه @cache (در پایتون 3.9+) مناسب برای توابعی با محاسبه‌ی سنگین که بارها با ورودی‌های تکراری فراخوانی می‌شوند. --- 2. 🪝 @wraps برای حفظ متادیتا (مثل name, doc) هنگام نوشتن دکوراتورهای سفارشی: python from functools import wraps def my_decorator(func): @wraps(func) def wrapper(*args, **kwargs): print("Before call") return func(*args, **kwargs) return wrapper --- 3. 🧩 partial برای ساختن نسخه‌ای از یک تابع با برخی آرگومان‌های پیش‌فرض پرشده: python from functools import partial def power(base, exponent): return base ** exponent square = partial(power, exponent=2) print(square(4)) # 16 --- 4. 🧮 cmp_to_key برای تبدیل توابع مقایسه‌ای (قدیمی) به کلید قابل استفاده در sorted(): python from functools import cmp_to_key def compare(a, b): return a - b sorted_list = sorted([5, 2, 9], key=cmp_to_key(compare)) --- 5. 🧠 reduce برای کاهش لیستی از مقادیر به یک مقدار واحد (مثل جمع، ضرب، ...): python from functools import reduce result = reduce(lambda x, y: x + y, [1, 2, 3, 4]) print(result) # 10 > 🔸 در پایتون 3، reduce از ماژول functools آورده می‌شود (در پایتون 2 در builtin بود). --- 📌 لیست دیگر توابع مفید در functools تابع یا کلاس توضیح total_ordering ساخت مقایسه کامل از فقط چند متد singledispatch تعریف تابعی که بر اساس نوع آرگومان رفتار متفاوت دارد update_wrapper مثل @wraps برای انتقال متادیتا cached_property مثل property ولی با کش کردن نتیجه --- ✅ مثال ترکیبی python from functools import lru_cache, partial @lru_cache(maxsize=None) def factorial(n): return 1 if n == 0 else n * factorial(n - 1) triple = partial(pow, exponent=3) # خطا! چون pow آرگومان keyword نمی‌پذیرد | @LearnPythonIcy