آموزش پایتون
🔥 چالش ۳۰ روزه Python for AI #Day14 🎯 موضوع: Mini Project — Student Data Analysis System ⭐ سطح: م
import csv
class Student:
def init(self, name, gpa, credits):
self.name = name
self.gpa = gpa
self.credits = credits
def get_status(self):
if self.credits >= 120:
return "Graduated"
return "In Progress"
def show_info(self):
print(f"Name: {self.name}")
print(f"GPA: {self.gpa}")
print(f"Credits: {self.credits}")
print(f"Status: {self.get_status()}")
def load_students(filename):
students = []
try:
with open(filename, "r", encoding="utf-8") as file:
reader = csv.DictReader(file)
for row in reader:
student = Student(
name=row["name"].strip(),
gpa=float(row["gpa"]),
credits=int(row["credits"])
)
students.append(student)
except FileNotFoundError:
print(f"Error: {filename} was not found.")
except (ValueError, KeyError):
print("Error: Invalid data in CSV file.")
except OSError as error:
print(f"Error reading file: {error}")
return students
def show_summary(students):
if not students:
print("No student data available.")
return
average_gpa = sum(student.gpa for student in students) / len(students)
top_student = max(students, key=lambda student: student.gpa)
high_gpa_students = [
student for student in students
if student.gpa >= 18
]
low_gpa_students = [
student for student in students
if student.gpa < 16
]
print("\n= Student Analysis System =")
print(f"\nTotal Students: {len(students)}")
print(f"Average GPA: {average_gpa:.2f}")
print(
f"Top Student: {top_student.name} "
f"({top_student.gpa})"
)
print("\nStudents With GPA >= 18:")
for student in high_gpa_students:
print(student.name)
print(f"\nCount: {len(high_gpa_students)}")
print("\nStudents With GPA < 16:")
for student in low_gpa_students:
print(student.name)
print(f"\nCount: {len(low_gpa_students)}")
def search_student(students):
name = input("\nEnter student name: ").strip()
if not name:
print("Please enter a valid name.")
return
for student in students:
if student.name.lower() == name.lower():
print()
student.show_info()
return
print("Student not found!")
def show_top_students(students):
top_students = sorted(
students,
key=lambda student: student.gpa,
reverse=True
)
print("\n= Top Students =")
for rank, student in enumerate(top_students, start=1):
print(f"{rank}. {student.name} - {student.gpa}")
def show_graduated_students(students):
graduated_students = [
student for student in students
if student.get_status() == "Graduated"
]
print("\n= Graduated Students =")
if not graduated_students:
print("No graduated students found.")
return
for student in graduated_students:
print(
f"{student.name} - "
f"{student.credits} Credits"
)
def show_menu():
print("\n===== Student Analysis Menu =====")
print("1. Show Summary")
print("2. Search Student")
print("3. Show Top Students")
print("4. Show Graduated Students")
print("5. Exit")
def main():
students = load_students("students.csv")
if not students:
return
while True:
show_menu()
choice = input("\nEnter your choice: ").strip()
if choice == "1":
show_summary(students)
elif choice == "2":
search_student(students)
elif choice == "3":
show_top_students(students)
elif choice == "4":
show_graduated_students(students)
elif choice == "5":
print("\nProgram closed.")
break
else:
print("\nInvalid choice. Please select 1 to 5.")
if name == "__main__":
main()
🔥 چالش ۳۰ روزه Python for AI
#Day16
🎯 موضوع:
NumPy Arrays & Data Analysis
⭐ سطح:
متوسط
⏳ زمان تخمینی:
25 تا 45 دقیقه
📝 صورت مسئله:
فرض کنید نمرات دانشجویان در یک آرایه NumPy ذخیره شدهاند:
scores = [18, 15, 20, 17, 19, 14, 16, 18, 20, 17]
برنامه باید:
✅ تمام نمرات بالاتر از میانگین را نمایش دهد.
✅ تعداد نمرات بالاتر از میانگین را محاسبه کند.
✅ درصد نمرات بالاتر از میانگین را محاسبه کند.
📌 نمونه خروجی:
Average Score: 17.4
Scores Above Average:
18
20
19
18
20
Count: 5
Percentage: 50%
🎯 Bonus Challenge
تمام نمرات کمتر از میانگین را نیز نمایش دهید.
📋 هدف امروز:
تمرین Filtering و Boolean Indexing؛ مفهومی که بعدها در Pandas و Machine Learning بسیار استفاده میشود.
⏰ مهلت ارسال پاسخ:
فردا ساعت 20:00
🔥 چالش ۳۰ روزه Python for AI
#Day17
🎯 موضوع:
Introduction to Pandas
📝 صورت مسئله:
دیتاست زیر را در قالب DataFrame ایجاد کنید:
data = {
"Name": ["Ali", "Sara", "Reza", "Nima", "Parsa"],
"GPA": [17.8, 18.5, 15.2, 18.1, 16.4],
"Credits": [70, 95, 40, 120, 55]
}
برنامه باید:
✅ DataFrame را نمایش دهد.
✅ میانگین GPA را محاسبه کند.
✅ بهترین دانشجو را پیدا کند.
✅ دانشجویانی که GPA آنها بیشتر از 18 است را نمایش دهد.
🎯 Bonus Challenge
یک ستون جدید به نام:
Status
اضافه کنید.
اگر GPA ≥ 18:
Excellent
در غیر این صورت:
Normal
📋 هدف امروز:
ورود به Pandas؛ مهمترین ابزار تحلیل داده در Python.
16.7M حجم رسانه بالاست
مشاهده در ایتا
🔥 وقتشه قدرت واقعی چیزهایی که تا امروز یاد گرفتیم رو ببینیم!
از Day 1 تا Day 17 چیا یادگرفنیم؟!
✅ Variables
✅ Conditions
✅ Loops
✅ Functions
✅ Lists & Dictionaries
✅ File Handling
✅ CSV
✅ Error Handling
✅ OOP
✅ NumPy
✅ Pandas
شاید هرکدام از این تمرینها بهتنهایی ساده به نظر میرسیدند؛ اما وقتی کنار هم قرار میگیرند، میتوانند به یک #پروژه کامل و حرفهای تبدیل شوند.
🎥 ویدیویی که میبینید، نمونهای از خروجی همین مسیر است:
Smart Student Success Dashboard
یک داشبورد هوشمند برای:
📊 تحلیل عملکرد دانشجویان
🔍 جستوجوی اطلاعات هر دانشجو
🏆 شناسایی دانشجویان برتر
⚠️ پیدا کردن دانشجویان نیازمند حمایت
📈 نمایش نمودارهای تحلیلی
🎓 بررسی میزان پیشرفت تا فارغالتحصیلی
آموزش پایتون
🔥 وقتشه قدرت واقعی چیزهایی که تا امروز یاد گرفتیم رو ببینیم! از Day 1 تا Day 17 چیا یادگرفنیم؟! ✅ V
🚀 چالش این هفته:
با استفاده از آموختههای Day 1 تا Day 17، نسخه خودتان از این پروژه را بسازید.
لازم نیست طراحی شما دقیقاً شبیه ویدیو باشد.
نسخه ساده، ناقص یا در حال توسعه هم پذیرفته میشود؛ مهم این است که شروع کنید و دانستههایتان را به یک خروجی واقعی تبدیل کنید.
🟢 حداقل امکانات پیشنهادی:
• خواندن اطلاعات از CSV
• نمایش آمار کلی دانشجویان
• جستوجوی دانشجو
• شناسایی دانشجوی برتر
• نمایش وضعیت تحصیلی
• حداقل یک نمودار تحلیلی
🔴 چالش Pro:
• ساخت رابط کاربری با Streamlit
• اضافهکردن فیلتر و نمودارهای تعاملی
• شناسایی دانشجویان At Risk
• امکان دانلود گزارش
• انتشار پروژه در GitHub
⏰ مهلت ارسال پروژه:
تا پایان هفته
https://eitaa.com/joinchat/956171922Cb501d5a32f
📤 میتوانید یکی از موارد زیر را ارسال کنید:
✅ فایل کد
✅ لینک GitHub
✅ اسکرینشات خروجی
✅ ویدیوی کوتاه اجرای پروژه
آموزش پایتون
🔥 وقتشه قدرت واقعی چیزهایی که تا امروز یاد گرفتیم رو ببینیم! از Day 1 تا Day 17 چیا یادگرفنیم؟! ✅ V
چالشها تازه جذاب شدند، نه؟؟؟🥹😋
آموزش پایتون
🚀 چالش این هفته: با استفاده از آموختههای Day 1 تا Day 17، نسخه خودتان از این پروژه را بسازید. لازم
خیلیها فکر کردند این Dashboard فقط با چند خط کد ساخته شده...
اما پشت این پروژه:
17 روز تمرین، صدها خط کد، و ترکیب چندین مفهوم Python وجود دارد.
حالا مرحله بعد شروع میشود:
هر هفته یک پروژه واقعی میسازیم!
پروژه بعدی:
🚀 Sales Data Analyzer
🐍 #Day18 — Data Cleaning & Data Preparation
دادههای واقعی همیشه تمیز و آماده تحلیل نیستند!
امروز قرار است نقش یک Data Analyst را بازی کنیم و یک دیتاست خام را آماده کنیم.
🎯 Challenge: Clean a Real-World Sales Dataset
در این تمرین ابتدا باید یک فایل به نام:
📂 sales_raw.csv
بسازید که شامل اطلاعات فروش باشد:
Order_ID
Date
Customer
Product
Category
Region
Quantity
Price
(حدود 15,000 رکورد)
اما این دادهها باید شامل مشکلات واقعی باشند:
❌ مقادیر خالی (Missing Values)
❌ ردیفهای تکراری (Duplicate Rows)
❌ تاریخهای با فرمت اشتباه
❌ دادههای نامعتبر در بعضی ستونها
Tasks:
✅ 1. خواندن فایل CSV با Pandas
✅ 2. بررسی کیفیت داده:
تعداد Missing Values
تعداد Duplicate Rows
نوع داده هر ستون
✅ 3. پاکسازی داده:
🧹 حذف رکوردهای خراب
📅 تبدیل ستون Date به فرمت صحیح
💰 ساخت ستون جدید:
Revenue = Quantity × Price
✅ 4. ذخیره دیتاست نهایی:
sales_cleaned.csv
Expected Output:
Before Cleaning:
Original rows: 15,000
https://eitaa.com/learnpythonicy