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

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

لینک چنل ایتا:
https://eitaa.com/learnpythonicy
Download Telegram
⚡️ معکوس کردن یک رشته در پایتون با روشی نوآورانه!

برای معکوس کردن یک رشته در پایتون، معمولاً از حلقه‌ها یا متدهای خاص استفاده می‌کنیم:
reversed_string = ""
for char in my_string:
reversed_string = char + reversed_string

اما یک روش ساده‌تر و سریع‌تر وجود دارد که می‌تواند کار ما را به‌راحتی انجام دهد:
reversed_string = my_string[::-1]

در اینجا، با استفاده از اسلایسینگ (slicing) می‌توانیم رشته را به‌سادگی از انتها به ابتدا بخوانیم. با قرار دادن ::-1 در انتهای رشته، به پایتون می‌گوییم که هر کاراکتر را با گام منفی یک انتخاب کند و بدین ترتیب رشته را معکوس می‌کند.

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

#pythonMagic | learnpythonicy | آموزش پایتون
🔥 محاسبه فاکتوریل در پایتون با ۳ روش مختلف!

برای محاسبه فاکتوریل (n!) در پایتون، می‌توانید از این روش‌ها استفاده کنید:

1. روش کلاسیک با حلقه:
factorial = 1
for i in range(1, n+1):
factorial *= i


2. روش بازگشتی (Recursive):
def factorial(n):
return 1 if n == 0 else n * factorial(n-1)



3. روش یکخطی با math (بهینه و سریع!):
from math import factorial
result = factorial(n)



#pythonMagic | @learnpythonicy | آموزش پایتون
LEARN PYTHON 3
THE HARD WAY.pdf
5.9 MB
📚 «Learn Python 3 the Hard Way»

📚 کتاب "یادگیری پایتون ۳ به روش سخت"

آیا می‌خواهید پایتون را به‌صورت عملی و گام‌به‌گام یاد بگیرید؟

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

خلاصه‌ای از کتاب:
- آموزش پایتون ۳ از پایه تا پیشرفته
- شامل ۵۲ تمرین عملی برای تسلط بر مفاهیم
- تاکید بر یادگیری از طریق تکرار و اصلاح خطاها
- پوشش مباحثی مثل توابع، شیءگرایی، مدیریت فایل‌ها، و دیباگ کردن



#معرفی_کتاب | #بوک_تایم | آموزش پایتون
یادگیری واقعی با تلاش واقعی اتفاق می‌افتد ☀️

#موتیو_تایم
1
چگونه یک لیست را در پایتون به سرعت مرتب کنیم؟ 🚀

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

روش سریع با 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 | آموزش پایتون