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

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

لینک چنل ایتا:
https://eitaa.com/learnpythonicy
Download Telegram
🔥 چالش ۳۰ روزه Python for AI

#Day9

📁 File Handling

تمرین امروز داخل تصویر کامل توضیح داده شده 👌
فقط کافیه فایل رو بخونی و با چند خط کد داده‌ها رو تحلیل کنی 😎

👀 اگر هینت نیاز داری داخل کپشن و ببین

راه ارتباطی
(کامنت،گروه، بات)
@learnpythonicychat
@learnpythonicyBot
آموزش پایتون
🔥 چالش ۳۰ روزه Python for AI #Day9 📁 File Handling تمرین امروز داخل تصویر کامل توضیح داده شده 👌 فقط کافیه فایل رو بخونی و با چند خط کد داده‌ها رو تحلیل کنی 😎 👀 اگر هینت نیاز داری داخل کپشن و ببین راه ارتباطی (کامنت،گروه، بات) @learnpythonicychat @…
# Create and write file
with open("students.txt", "w") as file:
file.write("Ali,17.8\n")
file.write("Sara,18.5\n")
file.write("Reza,15.2\n")
file.write("Nima,18.1\n")
file.write("Parsa,16.4\n")

# Read file
students = []

with open("students.txt", "r") as file:
for line in file:
name, gpa = line.strip().split(",")
students.append((name, float(gpa)))

# Total students
total_students = len(students)

# Calculate average GPA
total_gpa = 0
top_student = ""
top_gpa = -1

for name, gpa in students:
total_gpa += gpa

if gpa > top_gpa:
top_gpa = gpa
top_student = name

average_gpa = total_gpa / total_students

# Bonus: students above 18
above_18 = []

for name, gpa in students:
if gpa > 18:
above_18.append((name, gpa))

# Output
print("Total Students:", total_students)
print("Average GPA:", round(average_gpa, 1))

print("\nTop Student:")
print(f"{top_student} ({top_gpa})")

print("\nStudents with GPA > 18:")
for name, gpa in above_18:
print(f"{name} ({gpa})")
🔥 #Day10 of Python for AI Challenge

Working with CSV files is your first step into real-world data handling 📊

Today you’ll learn how to read, analyze, and extract insights from structured datasets using Python.

Small step, big move toward Data Science
1
🔥 چالش ۳۰ روزه Python for AI

#Day11

🎯 موضوع:
Error Handling (try / except)

سطح:
متوسط

زمان تخمینی:
20 تا 35 دقیقه

📝 صورت مسئله:

دیتاست زیر را در برنامه قرار دهید:

students = {
"Ali": 17.8,
"Sara": 18.5,
"Reza": 15.2,
"Nima": 18.1,
"Parsa": 16.4
}

برنامه باید:

نام دانشجو را از کاربر دریافت کند.

GPA او را نمایش دهد.

اما اگر دانشجو در دیتاست وجود نداشت:

Student not found!

را نمایش دهد و برنامه متوقف نشود.

📌 نمونه خروجی:

Enter student name: Ali

GPA: 17.8

یا

Enter student name: John

Student not found!

🎯 Bonus Challenge

اگر کاربر ورودی خالی وارد کرد:

Please enter a valid name.

نمایش داده شود.

📋 هدف:

یادگیری مدیریت خطاها؛ مهارتی که در تمام پروژه‌های واقعی Python، Data Science و AI ضروری است.

مهلت:
فردا ساعت 20:00

راه ارتباطی (کامنت،گروه، بات)
@learnpythonicychat
@learnpythonicyBot
🔥 چالش ۳۰ روزه Python for AI

#Day12

🎯 موضوع:
Object-Oriented Programming (OOP)

سطح:
متوسط

زمان تخمینی:
25 تا 40 دقیقه

📝 صورت مسئله:

تا اینجا اطلاعات دانشجویان را با Dictionary ذخیره می‌کردیم.

امروز می‌خواهیم از OOP استفاده کنیم.

یک کلاس به نام:

Student

ایجاد کنید.

این کلاس باید شامل موارد زیر باشد:

name

gpa

credits

و یک متد به نام:

show_info()

که اطلاعات دانشجو را نمایش دهد.

📌 نمونه خروجی:

Name: Ali
GPA: 17.8
Credits: 70

🎯 Bonus Challenge

متدی به نام:

get_status()

بنویسید که وضعیت دانشجو را برگرداند:

Graduated
In Progress

📋 هدف امروز:

آشنایی با OOP و ساخت مدل داده‌ای برای دانشجویان.

مهلت ارسال پاسخ:
فردا ساعت 20:00

راه ارتباطی (کامنت،گروه، بات)
@learnpythonicychat
@learnpythonicyBot
پاسخ روز دوازدهم
🔥 چالش ۳۰ روزه Python for AI

#Day13

🎯 موضوع:
Searching & Filtering Data

سطح:
متوسط

زمان تخمینی:
25 تا 40 دقیقه

📝 صورت مسئله:

دیتاست زیر را در برنامه قرار دهید:

students = [
{"name": "Ali", "gpa": 17.8},
{"name": "Sara", "gpa": 18.5},
{"name": "Reza", "gpa": 15.2},
{"name": "Nima", "gpa": 18.1},
{"name": "Parsa", "gpa": 16.4},
{"name": "Arman", "gpa": 17.1},
{"name": "Mina", "gpa": 19.0}
]

برنامه باید:

تمام دانشجویان دارای GPA بالاتر از 18 را نمایش دهد.

تمام دانشجویان دارای GPA کمتر از 16 را نمایش دهد.

تعداد دانشجویان هر گروه را محاسبه کند.

📌 نمونه خروجی:

Students With GPA >= 18:
Sara
Nima
Mina

Count: 3

🎯 Bonus Challenge

دانشجویی را پیدا کنید که GPA او به 18 نزدیک‌تر است.

📋 هدف امروز:

تمرین فیلتر کردن داده‌ها؛ یکی از مهم‌ترین مهارت‌ها در Data Analysis.

مهلت ارسال پاسخ:
فردا ساعت 20:00
پاسخ روز سیزدهم
🔥 چالش ۳۰ روزه Python for AI

#Day14

🎯 موضوع:
Mini Project — Student Data Analysis System

سطح:
متوسط

زمان تخمینی:
40 تا 60 دقیقه

📝 صورت مسئله:

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

فایل زیر را با نام:

students.csv

ایجاد کنید:

name,gpa,credits
Ali,17.8,70
Sara,18.5,95
Reza,15.2,40
Nima,18.1,120
Parsa,16.4,55
Arman,17.1,80
Mina,19.0,140
Ava,16.8,35
Yasmin,18.7,110
Amir,15.9,65

یک کلاس به نام:

Student

ایجاد کنید که شامل ویژگی‌های زیر باشد:

"name"

"gpa"

"credits"

و متدهای زیر را داشته باشد:

"show_info()"

برای نمایش اطلاعات دانشجو

"get_status()"

اگر تعداد واحدهای دانشجو حداقل 120 بود:

Graduated

و در غیر این صورت:

In Progress

برنامه باید:

فایل CSV را بخواند.

اطلاعات هر دانشجو را به یک شیء از کلاس "Student" تبدیل کند.

تعداد کل دانشجویان را محاسبه کند.

میانگین GPA را محاسبه کند.

دانشجوی دارای بالاترین GPA را پیدا کند.

دانشجویان دارای GPA برابر یا بیشتر از 18 را نمایش دهد.

دانشجویان دارای GPA کمتر از 16 را نمایش دهد.

نام یک دانشجو را از کاربر دریافت و اطلاعات او را جست‌وجو کند.

اگر دانشجو پیدا نشد، پیام زیر را نمایش دهد:

Student not found!

با استفاده از "try / except" خطاهای احتمالی خواندن فایل را مدیریت کند.

📌 نمونه خروجی:

===== Student Analysis System =====

Total Students: 10
Average GPA: 17.35
Top Student: Mina (19.0)

Students With GPA >= 18:
Sara
Nima
Mina
Yasmin

Count: 4

Students With GPA < 16:
Reza
Amir

Count: 2

Enter student name: Nima

Name: Nima
GPA: 18.1
Credits: 120
Status: Graduated

🎯 Bonus Challenge

یک منوی ساده طراحی کنید:

1. Show Summary
2. Search Student
3. Show Top Students
4. Show Graduated Students
5. Exit

برنامه باید تا زمانی که کاربر گزینه "5" را انتخاب نکرده است، متوقف نشود.

📋 هدف امروز:

ترکیب مهارت‌های روزهای قبل و ساخت اولین سیستم کوچک تحلیل داده با Python.

شما تا اینجا یاد گرفته‌اید:

داده‌ها را از فایل بخوانید.

داده‌ها را مدل‌سازی کنید.

خطاها را مدیریت کنید.

داده‌ها را جست‌وجو و فیلتر کنید.

اطلاعات آماری استخراج کنید.

از روز بعد وارد NumPy می‌شویم تا همین محاسبات را سریع‌تر، کوتاه‌تر و حرفه‌ای‌تر انجام دهیم.

مهلت ارسال پاسخ:
فردا ساعت 20:00
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

#Day15

🎯 موضوع:
Introduction to NumPy

سطح:
متوسط

زمان تخمینی:
20 تا 40 دقیقه

📝 صورت مسئله:

کتابخانه NumPy را نصب و import کنید.

آرایه زیر را در برنامه قرار دهید:

scores = [18, 15, 20, 17, 19, 14, 16, 18, 20, 17]

آن را به NumPy Array تبدیل کنید.

برنامه باید:

میانگین نمرات را محاسبه کند.

بیشترین نمره را پیدا کند.

کمترین نمره را پیدا کند.

مجموع نمرات را محاسبه کند.

📌 نمونه خروجی:

Average: 17.4
Maximum: 20
Minimum: 14
Sum: 174

🎯 Bonus Challenge

انحراف معیار (Standard Deviation) نمرات را محاسبه کنید.

📋 هدف امروز:

آشنایی با NumPy و انجام محاسبات عددی سریع‌تر از Python معمولی.

مهلت ارسال پاسخ:
فردا ساعت 20:00
پاسخ روز 15ام
🔥 چالش ۳۰ روزه 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
پاسخ روز 16ام
🔥 چالش ۳۰ روزه 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.
پاسخ روز 17ام
This media is not supported in your browser
VIEW IN TELEGRAM
شهاب‌سنگ‌ها رو بترکون🤫

با پایتون بازی بساز، شلیک کن و رکورد بزن! 🎮☄️


#game #pygame
👨‍💻1