✔️ ۷ ترفند کاربردی برای کار با دیکشنریها در پایتون!
اگر با دادههای کلیدی–مقداری کار میکنید، این تکنیکها سرعت و کیفیت کدنویسی شما را بالا میبرند:
---
1️⃣ ایجاد دیکشنری
python
user = {'name': 'Sara', 'age': 23, 'city': 'Tehran'}
print(user)
---
2️⃣ افزودن/ویرایش مقدار
python
user['age'] = 24
user['job'] = 'Developer'
print(user)
---
3️⃣ دریافت مقدار با get (بدون خطا)
python
print(user.get('city'))
print(user.get('phone', 'Not Found'))
---
4️⃣ حذف مقدار با pop
python
user.pop('city')
print(user)
---
5️⃣ مرور کلیدها، مقادیر و جفتها
python
for key, value in user.items():
print(key, value)
---
6️⃣ ادغام دو دیکشنری
python
a = {'x': 1, 'y': 2}
b = {'y': 20, 'z': 3}
merged = a | b
print(merged)
---
7️⃣ ساخت دیکشنری با Dictionary Comprehension
python
squares = {x: x*x for x in range(5)}
print(squares)
---
🗝 ترفند ویژه: مرتبسازی دیکشنری بر اساس مقدار
python
data = {'a': 3, 'b': 1, 'c': 2}
sorted_data = dict(sorted(data.items(), key=lambda item: item[1]))
print(sorted_data)
نکات طلایی:
* برای جلوگیری از خطا، همیشه از
getدر دسترسیهای حساس استفاده کنید * از عملگر
|برای ادغام دیکشنریها بهره ببرید (پایتون 3.9+) * Dictionary comprehension بهترین روش برای تولید سریع ساختار دادههای پیچیده است #PythonTips | #Dictionary | #Python3 | @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
🎯 بسته به میزان مشارکت، فعالیت و همراهی اعضا، سطح پروژهها میتواند ارتقا پیدا کند و پروژههای پیشرفتهتر و نزدیکتر به پروژههای واقعی AI به چالش اضافه شوند.
🎯 خروجی نهایی:
• تسلط بیشتر بر Python
• آشنایی عملی با Data Science
• ورود به Machine Learning
• چند پروژه قابل انتشار در GitHub
⏰ هر روز ساعت ۲۰ چالش جدید منتشر میشود.
شما تا ساعت ۱۹:۵۹ روز بعد فرصت دارید پاسخ خود را ارسال کنید.
💡 در صورت نیاز Hint ارائه خواهد شد.
💡 پاسخ کامل روز بعد همراه با چالش جدید منتشر میشود.
🔥 غیبت = از دست دادن زنجیره یادگیری
📢 دوستان عزیز
مطالب و پستها در کانال تلگرام منظمتر دنبال میشوند:
✅ دسترسی به کامنتها و بحث روی تمرینها
✅ ارسال راحتتر تکالیف
✅ استفاده از بات برای مدیریت چالشها
✅ دسترسی بهتر به فایلها و سورسکدها
✅ آرشیو مرتبتر مطالب آموزشی
اگر قصد دارید چالشها را جدی دنبال کنید، حتماً در کانال تلگرام هم عضو شوید تا چیزی را از دست ندهید. 🚀🔥
(البته اگر اینترنت یاری بده😁)
🔗 لینک کانال تلگرام:
@learnpythonicy
https://t.me/learnpythonicy
📢 روز یکم از چالش ۳۰ روزه Python for AI
#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 مجاز است، نه دریافت کد کامل
💡 اگر مبتدی هستی
نگران نباش. هدف این چالش یادگیری و پیشرفت روزانه است، نه کامل بودن.
❓ اگر به راهنمایی نیاز داشتی:
https://eitaa.com/joinchat/956171922Cb501d5a32f
⏰ مهلت ارسال پاسخ
فردا ساعت 20:00
فردا علاوه بر انتشار پاسخ رسمی، چالش Day 2 را هم میزارم.
🧡🔥 تغییرات بزرگ یک شبه اتفاق نمیافتند.✅ پاسخ چالش Day 1
یکی از راهحلهای ممکن:
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️⃣ علاوه بر نمایش اطلاعات، وضعیت تحصیلی او را نیز تعیین کند.
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 را انجام دهید.
❓ اگر به راهنمایی نیاز داشتید:
https://eitaa.com/joinchat/956171922Cb501d5a32f
⏰ مهلت ارسال پاسخ:
فردا ساعت 20:00
🔺 امروز داریم اولین قدمهای واقعی در دستهبندی دادهها (Classification Logic) را تمرین میکنیم؛ مفهومی که بعدها در Machine Learning بسیار مهم خواهد بود.
آموزش پایتون
🔥 چالش ۳۰ روزه Python for AI #Day2 🎯 موضوع: Conditional Statements (if / elif / else) ⭐ سطح: مبتد
✅ پاسخ چالش 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: ").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 دقیقه
📝 صورت مسئله:
در سیستمهای تحلیلی معمولاً لازم است همه دادهها را بررسی کنیم.
دیتاست زیر را در برنامه قرار دهید:
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
✅ پاسخ چالش 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}
}
total_students = len(students)
total_gpa = 0
top_student = ""
top_gpa = 0
lowest_student = ""
lowest_gpa = 20
scholarship_count = 0
for name, info in students.items():
gpa = info["gpa"]
total_gpa += gpa
if gpa > top_gpa:
top_gpa = gpa
top_student = name
if gpa < lowest_gpa:
lowest_gpa = gpa
lowest_student = name
if gpa >= 18:
scholarship_count += 1
average_gpa = total_gpa / total_students
print("Total Students:", total_students)
print("Average GPA:", round(average_gpa, 2))
print("\nTop Student:")
print(f"{top_student} ({top_gpa})")
print("\nLowest GPA:")
print(f"{lowest_student} ({lowest_gpa})")
print("\nStudents with GPA >= 18:")
print(scholarship_count)
🔥 چالش ۳۰ روزه Python for AI
#Day4
🎯 موضوع:
Functions
⭐️ سطح:
متوسط
⏳ زمان تخمینی:
20 تا 35 دقیقه
📝 صورت مسئله:
در پروژههای واقعی، کدهای تکراری باید داخل Function قرار بگیرند.
دیتاست روزهای قبل را استفاده کنید.
سه تابع بنویسید:
Function 1
get_average_gpa()
میانگین GPA را برگرداند.
Function 2
get_top_student()
نام و GPA بهترین دانشجو را برگرداند.
Function 3
get_scholarship_students()
تمام دانشجویانی که:
GPA >= 18
دارند را نمایش دهد.
📌 نمونه خروجی:
Average GPA: 17.54
Top Student:
Mina (19.0)
Scholarship Students:
Sara
Nima
Mina
Yasmin
🎯 Bonus Challenge
یک تابع بنویسید:
find_student(name)
که نام دانشجو را دریافت کرده و اطلاعات او را نمایش دهد.
📋 هدف امروز:
یادگیری ساخت کدهای تمیزتر و قابل استفاده مجدد.
⏰ مهلت ارسال پاسخ:
فردا ساعت 20:00