✔️ تابع reduce
در پایتون، ماژول functools دسترسی به قابلیتهای تابعی (Functional Programming) زبان را فراهم میکند.
یکی از توابع مهم و کاربردی این ماژول، تابع reduce است که با اعمال متوالی یک تابع مشخص روی عناصر یک مجموعه داده، آن مجموعه را به یک مقدار نهایی کاهش میدهد و نتایج میانی را در طول فرآیند حفظ میکند.
بهعنوان مثال، میتوان عملکرد reduce را در ضرب متوالی اعداد مشاهده کرد:
ابتدا عدد 1 در 2 ضرب میشود، سپس حاصل بهدستآمده در 3 ضرب میگردد و این روند به همین شکل ادامه پیدا میکند.
#python | #functools | @learnpythonicy
در پایتون، ماژول functools دسترسی به قابلیتهای تابعی (Functional Programming) زبان را فراهم میکند.
یکی از توابع مهم و کاربردی این ماژول، تابع reduce است که با اعمال متوالی یک تابع مشخص روی عناصر یک مجموعه داده، آن مجموعه را به یک مقدار نهایی کاهش میدهد و نتایج میانی را در طول فرآیند حفظ میکند.
بهعنوان مثال، میتوان عملکرد reduce را در ضرب متوالی اعداد مشاهده کرد:
ابتدا عدد 1 در 2 ضرب میشود، سپس حاصل بهدستآمده در 3 ضرب میگردد و این روند به همین شکل ادامه پیدا میکند.
#python | #functools | @learnpythonicy
✔️ حذف None و مقادیر تکراری با حفظ ترتیب در پایتون
در بسیاری از سناریوهای واقعی (دیتاپروسسینگ، لاگها، ورودی کاربر)،
علاوه بر حذف مقادیر تکراری و None، حفظ ترتیب عناصر هم اهمیت دارد.
در این حالت استفاده از set مناسب نیست، چون ترتیب را از بین میبرد.
راهحل تمیز و پایتونیک، استفاده از
🔍 مزایا
. ترتیب لیست حفظ میشود
. بدون حلقهی دستی
. مناسب پیشپردازش دیتا
⚠️ نکته:
این روش از پایتون 3.7 به بعد کاملاً قابل اعتماد است (ترتیب دیکشنری حفظ میشود).
#fromkeys | #dict | #list | #none | @LearnPythonIcy
در بسیاری از سناریوهای واقعی (دیتاپروسسینگ، لاگها، ورودی کاربر)،
علاوه بر حذف مقادیر تکراری و None، حفظ ترتیب عناصر هم اهمیت دارد.
در این حالت استفاده از set مناسب نیست، چون ترتیب را از بین میبرد.
راهحل تمیز و پایتونیک، استفاده از
dict.fromkeys است:data = [1, 2, None, 3, 2, None, 4, 1]
clean_data = list(dict.fromkeys(x for x in data if x is not None))
print(clean_data)
📌 خروجی:
[1, 2, 3, 4]
🔍 مزایا
. ترتیب لیست حفظ میشود
. بدون حلقهی دستی
. مناسب پیشپردازش دیتا
⚠️ نکته:
این روش از پایتون 3.7 به بعد کاملاً قابل اعتماد است (ترتیب دیکشنری حفظ میشود).
#fromkeys | #dict | #list | #none | @LearnPythonIcy
✔️ گروهبندی آیتمها در پایتون با defaultdict
در بسیاری از سناریوهای واقعی
(دیتاپروسسینگ، گزارشگیری، لاگها، دستهبندی دادهها)،
نیاز داریم آیتمها را بر اساس یک کلید مشخص گروهبندی کنیم.
روشهای معمول با if و in کد را شلوغ میکنند.
راهحل پایتونیک و تمیز: استفاده از
🔍 مزایا
. کد خوانا و کوتاه
. بدون نیاز به چککردن وجود کلید
. مناسب برای دستهبندی دیتا و گزارشها
⚠️ نکته: defaultdict مقدار پیشفرض میسازد،
پس اگر نوع داده اشتباه انتخاب شود، ممکن است باگ پنهان ایجاد کند.
#defaultdict | #collections | #python | #dataprocessing | @LearnPythonIcy
در بسیاری از سناریوهای واقعی
(دیتاپروسسینگ، گزارشگیری، لاگها، دستهبندی دادهها)،
نیاز داریم آیتمها را بر اساس یک کلید مشخص گروهبندی کنیم.
روشهای معمول با if و in کد را شلوغ میکنند.
راهحل پایتونیک و تمیز: استفاده از
defaultdict.from collections import defaultdict
data = [
("apple", "fruit"),
("carrot", "vegetable"),
("banana", "fruit"),
("spinach", "vegetable"),
]
grouped = defaultdict(list)
for item, category in data:
grouped[category].append(item)
print(dict(grouped))
📌 خروجی:
{
'fruit': ['apple', 'banana'],
'vegetable': ['carrot', 'spinach']
}
🔍 مزایا
. کد خوانا و کوتاه
. بدون نیاز به چککردن وجود کلید
. مناسب برای دستهبندی دیتا و گزارشها
⚠️ نکته: defaultdict مقدار پیشفرض میسازد،
پس اگر نوع داده اشتباه انتخاب شود، ممکن است باگ پنهان ایجاد کند.
#defaultdict | #collections | #python | #dataprocessing | @LearnPythonIcy
اول بگوو خروجی این کد چیه؟🤨
🧠 Python Mutability Trick — چرا جواب این عجیب میشه؟
کدی که میبینی ساده بهنظر میاد، ولی پشتش یکی از مهمترین مفاهیم پایتون قایمه:
لیست mutable هست و عمل ضرب روی لیست، فقط referenceها رو تکثیر میکنه، نه لیست جدید!
📌 نتیجه؟
چاپ میکنه: 1
چــــرا؟
چون x[0] یک لیست خالیه و وقتی میگی x * 3 پایتون همون یک لیست رو سه بار اشاره میده.
پس y[0]، y[1] و y[2] همگی در اصل یک لیست مشترک هستن.
هر تغییری روی یکی، روی همش اعمال میشه.
🔥 نکته تستیِ پست:
هر وقت تو پایتون لیست رو ضرب کردی، بدون copy چطور میتونی از این دام فرار کنی؟
جواب 👇
#تست_تایم | @learnpythonicy
🧠 Python Mutability Trick — چرا جواب این عجیب میشه؟
کدی که میبینی ساده بهنظر میاد، ولی پشتش یکی از مهمترین مفاهیم پایتون قایمه:
لیست mutable هست و عمل ضرب روی لیست، فقط referenceها رو تکثیر میکنه، نه لیست جدید!
x = [[]]
y = x * 3
y[0].append(1)
print(len(y[1]))
📌 نتیجه؟
چــــرا؟
چون x[0] یک لیست خالیه و وقتی میگی x * 3 پایتون همون یک لیست رو سه بار اشاره میده.
پس y[0]، y[1] و y[2] همگی در اصل یک لیست مشترک هستن.
هر تغییری روی یکی، روی همش اعمال میشه.
🔥 نکته تستیِ پست:
هر وقت تو پایتون لیست رو ضرب کردی، بدون copy چطور میتونی از این دام فرار کنی؟
جواب 👇
y = [list(x[0]) for _ in range(3)]
#تست_تایم | @learnpythonicy
☄ دقت در محاسبات عددی (Floating vs Decimal vs Fraction)
در اغلب زبانهای برنامهنویسی، اعداد اعشاری از نوع Floating-point بهصورت دودویی در حافظه ذخیره میشوند.
این یعنی در بسیاری از محاسبات، با مقادیر تقریبی سروکار داریم، نه عدد دقیق.
برای افزایش دقت:
میتوان از Decimal استفاده کرد که خطای اعشاری را تا حد زیادی کاهش میدهد،
اما حتی Decimal هم در برخی سناریوهای خاص کاملاً بینقص نیست.
📌 وقتی دقت ۱۰۰٪ اهمیت دارد (مثل محاسبات مالی، آماری یا ریاضی دقیق)،
بهترین انتخاب
که Fraction عدد را بهصورت کسر منطقی (صورت/مخرج) ذخیره میکند، نه اعشار تقریبی؛
در نتیجه محاسبات:
. دقیق
. قابل پیشبینی
. بدون خطای اعشاری
انجام میشوند.
✅ خلاصهی انتخاب
float → سریع ولی تقریبی
Decimal → دقیقتر، مناسب محاسبات حساس
Fraction → دقیقترین گزینه برای محاسبات ایدهآل
🧪 مثال
📌 نکته مهم:
float
بهخاطر نمایش دودویی دچار خطا میشود.
Decimal
باید با رشته (string) ساخته شود.
Fraction
نتیجه را دقیق و بدون خطا نگه میدارد
#numbers | #precision | #FloatingPoint | #Decimal | #Fraction | @Learnpythonicy
در اغلب زبانهای برنامهنویسی، اعداد اعشاری از نوع Floating-point بهصورت دودویی در حافظه ذخیره میشوند.
این یعنی در بسیاری از محاسبات، با مقادیر تقریبی سروکار داریم، نه عدد دقیق.
برای افزایش دقت:
میتوان از Decimal استفاده کرد که خطای اعشاری را تا حد زیادی کاهش میدهد،
اما حتی Decimal هم در برخی سناریوهای خاص کاملاً بینقص نیست.
📌 وقتی دقت ۱۰۰٪ اهمیت دارد (مثل محاسبات مالی، آماری یا ریاضی دقیق)،
بهترین انتخاب
Fraction است.که Fraction عدد را بهصورت کسر منطقی (صورت/مخرج) ذخیره میکند، نه اعشار تقریبی؛
در نتیجه محاسبات:
. دقیق
. قابل پیشبینی
. بدون خطای اعشاری
انجام میشوند.
✅ خلاصهی انتخاب
float → سریع ولی تقریبی
Decimal → دقیقتر، مناسب محاسبات حساس
Fraction → دقیقترین گزینه برای محاسبات ایدهآل
🧪 مثال
from decimal import Decimal
from fractions import Fraction
# float
print(0.1 + 0.2)
# خروجی: 0.30000000000000004
# Decimal
print(Decimal("0.1") + Decimal("0.2"))
# خروجی: 0.3
# Fraction
print(Fraction(1, 10) + Fraction(2, 10))
# خروجی: 3/10
📌 نکته مهم:
float
بهخاطر نمایش دودویی دچار خطا میشود.
Decimal
باید با رشته (string) ساخته شود.
Fraction
نتیجه را دقیق و بدون خطا نگه میدارد
#numbers | #precision | #FloatingPoint | #Decimal | #Fraction | @Learnpythonicy
❤2
➿ کار با فایلهای YAML در Python با کتابخانه PyYAML
کتابخانه PyYAML امکان کار آسان و مؤثر با فایلهای YAML (YAML Ain’t Markup Language) را فراهم میکند. این فرمت معمولاً برای پیکربندیها، تنظیمات و تبادل دادههای ساختاریافته استفاده میشود.
در این مثال، ما دیکشنری data_to_write را در فایل example.yaml ذخیره کرده و سپس دادهها را دوباره در متغیر loaded_data بارگذاری میکنیم.
کتابخانه PyYAML ابزار ساده و خوانایی برای کار با دادههای YAML در Python فراهم میکند. چه برای ذخیره پیکربندیها، چه تبادل دادههای ساختاریافته، PyYAML باعث میشود کد شما خوانا و آسان برای استفاده باشد. 🙂↔️
#yaml | #pyyaml | @learnpythonicy
کتابخانه PyYAML امکان کار آسان و مؤثر با فایلهای YAML (YAML Ain’t Markup Language) را فراهم میکند. این فرمت معمولاً برای پیکربندیها، تنظیمات و تبادل دادههای ساختاریافته استفاده میشود.
import yaml
# دادهای که میخواهیم در فایل ذخیره کنیم
data_to_write = {'name': 'علی', 'age': 25, 'city': 'تهران'}
# نوشتن داده در فایل YAML
with open('example.yaml', 'w') as file:
yaml.dump(data_to_write, file, default_flow_style=False)
# خواندن داده از فایل YAML
with open('example.yaml', 'r') as file:
loaded_data = yaml.safe_load(file)
print(f"دادههای بارگذاری شده: {loaded_data}")
خروجی فایل example.yaml:
age: 25
city: تهران
name: علی
در این مثال، ما دیکشنری data_to_write را در فایل example.yaml ذخیره کرده و سپس دادهها را دوباره در متغیر loaded_data بارگذاری میکنیم.
کتابخانه PyYAML ابزار ساده و خوانایی برای کار با دادههای YAML در Python فراهم میکند. چه برای ذخیره پیکربندیها، چه تبادل دادههای ساختاریافته، PyYAML باعث میشود کد شما خوانا و آسان برای استفاده باشد. 🙂↔️
#yaml | #pyyaml | @learnpythonicy
این تست واقعاً ذهن آدمو درگیر میکنه 😈
اول فکر کن خروجی این کد چیه؟ 🤯 و بعد توضیحات و بخون!
Output: [[1, 3], [2], [1, 3]]
❓چرا اینطور شد
- خط ۲: append روی لیست مشترک، همه رو [1] میکنه
- خط ۳: x[1] + [2] یه لیست جدیــد میسازه و به x[1] نسبت داده میشه ← دیگه با بقیه مشترک نیست، میشه [2]
- خط ۴: extend روی لیست مشترک (که هنوز x[0] و x[2] بهش وصله) عدد ۳ رو اضافه میکنه ← هر دو میشن [1, 3]
🔥نکته تستیِ پست
عملگر + همیشه یه لیست جدید میسازه، در حالی که append و extend روی لیست موجود تغییر اعمال میکنند!
🎯 سوال
اگه به جای x[1] = x[1] + [2] مینوشتیم x[1].append(2) چی میشد؟ 🤔👇
#تست_تایم | @learnpythonicy
اول فکر کن خروجی این کد چیه؟ 🤯 و بعد توضیحات و بخون!
Output:
❓چرا اینطور شد
- خط ۳: x[1] + [2] یه لیست جدیــد میسازه و به x[1] نسبت داده میشه ← دیگه با بقیه مشترک نیست، میشه [2]
- خط ۴: extend روی لیست مشترک (که هنوز x[0] و x[2] بهش وصله) عدد ۳ رو اضافه میکنه ← هر دو میشن [1, 3]
🔥نکته تستیِ پست
عملگر + همیشه یه لیست جدید میسازه، در حالی که append و extend روی لیست موجود تغییر اعمال میکنند!
🎯 سوال
اگه به جای x[1] = x[1] + [2] مینوشتیم x[1].append(2) چی میشد؟ 🤔👇
#تست_تایم | @learnpythonicy
⛔️🚫⛔️🚫⛔️🚫⛔️🚫
. دوست دارید پستها چه مدلی باشه؟
. تو چه حیطهای از پایتون؟
. در چه سطحی باشه؟
و...
پیشنهاد و نظراتتون و دریغ نکنید از من! 💝🙏
کامنت کنید یا ناشناس بفرستید.
@learnpythonicyBot
. دوست دارید پستها چه مدلی باشه؟
. تو چه حیطهای از پایتون؟
. در چه سطحی باشه؟
و...
پیشنهاد و نظراتتون و دریغ نکنید از من! 💝🙏
کامنت کنید یا ناشناس بفرستید.
@learnpythonicyBot
✔️ مدیریت فایلها در پایتون با ۷ روش حرفهای!
برای کار با فایلها در پایتون، این تکنیکهای کاربردی را امتحان کنید:
1️⃣ باز کردن و خواندن فایل
2️⃣ نوشتن در فایل
3️⃣ افزودن به فایل
4️⃣ خواندن خط به خط
5️⃣ بررسی وجود فایل
6️⃣ حذف فایل
7️⃣ مدیریت مسیرها با pathlib
🗝 روش ویژه: خواندن و نوشتن فایلهای CSV با pandas
نکات طلایی
* همیشه از
* برای مسیرهای پیچیده از
* برای دادههای جدولی از
#PythonMagic | #FileHandling | #pathlib | #pandas | @learnpythonic
> *برای ذخیرهسازی، تحلیل داده و اتوماسیون کاربرد دارد*
برای کار با فایلها در پایتون، این تکنیکهای کاربردی را امتحان کنید:
1️⃣ باز کردن و خواندن فایل
with open('file.txt', 'r') as f:
content = f.read()
print(content)2️⃣ نوشتن در فایل
with open('file.txt', 'w') as f:
f.write("سلام دنیا!")3️⃣ افزودن به فایل
with open('file.txt', 'a') as f:
f.write("\nخط جدید")4️⃣ خواندن خط به خط
with open('file.txt', 'r') as f:
for line in f:
print(line.strip())5️⃣ بررسی وجود فایل
import os
print(os.path.exists('file.txt')) # True یا False
6️⃣ حذف فایل
import os
os.remove('file.txt')
7️⃣ مدیریت مسیرها با pathlib
from pathlib import Path
path = Path('file.txt')
print(path.exists())
print(path.read_text())
🗝 روش ویژه: خواندن و نوشتن فایلهای CSV با pandas
import pandas as pd
df = pd.read_csv('data.csv')
print(df.head())
df.to_csv('output.csv', index=False)
نکات طلایی
* همیشه از
with برای مدیریت فایل استفاده کنید* برای مسیرهای پیچیده از
pathlib کمک بگیرید* برای دادههای جدولی از
pandas بهره ببرید#PythonMagic | #FileHandling | #pathlib | #pandas | @learnpythonic
> *برای ذخیرهسازی، تحلیل داده و اتوماسیون کاربرد دارد*
✔️ کار با لیستها در پایتون با ۷ روش حرفهای!
برای مدیریت لیستها و دادههای متوالی، این تکنیکهای کاربردی را امتحان کنید:
1️⃣ ایجاد لیست
2️⃣ اضافه کردن عنصر
3️⃣ درج عنصر در موقعیت خاص
4️⃣ حذف عنصر
5️⃣ دسترسی به عناصر با ایندکس
6️⃣ مرتبسازی لیست
7️⃣ لیستها با فهم لیست (List Comprehension)
🗝 روش ویژه: تبدیل لیست به آرایه NumPy
نکات طلایی
* برای اضافه و حذف عنصر از
* List comprehension کد شما را کوتاه و خواناتر میکند
* برای محاسبات عددی بزرگ، لیستها را به
#PythonMagic | #NumPy | #List | @learnpythonicy
برای مدیریت لیستها و دادههای متوالی، این تکنیکهای کاربردی را امتحان کنید:
1️⃣ ایجاد لیست
fruits = ['apple', 'banana', 'cherry']
print(fruits)
2️⃣ اضافه کردن عنصر
fruits.append('orange')
print(fruits)3️⃣ درج عنصر در موقعیت خاص
fruits.insert(1, 'kiwi')
print(fruits)
4️⃣ حذف عنصر
fruits.remove('banana')
print(fruits)5️⃣ دسترسی به عناصر با ایندکس
print(fruits[0]) # اولین عنصر
print(fruits[-1]) # آخرین عنصر
6️⃣ مرتبسازی لیست
numbers = [5, 2, 9, 1]
numbers.sort()
print(numbers)
7️⃣ لیستها با فهم لیست (List Comprehension)
squares = [x**2 for x in range(5)]
print(squares)
🗝 روش ویژه: تبدیل لیست به آرایه NumPy
import numpy as np
arr = np.array([1, 2, 3, 4])
print(arr * 2)
نکات طلایی
* برای اضافه و حذف عنصر از
append و remove استفاده کنید* List comprehension کد شما را کوتاه و خواناتر میکند
* برای محاسبات عددی بزرگ، لیستها را به
NumPy array تبدیل کنید#PythonMagic | #NumPy | #List | @learnpythonicy
❤1
✔️ 10 Python Set Tricks You Should Know! 🐍✨
1️⃣ ساخت Set یکتا از لیست
2️⃣ افزودن آیتم
3️⃣ حذف آیتم بدون خطا
4️⃣ اجتماع دو مجموعه (Union)
5️⃣ اشتراک دو مجموعه (Intersection)
6️⃣ تفاضل مجموعهها (Difference)
7️⃣ بررسی زیرمجموعه بودن
8️⃣ حذف آیتم تصادفی
9️⃣ ساخت Set Comprehension
🔟 حذف آیتمهای تکراری از رشته
> ⚠️ ست ها(set) فوقالعاده سریع هستند (O(1) average lookup)، اما ترتیب را حفظ نمیکنند!
#Set | #PythonTricks | #DataStructures | @LearnPythonicy
👇 بیشتر از کدوم عملیات Set در پروژههات استفاده میکنی؟
1️⃣ ساخت Set یکتا از لیست
unique_items = set([1, 2, 2, 3, 4])
2️⃣ افزودن آیتم
my_set.add(5)
3️⃣ حذف آیتم بدون خطا
my_set.discard(10) # Error نمیدهد
4️⃣ اجتماع دو مجموعه (Union)
result = set1 | set2
5️⃣ اشتراک دو مجموعه (Intersection)
common = set1 & set2
6️⃣ تفاضل مجموعهها (Difference)
diff = set1 - set2
7️⃣ بررسی زیرمجموعه بودن
if set1 <= set2:
print("Subset")
8️⃣ حذف آیتم تصادفی
item = my_set.pop()
9️⃣ ساخت Set Comprehension
squares = {x**2 for x in range(5)}🔟 حذف آیتمهای تکراری از رشته
unique_chars = set("programming")> ⚠️ ست ها(set) فوقالعاده سریع هستند (O(1) average lookup)، اما ترتیب را حفظ نمیکنند!
#Set | #PythonTricks | #DataStructures | @LearnPythonicy
👇 بیشتر از کدوم عملیات Set در پروژههات استفاده میکنی؟
✔️ 10 Python Async & Concurrency Tricks You Should Know! ⚡🐍
1️⃣ اجرای تابع async
2️⃣ اجرای همزمان چند Task
3️⃣ ایجاد Task در پسزمینه
4️⃣ محدود کردن همزمانی با Semaphore
5️⃣ Timeout برای جلوگیری از Hang
6️⃣ اجرای کد Blocking داخل Async
7️⃣ استفاده از ThreadPoolExecutor
8️⃣ استفاده از ProcessPool برای CPU-Bound
9️⃣ مدیریت Race Condition با Lock
🔟 Async HTTP Requests با aiohttp
> ⚠️ نکته: Async برای I/O-Bound فوقالعاده است، اما برای CPU-Bound از multiprocessing استفاده کن.
#AsyncIO #Concurrency #Backend #Performance #PythonTricks
👇 تو پروژههات بیشتر با I/O-Bound سروکار داری یا CPU-Bound؟
1️⃣ اجرای تابع async
import asyncio
async def main():
print("Hello Async")
asyncio.run(main())
2️⃣ اجرای همزمان چند Task
async def task(n):
await asyncio.sleep(1)
return n
results = await asyncio.gather(task(1), task(2))
3️⃣ ایجاد Task در پسزمینه
task = asyncio.create_task(task(3))
4️⃣ محدود کردن همزمانی با Semaphore
sem = asyncio.Semaphore(3)
async with sem:
await some_io()
5️⃣ Timeout برای جلوگیری از Hang
await asyncio.wait_for(task(1), timeout=2)
6️⃣ اجرای کد Blocking داخل Async
loop = asyncio.get_running_loop()
result = await loop.run_in_executor(None, blocking_func)
7️⃣ استفاده از ThreadPoolExecutor
from concurrent.futures import ThreadPoolExecutor
8️⃣ استفاده از ProcessPool برای CPU-Bound
from concurrent.futures import ProcessPoolExecutor
9️⃣ مدیریت Race Condition با Lock
lock = asyncio.Lock()
async with lock:
shared_resource += 1
🔟 Async HTTP Requests با aiohttp
import aiohttp
async with aiohttp.ClientSession() as session:
async with session.get("https://api.example.com") as resp:
data = await resp.json()
> ⚠️ نکته: Async برای I/O-Bound فوقالعاده است، اما برای CPU-Bound از multiprocessing استفاده کن.
#AsyncIO #Concurrency #Backend #Performance #PythonTricks
👇 تو پروژههات بیشتر با I/O-Bound سروکار داری یا CPU-Bound؟
✔️ کار با لیستها در پایتون با ۷ روش حرفهای!
برای مدیریت لیستها و دادههای متوالی، این تکنیکهای کاربردی را امتحان کنید:
1️⃣ ایجاد لیست
fruits = ['apple', 'banana', 'cherry']
print(fruits)
2️⃣ اضافه کردن عنصر
fruits.append('orange')
print(fruits)
3️⃣ درج عنصر در موقعیت خاص
fruits.insert(1, 'kiwi')
print(fruits)
4️⃣ حذف عنصر
fruits.remove('banana')
print(fruits)
5️⃣ دسترسی به عناصر با ایندکس
print(fruits[0]) # اولین عنصر
print(fruits[-1]) # آخرین عنصر
6️⃣ مرتبسازی لیست
numbers = [5, 2, 9, 1]
numbers.sort()
print(numbers)
7️⃣ لیستها با فهم لیست (List Comprehension)
squares = [x**2 for x in range(5)]
print(squares)
🗝 روش ویژه: تبدیل لیست به آرایه NumPy
import numpy as np
arr = np.array([1, 2, 3, 4])
print(arr * 2)
#PythonMagic | #NumPy | #list | @learnpythonicy
برای مدیریت لیستها و دادههای متوالی، این تکنیکهای کاربردی را امتحان کنید:
1️⃣ ایجاد لیست
fruits = ['apple', 'banana', 'cherry']
print(fruits)
2️⃣ اضافه کردن عنصر
fruits.append('orange')
print(fruits)
3️⃣ درج عنصر در موقعیت خاص
fruits.insert(1, 'kiwi')
print(fruits)
4️⃣ حذف عنصر
fruits.remove('banana')
print(fruits)
5️⃣ دسترسی به عناصر با ایندکس
print(fruits[0]) # اولین عنصر
print(fruits[-1]) # آخرین عنصر
6️⃣ مرتبسازی لیست
numbers = [5, 2, 9, 1]
numbers.sort()
print(numbers)
7️⃣ لیستها با فهم لیست (List Comprehension)
squares = [x**2 for x in range(5)]
print(squares)
🗝 روش ویژه: تبدیل لیست به آرایه NumPy
import numpy as np
arr = np.array([1, 2, 3, 4])
print(arr * 2)
#PythonMagic | #NumPy | #list | @learnpythonicy
🔴 چالش ۳۰ روزه Python for AI
اگر قصد ورود به دنیای هوش مصنوعی، یادگیری ماشین و Data Science را دارید، این چالش برای شماست.
در طول ۳۰ روز آینده با حل تمرینهای روزانه:
✅ مهارت حل مسئله با پایتون را تقویت میکنید
✅ با ابزارهای Data Science آشنا میشوید
✅ مدلهای Machine Learning خود را میسازید
✅ چند پروژه مناسب GitHub و رزومه خواهید داشت
مسیر چالش:
📍 هفته اول
تفکر برنامهنویسی و حل مسئله با Python
📍 هفته دوم
پروژههای کاربردی و تحلیل داده
📍 هفته سوم
ورود به Data Science با NumPy ،Pandas و Visualization
📍 هفته چهارم
ورود عملی به Machine Learning و AI
🏆 پروژههای پایانی:
• Student Analytics System
• Sales Data Analyzer
• Titanic Data Analysis
• House Price Prediction
🎯 خروجی نهایی:
• تسلط بیشتر بر Python
• آشنایی عملی با Data Science
• ورود به Machine Learning
• چند پروژه قابل انتشار در GitHub
⏰ هر روز ساعت ۲۰ چالش جدید منتشر میشود.
شما تا ساعت ۱۹:۵۹ روز بعد فرصت دارید پاسخ خود را ارسال کنید.
💡 در صورت نیاز Hint ارائه خواهد شد.
💡 پاسخ کامل روز بعد همراه با چالش جدید منتشر میشود.
🔥 غیبت = از دست دادن زنجیره یادگیری
اگر قصد ورود به دنیای هوش مصنوعی، یادگیری ماشین و Data Science را دارید، این چالش برای شماست.
در طول ۳۰ روز آینده با حل تمرینهای روزانه:
✅ مهارت حل مسئله با پایتون را تقویت میکنید
✅ با ابزارهای Data Science آشنا میشوید
✅ مدلهای Machine Learning خود را میسازید
✅ چند پروژه مناسب GitHub و رزومه خواهید داشت
مسیر چالش:
📍 هفته اول
تفکر برنامهنویسی و حل مسئله با Python
📍 هفته دوم
پروژههای کاربردی و تحلیل داده
📍 هفته سوم
ورود به Data Science با NumPy ،Pandas و Visualization
📍 هفته چهارم
ورود عملی به Machine Learning و AI
🏆 پروژههای پایانی:
• Student Analytics System
• Sales Data Analyzer
• Titanic Data Analysis
• House Price Prediction
🎯 بسته به میزان مشارکت، فعالیت و همراهی اعضا، سطح پروژهها میتواند ارتقا پیدا کند و پروژههای پیشرفتهتر و نزدیکتر به پروژههای واقعی AI به چالش اضافه شوند.
🎯 خروجی نهایی:
• تسلط بیشتر بر Python
• آشنایی عملی با Data Science
• ورود به Machine Learning
• چند پروژه قابل انتشار در GitHub
⏰ هر روز ساعت ۲۰ چالش جدید منتشر میشود.
شما تا ساعت ۱۹:۵۹ روز بعد فرصت دارید پاسخ خود را ارسال کنید.
💡 در صورت نیاز Hint ارائه خواهد شد.
💡 پاسخ کامل روز بعد همراه با چالش جدید منتشر میشود.
🔥 غیبت = از دست دادن زنجیره یادگیری
📢 روز یکم از چالش ۳۰ روزه Python for AI
#Day1
🎯 موضوع:
Variables + Input + Basic Calculations
⭐ سطح:
مبتدی
⏳ زمان تخمینی:
10 تا 20 دقیقه
📝 صورت مسئله:
فرض کنید میخواهیم اولین بخش یک Student Analytics System را طراحی کنیم.
دیتای زیر را در برنامه خود قرار دهید:
برنامه باید:
1️⃣ نام دانشجو را از کاربر دریافت کند.
2️⃣ اطلاعات دانشجو را نمایش دهد:
- Name
- Credits Passed
- GPA
- Remaining Credits
- Progress Percentage
*فرض کنید برای فارغالتحصیلی به 140 واحد نیاز است.
( اگر دانشجو 140 واحد یا بیشتر گذرانده باشد:
Status: Graduated
در غیر این صورت:
Status: In Progress
)
📋 قوانین:
✅ خروجیها و نام متغیرها به زبان انگلیسی باشند.
❌ استفاده از ChatGPT فقط برای گرفتن Hint مجاز است، نه دریافت کد کامل
💡 اگر مبتدی هستی
نگران نباش. هدف این چالش یادگیری و پیشرفت روزانه است، نه کامل بودن.
❓ اگر به راهنمایی نیاز داشتی
راه ارتباطی فراوانه (کامنت،گروه، بات)
@learnpythonicychat
@learnpythonicyBot
⏰ مهلت ارسال پاسخ
فردا ساعت 20:00
فردا علاوه بر انتشار پاسخ رسمی، چالش Day 2 را هم میزارم.
🧡🔥 تغییرات بزرگ یک شبه اتفاق نمیافتند.
#Day1
🎯 موضوع:
Variables + Input + Basic Calculations
⭐ سطح:
مبتدی
⏳ زمان تخمینی:
10 تا 20 دقیقه
📝 صورت مسئله:
فرض کنید میخواهیم اولین بخش یک Student Analytics System را طراحی کنیم.
دیتای زیر را در برنامه خود قرار دهید:
students = {
"Ali": {"credits": 70, "gpa": 17.8},
"Sara": {"credits": 95, "gpa": 18.5},
"Reza": {"credits": 40, "gpa": 15.2},
"Nima": {"credits": 120, "gpa": 18.1},
"Parsa": {"credits": 55, "gpa": 16.4},
"Arman": {"credits": 80, "gpa": 17.1},
"Mina": {"credits": 140, "gpa": 19.0},
"Ava": {"credits": 35, "gpa": 16.8},
"Yasmin": {"credits": 110, "gpa": 18.7},
"Amir": {"credits": 65, "gpa": 15.9}
}برنامه باید:
1️⃣ نام دانشجو را از کاربر دریافت کند.
2️⃣ اطلاعات دانشجو را نمایش دهد:
- Name
- Credits Passed
- GPA
- Remaining Credits
- Progress Percentage
*فرض کنید برای فارغالتحصیلی به 140 واحد نیاز است.
( اگر دانشجو 140 واحد یا بیشتر گذرانده باشد:
Status: Graduated
در غیر این صورت:
Status: In Progress
)
📌 نمونه خروجی:
Enter student name: Ali
Name: Ali
Credits Passed: 70
GPA: 17.8
Remaining Credits: 70
Progress: 50%
📋 قوانین:
✅ خروجیها و نام متغیرها به زبان انگلیسی باشند.
❌ استفاده از ChatGPT فقط برای گرفتن Hint مجاز است، نه دریافت کد کامل
💡 اگر مبتدی هستی
نگران نباش. هدف این چالش یادگیری و پیشرفت روزانه است، نه کامل بودن.
❓ اگر به راهنمایی نیاز داشتی
راه ارتباطی فراوانه (کامنت،گروه، بات)
@learnpythonicychat
@learnpythonicyBot
⏰ مهلت ارسال پاسخ
فردا ساعت 20:00
فردا علاوه بر انتشار پاسخ رسمی، چالش Day 2 را هم میزارم.
🧡🔥 تغییرات بزرگ یک شبه اتفاق نمیافتند.