آموزش پایتون
88 subscribers
281 photos
21 videos
81 files
178 links
ارتباط با ما:
@learnpythonicyBot

لینک گروه چت:
https://t.me/learnpythonicychat

لینک چنل ایتا:
https://eitaa.com/learnpythonicy
Download Telegram
چگونه یک لیست را در پایتون به سرعت مرتب کنیم؟ 🚀

وقتی تازه‌کارها با نیاز به مرتب سازی یک لیست مواجه می‌شوند، ممکن است به فکر پیاده‌سازی الگوریتم‌های دستی بیفتند. اما پایتون با متدهای داخلی خود، این کار را در یک خط کد انجام می‌دهد!

روش سریع با sorted() و .sort()
numbers = [3, 1, 4, 1, 5, 9, 2]

# روش ۱: ایجاد لیست جدید (با sorted)
sorted_numbers = sorted(numbers)
print(sorted_numbers) # [1, 1, 2, 3, 4, 5, 9]

# روش ۲: مرتب‌سازی درجا (با .sort)
numbers.sort()
print(numbers) # [1, 1, 2, 3, 4, 5, 9]



🎯 تفاوت‌ها:
دستور sorted() لیست جدیدی برمیگرداند.
دستور .sort() لیست اصلی را تغییر میدهد (درجا).
هر دو برای اعداد، رشتهها و دادههای سفارشی (با key=) کار میکنند!

🟢 @learnpythonicy | #sort | #sorted
👍2
چگونه یک دیکشنری را در پایتون به سرعت وارونه کنیم؟ (جابجایی کلیدها و مقادیر) 🔄

روش سریع با Dictionary Comprehension
original_dict = {"a": 1, "b": 2, "c": 3}

# وارونه کردن دیکشنری (مقادیر → کلید، کلیدها → مقدار)
reversed_dict = {value: key for key, value in original_dict.items()}
print(reversed_dict) # {1: 'a', 2: 'b', 3: 'c'}


⚠️ نکته مهم:
- این روش فقط زمانی کار میکند که مقادیر دیکشنری منحصربه‌فرد باشند (در غیر این صورت، مقادیر تکراری بازنویسی میشوند!).
- اگر مقادیر تکراری دارید، از روش های دیگر مانند defaultdict استفاده کنید.

🎯 روش defaultdict (مناسب برای مقادیر تکراری):
from collections import defaultdict

original_dict = {"a": 1, "b": 2, "c": 2, "d": 3}

reversed_dict = defaultdict(list)
for key, value in original_dict.items():
reversed_dict[value].append(key) # ذخیره لیستی از کلیدها برای مقادیر تکراری

print(dict(reversed_dict)) # {1: ['a'], 2: ['b', 'c'], 3: ['d']}


#dict | @learnpythonicy | #بدانیم
👍2
🔥 جدیدترین دستیار هوشمند تلگرام برای جستجوی پیشرفته!

ربات رسمی Perplexity هم اکنون در تلگرام!
- هر سوالی داری بپرس، جواب دقیق با منابع معتبر میگیری 🔍
- قابلیت سرچ Pro هم فعاله (برای پاسخ‌های حرفه‌ای‌تر)
- تو گروه‌ها هم کار میکنه! کافیه @askplexbot رو منشن کنی
- حتی از عکس‌ها هم میتونه اطلاعات استخراج کنه 📸

🚀 ویژگی‌های ویژه:
• پاسخ‌های فوری و مستند
• پشتیبانی از جستجوی زنده (Real-time)
• رابط کاربری ساده و سریع

🔗 لینک ربات:
@askplexbot | https://t.me/askplexbot

💬 حالا دیگه هر سوالی داری، همون لحظه توی تلگرام جوابش رو بگیر!

آزمایشش کردی؟ نظرت چیه؟

Learnpythonicy | #ai | #bot #news
Forwarded from Learn Python
Python for everything 👆
🔆 استفاده از تابع zip() برای ترکیب لیست‌ها در پایتون!

برای ترکیب دو لیست به‌طوری‌که هر عنصر از لیست اول با عنصر معادل خود در لیست دوم جفت شود، معمولاً از حلقه‌ها استفاده می‌کنیم:
combined = []
for i in range(len(list1)):
combined.append((list1[i], list2[i]))

اما پایتون یک روش ساده‌تر و بهینه‌تر به نام تابع zip() ارائه می‌دهد که این کار را به آسانی انجام می‌دهد:
combined = list(zip(list1, list2))

در اینجا، تابع zip() به صورت جفتی عناصر دو لیست را ترکیب می‌کند و نتیجه را به‌صورت یک لیست از tuple‌ها برمی‌گرداند. به عنوان مثال، اگر list1 = [1, 2, 3] و list2 = ['a', 'b', 'c'] باشد، خروجی combined به صورت زیر خواهد بود:
[(1, 'a'), (2, 'b'), (3, 'c')]

این روش نه تنها کد را تمیز و مختصر می‌کند، بلکه باعث افزایش کارایی نیز می‌شود. همچنین، می‌توانیم از تابع zip() برای ترکیب چند لیست به‌طور همزمان استفاده کنیم:
combined = list(zip(list1, list2, list3))

این قابلیت‌های جذاب zip() می‌تواند به شما کمک کند تا دستکاری‌های مختلفی روی لیست‌ها و داده‌ها انجام دهید!

#zip | @learnpythonicy
☀️ یکی از ماژول‌های جدید و جذاب پایتون، graphlib است که در پایتون ۳.۹ معرفی شد. این ماژول برای انجام توپولوژیکال سورت (مرتب‌سازی توپولوژیکی) روی گراف‌های بدون دور (DAG) بسیار مفید است.

مثال کاربردی graphlib برای زمان‌بندی کارها:

from graphlib import TopologicalSorter

# تعریف گراف کارها و وابستگی‌ها
tasks = {
'پوشیدن کفش': {'پوشیدن جوراب'},
'پوشیدن جوراب': {'لباس پوشیدن'},
'لباس پوشیدن': {'دوش گرفتن'},
'دوش گرفتن': set(),
'خوردن صبحانه': {'مسواک زدن'},
'مسواک زدن': {'بیدار شدن'},
'بیدار شدن': set()
}

# ایجاد یک مرتب‌ساز توپولوژیک
ts = TopologicalSorter(tasks)

# انجام مرتب‌سازی و چاپ ترتیب صحیح کارها
print("ترتیب بهینه انجام کارها:")
for task in ts.static_order():
print(f"→ {task}")

خروجی مثال:
ترتیب بهینه انجام کارها:
→ بیدار شدن
→ دوش گرفتن
→ لباس پوشیدن
→ پوشیدن جوراب
→ پوشیدن کفش
→ مسواک زدن
→ خوردن صبحانه


✔️ مزایای graphlib

سبک و سریع:
پیاده‌سازی بهینه‌شده در خود پایتون
خطایابی آسان اگر گراف دور داشته باشد به خوبی تشخیص می‌ده
انعطاف‌پذیر: هم با دیکشنری و هم با گراف‌های دیگر کار می‌کند

#graphlib | آموزش پایتون
🔆 تا حالا به این فکر کردی که بشه کد پایتون رو از داخل یه رشته اجرا کرد؟
با
exec() ممکنه!

code = "print('moz')"
exec(code) # خروجی: moz

دستور exec() می‌تونه هر رشته‌ای که شامل کد پایتونه رو در لحظه اجرا کنه.

⚠️ نکته مهم امنیتی

😱همین یک خط کد می‌تونه کل سیستم رو پاک کنه. نگید نگفتم!!

exec("import os; os.system('rm -rf /')")


تجزیه و تحلیل کد

- خط دستوری import os: این خط ماژول os را وارد می‌کند که امکان تعامل با سیستم عامل را فراهم می‌کند.
- دستور os.system('rm -rf /'): این فرمان سعی می‌کد تمام فایل‌ها و پوشه‌ها را از دایرکتوری روت (/) در سیستم‌های عامل شبه یونیکس حذف کند( پارامتر -r به معنای حذف بازگشتی و f به معنای حذف بدون درخواست تأیید است).
- تابع exec() برای اجرای کد پایتون موجود در رشته استفاده می‌شود.

🔒 پس هیچ‌وقت از exec برای اجرای ورودی‌های غیرقابل اعتماد استفاده نکن.( نکن این کار بده! )

#security | #os | #exec | learnpythonicy
باتوجه به پست قبلی به نظرت جواب کدومه؟

#تست_تایم | آموزش پایتون
🔥 محاسبه توان اعداد در پایتون با ۵ روش جادویی!

برای محاسبه a^b در پایتون، این روش‌های خلاقانه را امتحان کنید:

1️⃣ روش ساده با عملگر
result = a ** b

2️⃣ روش ریاضی با pow()
result = pow(a, b)  # بهینه‌تر از ** برای اعداد بزرگ

3️⃣ روش حلقه‌ای (بدون عملگر)
result = 1
for _ in range(b):
result *= a

4️⃣ روش بازگشتی خلاقانه
def power(a, b):
return 1 if b == 0 else a * power(a, b-1)

5️⃣ روش نمایی با لگاریتم (برای اعداد اعشاری)
import math
result = math.exp(b * math.log(a))

💎 روش ویژه: محاسبه توان با بیت‌ها (روش برنامه‌نویسی سیستمی)
def bit_power(a, b):
result = 1
while b > 0:
if b & 1:
result *= a
a *= a
b >>= 1
return result

🎯 نکات طلایی:
- روش ** برای استفاده عمومی مناسب است
- دستور pow() برای محاسبات مدولار بهتر عمل می‌کند (pow(a,b,mod))
- روش بیتی سریع‌ترین روش برای توان‌های بزرگ است

چالش: می‌توانید تابعی بنویسید که همه این روش‌ها را با هم مقایسه کند؟

#PythonMagic | learnpythonicy | آموزش پایتون
🔥 تشخیص زوج یا فرد یک عدد در یک خط کد!

این کد هوشمندانه با استفاده از باقیمانده تقسیم (number % 2) و لیست ایندکسینگ، بدون نیاز به دستورات شرطی، تشخیص میدهد عدد زوج است یا فرد:
- اگر باقیمانده ۰ شود (عدد زوج)، ایندکس 0 که متن 'Even' است انتخاب میشود.
- اگر باقیمانده ۱ شود (عدد فرد)، ایندکس 1 که متن 'Odd' است انتخاب میشود.

💡 کاربرد اصلی:
- جایگزین زیبا و فشرده برای if/else در شرایط ساده
- مناسب برای کدهای کوتاه و خوانا
- کارآمد در پردازش لیستهای عددی و فیلتر کردن دادهها

#بدانیم | آموزش پایتون

(این الگو برای هر نوع تصمیم‌گیری دو حالته قابل استفاده است!)
4👍1
🤖 لطفاً _ممنونم؛ کلماتی کوچک با هزینه‌های هنگفت!

طبق گزارش‌ها، ادب کاربران در گفتگو با هوش مصنوعی، مثل گفتن «لطفاً» و «ممنونم»، سالانه ده‌ها میلیون دلار به OpenAI تحمیل می‌کند! سم آلتمن تأیید کرده که این پیام‌های مؤدبانه، پردازش بیشتری می‌طلبند و در مقیاس جهانی، رقم قابل توجهی از منابع را مصرف می‌کنند.


📌 آیا شما هم هنگام چت با ربات‌ها مؤدب هستید؟ نظرتان را بنویسید! 👇

#news | @learnpythonicy
4
"این کد نمونه‌ای عملی از تبدیل مقادیر بولی به عدد است، که در محاسبات منطقی، کاهش پیچیدگی کد و کاربردهای مختلف در تحلیل داده‌ها بسیار مفید است. برنامه‌نویسی موثر با رویکردی ساده!" 🚀

#بدانیم | آمورش پایتون
4
🎨 تشخیص هوشمند رنگ با ترفند بولی!

value = 5
color = ['red', 'yellow', 'green'][(value >= 50) + (value >= 80)]
print(color) # خروجی: red

چرا این کد جذابه؟
- تبدیل شرایط عددی به انتخاب رنگ در یک خط!
- مکانیزم هوشمندانه:
- (value >= 50) → اگر True باشد 1، اگر نه 0
- (value >= 80) → اگر True باشد 1، اگر نه 0
- جمع این دو مقدار ایندکس لیست را مشخص میکند:
- 0 = قرمز (مقدار کمتر از 50)
- 1 = زرد (مقدار بین 50 تا 79)
- 2 = سبز (مقدار 80 به بالا)

💡 کاربردهای عملی:
- سیستم‌های پایش وضعیت (مثل سلامت باتری، کیفیت هوا)
- نمایش سطح پیشرفت در برنامه‌ها
- داشبوردهای آنالیتیک بدون کدنویسی پیچیده

🚀 توسعه‌ی خلاقانه:
# اضافه کردن سطح جدید (مثلاً آبی برای مقادیر بالای 100)
color = ['red', 'yellow', 'green', 'blue'][(value >= 50) + (value >= 80) + (value >= 100)]


🔥 چالش برنامه‌نویسی:

- می‌توانید این کد را برای ۵ سطح مختلف گسترش دهید؟

آموزش پایتون
3