☄ دقت در محاسبات عددی (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 را هم میزارم.
🧡🔥 تغییرات بزرگ یک شبه اتفاق نمیافتند.
آموزش پایتون
📢 روز یکم از چالش ۳۰ روزه Python for AI #Day1 🎯 موضوع: Variables + Input + Basic Calculations ⭐ سطح: مبتدی ⏳ زمان تخمینی: 10 تا 20 دقیقه 📝 صورت مسئله: فرض کنید میخواهیم اولین بخش یک Student Analytics System را طراحی کنیم. دیتای زیر را در برنامه خود…
✅ پاسخ چالش Day 1
یکی از راهحلهای ممکن:
📚 مفاهیمی که در این چالش تمرین کردیم:
✅ Variables
✅ User Input
✅ Dictionary
✅ Nested Dictionary Access
✅ Basic Calculations
✅ Conditional Statements (if/else)
✅ Formatted Output
💡 نکته:
اگر نام دانشجویی وارد شود که در دیتاست وجود ندارد، برنامه خطا میدهد. در چالشهای آینده یاد میگیریم چطور این خطاها را مدیریت کنیم.
🔥 اگر راهحل متفاوتی نوشتید، در کامنتها ارسال کنید. گاهی چندین راهحل مختلف برای یک مسئله وجود داره و دیدن روشهای دیگه میتونه آموزنده باشه.
🔜 آماده چالش Day 2 باشید...
یکی از راهحلهای ممکن:
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}
}
student_name = input("Enter student name: ")
credits = students[student_name]["credits"]
gpa = students[student_name]["gpa"]
remaining_credits = 140 - credits
progress_percentage = (credits / 140) * 100
if credits >= 140:
status = "Graduated"
else:
status = "In Progress"
print("\nStudent Information")
print("-------------------")
print("Name:", student_name)
print("Credits Passed:", credits)
print("GPA:", gpa)
print("Remaining Credits:", remaining_credits)
print(f"Progress: {progress_percentage:.2f}%")
print("Status:", status)📚 مفاهیمی که در این چالش تمرین کردیم:
✅ Variables
✅ User Input
✅ Dictionary
✅ Nested Dictionary Access
✅ Basic Calculations
✅ Conditional Statements (if/else)
✅ Formatted Output
💡 نکته:
اگر نام دانشجویی وارد شود که در دیتاست وجود ندارد، برنامه خطا میدهد. در چالشهای آینده یاد میگیریم چطور این خطاها را مدیریت کنیم.
🔥 اگر راهحل متفاوتی نوشتید، در کامنتها ارسال کنید. گاهی چندین راهحل مختلف برای یک مسئله وجود داره و دیدن روشهای دیگه میتونه آموزنده باشه.
🔜 آماده چالش Day 2 باشید...
🔥 چالش ۳۰ روزه Python for AI
#Day2
🎯 موضوع:
Conditional Statements (if / elif / else)
⭐ سطح:
مبتدی
⏳ زمان تخمینی:
10 تا 25 دقیقه
📝 صورت مسئله:
در بسیاری از سیستمهای AI و Data Analytics، قبل از تحلیل دادهها باید آنها را دستهبندی کنیم.
فرض کنید میخواهیم دانشجویان را بر اساس معدل طبقهبندی کنیم.
برنامهای بنویسید که:
1️⃣ نام دانشجو را از کاربر دریافت کند.
2️⃣ اطلاعات دانشجو را از دیتاست زیر پیدا کند.
3️⃣ علاوه بر نمایش اطلاعات، وضعیت تحصیلی او را نیز تعیین کند.
📌 Academic Level
اگر GPA برابر یا بیشتر از 18 بود:
Excellent
اگر GPA بین 16 و 18 بود:
Good
اگر GPA بین 14 و 16 بود:
Average
اگر GPA کمتر از 14 بود:
Needs Improvement
💡 اگر مبتدی هستید:
ابتدا روی بخش Academic Level تمرکز کنید و سپس Bonus را انجام دهید.
❓ اگر به راهنمایی نیاز داشتید:
در کامنتها سؤال بپرسید یا از طریق بات پیام ارسال کنید.
⏰ مهلت ارسال پاسخ:
فردا ساعت 20:00
🔺 امروز داریم اولین قدمهای واقعی در دستهبندی دادهها (Classification Logic) را تمرین میکنیم؛ مفهومی که بعدها در Machine Learning بسیار مهم خواهد بود.
#Day2
🎯 موضوع:
Conditional Statements (if / elif / else)
⭐ سطح:
مبتدی
⏳ زمان تخمینی:
10 تا 25 دقیقه
📝 صورت مسئله:
در بسیاری از سیستمهای AI و Data Analytics، قبل از تحلیل دادهها باید آنها را دستهبندی کنیم.
فرض کنید میخواهیم دانشجویان را بر اساس معدل طبقهبندی کنیم.
برنامهای بنویسید که:
1️⃣ نام دانشجو را از کاربر دریافت کند.
2️⃣ اطلاعات دانشجو را از دیتاست زیر پیدا کند.
3️⃣ علاوه بر نمایش اطلاعات، وضعیت تحصیلی او را نیز تعیین کند.
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}
}📌 Academic Level
اگر GPA برابر یا بیشتر از 18 بود:
Excellent
اگر GPA بین 16 و 18 بود:
Good
اگر GPA بین 14 و 16 بود:
Average
اگر GPA کمتر از 14 بود:
Needs Improvement
📌 نمونه خروجی:
Enter student name: Sara
Name: Sara
GPA: 18.5
Academic Level: Excellent
🎯 Bonus Challenge
علاوه بر Academic Level مشخص کنید آیا به دانشجو اسکالرشیپ تعلق میگیرد یا خیر:
Eligible for Scholarship
شرط بورسیه:
- GPA >= 18
- Credits >= 90
💡 اگر مبتدی هستید:
ابتدا روی بخش Academic Level تمرکز کنید و سپس Bonus را انجام دهید.
❓ اگر به راهنمایی نیاز داشتید:
در کامنتها سؤال بپرسید یا از طریق بات پیام ارسال کنید.
⏰ مهلت ارسال پاسخ:
فردا ساعت 20:00
🔺 امروز داریم اولین قدمهای واقعی در دستهبندی دادهها (Classification Logic) را تمرین میکنیم؛ مفهومی که بعدها در Machine Learning بسیار مهم خواهد بود.
👨💻2
آموزش پایتون
🔥 چالش ۳۰ روزه Python for AI #Day2 🎯 موضوع: Conditional Statements (if / elif / else) ⭐ سطح: مبتدی ⏳ زمان تخمینی: 10 تا 25 دقیقه 📝 صورت مسئله: در بسیاری از سیستمهای AI و Data Analytics، قبل از تحلیل دادهها باید آنها را دستهبندی کنیم. فرض کنید میخواهیم…
✅ پاسخ چالش Day 2
یکی از راهحلهای ممکن:
📚 مفاهیمی که در این چالش تمرین کردیم:
✅ Variables
✅ User Input
✅ Dictionary
✅ Nested Dictionary Access
✅ Conditional Statements
✅ if / elif / else
✅ Comparison Operators
✅ Logical Operator and
✅ Classification Logic
✅ Formatted Output
💡 نکته:
در این چالش با استفاده از شرطها، دانشجویان را بر اساس GPA دستهبندی کردیم. این نوع منطق شرطی، پایهایترین شکل Classification است و در مراحل بعدی یادگیری Machine Learning کاربرد زیادی دارد.
🎁 Bonus:
برای بررسی بورسیه، دو شرط را همزمان بررسی کردیم:
GPA >= 18
Credits >= 90
اگر هر دو شرط درست باشند، دانشجو واجد شرایط Scholarship خواهد بود.
🔥 اگر راهحل متفاوتی نوشتید، در کامنتها ارسال کنید. گاهی چندین راهحل مختلف برای یک مسئله وجود داره و دیدن روشهای دیگه میتونه آموزنده باشه.
🔜 آماده چالش Day 3 باشید...
یکی از راهحلهای ممکن:
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}
}
student_name = input("Enter student name: ").strip().title()
if student_name in students:
credits = students[student_name]["credits"]
gpa = students[student_name]["gpa"]
if gpa >= 18:
academic_level = "Excellent"
elif gpa >= 16:
academic_level = "Good"
elif gpa >= 14:
academic_level = "Average"
else:
academic_level = "Needs Improvement"
if gpa >= 18 and credits >= 90:
scholarship = "Eligible for Scholarship"
else:
scholarship = "Not Eligible for Scholarship"
print("\nStudent Information")
print("-------------------")
print("Name:", student_name)
print("Credits Passed:", credits)
print("GPA:", gpa)
print("Academic Level:", academic_level)
print("Scholarship:", scholarship)
else:
print("Student not found")📚 مفاهیمی که در این چالش تمرین کردیم:
✅ Variables
✅ User Input
✅ Dictionary
✅ Nested Dictionary Access
✅ Conditional Statements
✅ if / elif / else
✅ Comparison Operators
✅ Logical Operator and
✅ Classification Logic
✅ Formatted Output
💡 نکته:
در این چالش با استفاده از شرطها، دانشجویان را بر اساس GPA دستهبندی کردیم. این نوع منطق شرطی، پایهایترین شکل Classification است و در مراحل بعدی یادگیری Machine Learning کاربرد زیادی دارد.
🎁 Bonus:
برای بررسی بورسیه، دو شرط را همزمان بررسی کردیم:
GPA >= 18
Credits >= 90
اگر هر دو شرط درست باشند، دانشجو واجد شرایط Scholarship خواهد بود.
🔥 اگر راهحل متفاوتی نوشتید، در کامنتها ارسال کنید. گاهی چندین راهحل مختلف برای یک مسئله وجود داره و دیدن روشهای دیگه میتونه آموزنده باشه.
🔜 آماده چالش Day 3 باشید...
🔥 چالش ۳۰ روزه Python for AI
#Day3
🎯 موضوع:
Loops (for)
⭐ سطح:
مبتدی تا متوسط
⏳ زمان تخمینی:
15 تا 30 دقیقه
📝 صورت مسئله:
در سیستمهای تحلیلی معمولاً لازم است همه دادهها را بررسی کنیم.
دیتاست زیر را در برنامه قرار دهید:
برنامه باید:
✅ تعداد کل دانشجویان را نمایش دهد.
✅ میانگین GPA را محاسبه کند.
✅ دانشجویی با بیشترین GPA را پیدا کند.
✅ دانشجویی با کمترین GPA را پیدا کند.
🎯 Bonus Challenge
تعداد دانشجویانی که GPA آنها بیشتر یا مساوی 18 است را محاسبه کنید.
📋 نکته:
برای حل این مسئله باید روی تمام دانشجویان Loop بزنید.
⏰ مهلت ارسال پاسخ:
فردا ساعت 20:00
#Day3
🎯 موضوع:
Loops (for)
⭐ سطح:
مبتدی تا متوسط
⏳ زمان تخمینی:
15 تا 30 دقیقه
📝 صورت مسئله:
در سیستمهای تحلیلی معمولاً لازم است همه دادهها را بررسی کنیم.
دیتاست زیر را در برنامه قرار دهید:
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}
}برنامه باید:
✅ تعداد کل دانشجویان را نمایش دهد.
✅ میانگین GPA را محاسبه کند.
✅ دانشجویی با بیشترین GPA را پیدا کند.
✅ دانشجویی با کمترین GPA را پیدا کند.
📌 نمونه خروجی:
Total Students: 10
Average GPA: 17.54
Top Student: Mina (19.0)
Lowest GPA: Reza (15.2)
🎯 Bonus Challenge
تعداد دانشجویانی که GPA آنها بیشتر یا مساوی 18 است را محاسبه کنید.
📋 نکته:
برای حل این مسئله باید روی تمام دانشجویان Loop بزنید.
⏰ مهلت ارسال پاسخ:
فردا ساعت 20:00