🔹 یادگیری برنامهنویسی یعنی تمرین، تجربه و چالش 🔹
ما در این کلاس تنها به آموزش تئوری اکتفا نمیکنیم. راه ماندگار شدن مطالب، حل تمرین، مواجه شدن با چالشها و یافتن راهحلهای خلاقانه است. هر جا در مسیر کدنویسی با سوال یا مشکلی روبهرو شدید، کافیست مطرح کنید؛ تیم پشتیبان پایتون و هوش مصنوعی در کوتاهترین زمان همراه شما خواهد بود.
هدف ما این است که با تمرینهای هدفمند، پروژههای کوچک و سوالات چالشی، قدمبهقدم شما را به یک برنامهنویس توانمند تبدیل کنیم.
یادگیری واقعی زمانی شکل میگیرد که «خودتان کدنویسی کنید، اشتباه کنید، رفع اشکال کنید و تجربه بیاموزید».
پس آماده باشید برای یک مسیر پر از تمرین، خلاقیت و یادگیری عمیق 🚀
ما در این کلاس تنها به آموزش تئوری اکتفا نمیکنیم. راه ماندگار شدن مطالب، حل تمرین، مواجه شدن با چالشها و یافتن راهحلهای خلاقانه است. هر جا در مسیر کدنویسی با سوال یا مشکلی روبهرو شدید، کافیست مطرح کنید؛ تیم پشتیبان پایتون و هوش مصنوعی در کوتاهترین زمان همراه شما خواهد بود.
هدف ما این است که با تمرینهای هدفمند، پروژههای کوچک و سوالات چالشی، قدمبهقدم شما را به یک برنامهنویس توانمند تبدیل کنیم.
یادگیری واقعی زمانی شکل میگیرد که «خودتان کدنویسی کنید، اشتباه کنید، رفع اشکال کنید و تجربه بیاموزید».
پس آماده باشید برای یک مسیر پر از تمرین، خلاقیت و یادگیری عمیق 🚀
سلام بچهها 🌹
نمونهسوالات خیلی خوبی برامون ارسال شده.
ما ۲۰ سؤال مطابق دروس تدریسشده آماده کردیم که میتونید از هر سطح ساده، متوسط و سخت انتخاب کنید و حل کنید:
🔗 لینک سوالات
https://eitaa.com/85334588/1160
لطفاً وقتی میخواید روی یک سؤال کار کنید:
1. شماره سؤال رو بنویسید.
2. کد تایپی جواب رو داخل گروه بذارید.
3. ۲ تا ۳ عکس یا یک فیلم کوتاه از اجرای کد و خروجی هم بذارید تا مطمئن بشیم درست اجرا شده.
📌 مثال:
سؤال: پیدا کردن بزرگترین عدد
✅ کد تایپی + عکس/فیلم اجرای خروجی
این کار باعث میشه:
بقیه دوستان همون سؤال رو تکراری نفرستن.
همه روشهای مختلف حل رو ببینیم و یاد بگیریم.
مطمئن بشیم کد اجرا میشه و جواب درست داده.
🙏 همچنین از همه دوستانی که تا الان تمرینها رو ارسال کردند تشکر میکنیم.
۱. آقای محمدصالح قادریان
۲.آقای جعفرزاده
توجه و تلاش شما نشون میده آموزشها رو جدی دنبال میکنید.
✔️ یادتون باشه حل همین سوالات بیشترین تأثیر رو در تثبیت و درک عمیق مفاهیم داره.
👏 خسته نباشید به همه شما و همینطور پرقدرت ادامه بدید 🚀
نمونهسوالات خیلی خوبی برامون ارسال شده.
ما ۲۰ سؤال مطابق دروس تدریسشده آماده کردیم که میتونید از هر سطح ساده، متوسط و سخت انتخاب کنید و حل کنید:
🔗 لینک سوالات
https://eitaa.com/85334588/1160
لطفاً وقتی میخواید روی یک سؤال کار کنید:
1. شماره سؤال رو بنویسید.
2. کد تایپی جواب رو داخل گروه بذارید.
3. ۲ تا ۳ عکس یا یک فیلم کوتاه از اجرای کد و خروجی هم بذارید تا مطمئن بشیم درست اجرا شده.
📌 مثال:
سؤال: پیدا کردن بزرگترین عدد
✅ کد تایپی + عکس/فیلم اجرای خروجی
این کار باعث میشه:
بقیه دوستان همون سؤال رو تکراری نفرستن.
همه روشهای مختلف حل رو ببینیم و یاد بگیریم.
مطمئن بشیم کد اجرا میشه و جواب درست داده.
🙏 همچنین از همه دوستانی که تا الان تمرینها رو ارسال کردند تشکر میکنیم.
۱. آقای محمدصالح قادریان
۲.آقای جعفرزاده
توجه و تلاش شما نشون میده آموزشها رو جدی دنبال میکنید.
✔️ یادتون باشه حل همین سوالات بیشترین تأثیر رو در تثبیت و درک عمیق مفاهیم داره.
👏 خسته نباشید به همه شما و همینطور پرقدرت ادامه بدید 🚀
Eitaa
ایتا - Contact @85334588
پیام رسان ایرانی ایتا Eitaa
پیام تبریک 🌸🏆🥇
قهرمانی پرافتخار تیم ملی المپیاد نجوم و اخترفیزیک جمهوری اسلامی ایران در المپیاد جهانی و کسب عنوان طلاییترین تیم جهان برای دومین سال متوالی ✨، افتخاری بزرگ برای کشور عزیزمان ایران است.
این موفقیت درخشان را به اعضای شایسته تیم ملی 🌹:
🥇 علی نادری
🥇 حسین معصومی
🥇 هیربد فودازی
🥇 ارشیا میرشمسی کاخکی
🥇 حسین سلطانی
و همچنین خانوادههای گرامی ایشان، مربیان دلسوز و جامعه علمی کشور تبریک عرض میکنیم. 🌸✨
امید است درخشش شما الهامبخش نسلهای آینده در مسیر علم، دانش و سربلندی ایران اسلامی باشد. 🏆🇮🇷
قهرمانی پرافتخار تیم ملی المپیاد نجوم و اخترفیزیک جمهوری اسلامی ایران در المپیاد جهانی و کسب عنوان طلاییترین تیم جهان برای دومین سال متوالی ✨، افتخاری بزرگ برای کشور عزیزمان ایران است.
این موفقیت درخشان را به اعضای شایسته تیم ملی 🌹:
🥇 علی نادری
🥇 حسین معصومی
🥇 هیربد فودازی
🥇 ارشیا میرشمسی کاخکی
🥇 حسین سلطانی
و همچنین خانوادههای گرامی ایشان، مربیان دلسوز و جامعه علمی کشور تبریک عرض میکنیم. 🌸✨
امید است درخشش شما الهامبخش نسلهای آینده در مسیر علم، دانش و سربلندی ایران اسلامی باشد. 🏆🇮🇷
📝 گزارش جلسه هفتم
🔹 بخش اول: مرور و تمرین
مروری بر مباحث جلسات گذشته
پاسخگویی و حل پرسشهای مرتبط
---
🔹 بخش دوم: کار با لیستها (Lists)
آشنایی با متدهای پرکاربرد لیست:
append() : افزودن عنصر جدید
remove() : حذف عنصر
sort() : مرتبسازی
index() : یافتن اندیس یک مقدار
کاربرد لیست برای ذخیره دادههای متوالی
---
🔹 بخش سوم: کار با مجموعهها (Sets)
تعریف و ویژگیها:
عناصر بدون ترتیب
جلوگیری از تکرار عناصر
متدها و عملیات مهم:
اجتماع (union)
اشتراک (intersection)
تفاضل (difference)
---
🔹 بخش چهارم: عملگرها (Operators)
1. ریاضی (Arithmetic):
+, -, *, /, //, %, **
2. مقایسهای (Comparison):
==, !=, <, >, <=, >=
3. منطقی (Logical):
and, or, not
4. عضویت (Membership):
in, not in
5. عملگرهای اختصاصی (Identity Operators):
is, is not
---
✨ جمعبندی
جلسه هفتم بیشتر بر مرور، حل تمرین و کار با ساختارهای دادهای (لیست و مجموعه) و همچنین آشنایی با انواع عملگرها متمرکز بود. این مباحث پایهای ستون اصلی کدنویسی در پایتون هستند و در جلسات آینده کاربرد بیشتری پیدا خواهند کرد.
🔹 بخش اول: مرور و تمرین
مروری بر مباحث جلسات گذشته
پاسخگویی و حل پرسشهای مرتبط
---
🔹 بخش دوم: کار با لیستها (Lists)
آشنایی با متدهای پرکاربرد لیست:
append() : افزودن عنصر جدید
remove() : حذف عنصر
sort() : مرتبسازی
index() : یافتن اندیس یک مقدار
کاربرد لیست برای ذخیره دادههای متوالی
---
🔹 بخش سوم: کار با مجموعهها (Sets)
تعریف و ویژگیها:
عناصر بدون ترتیب
جلوگیری از تکرار عناصر
متدها و عملیات مهم:
اجتماع (union)
اشتراک (intersection)
تفاضل (difference)
---
🔹 بخش چهارم: عملگرها (Operators)
1. ریاضی (Arithmetic):
+, -, *, /, //, %, **
2. مقایسهای (Comparison):
==, !=, <, >, <=, >=
3. منطقی (Logical):
and, or, not
4. عضویت (Membership):
in, not in
5. عملگرهای اختصاصی (Identity Operators):
is, is not
---
✨ جمعبندی
جلسه هفتم بیشتر بر مرور، حل تمرین و کار با ساختارهای دادهای (لیست و مجموعه) و همچنین آشنایی با انواع عملگرها متمرکز بود. این مباحث پایهای ستون اصلی کدنویسی در پایتون هستند و در جلسات آینده کاربرد بیشتری پیدا خواهند کرد.
🌟🌱 جوانان پرانرژی و علاقهمند؛ فعال در راه برنامهنویسی و آیندهسازی 🌱🌟
واقعاً بچههای خیلی فعال و علاقهمندی داریم؛ پر از استعداد، انرژی و انگیزه 🌸. برای من بسیار ارزشمند است وقتی میبینم آنها با تلاش، پشتکار و خلاقیت در مسیر ساختن چیزی جدید قدم برمیدارند 💡✨.
این روحیهی مبتکر بودن و علاقهی واقعی به برنامهنویسی، دستاورد بزرگی در همین چند جلسه بوده است 🚀. خوشحالم که میبینم بچهها با جدیت تمرین میکنند، استمرار دارند و روزبهروز علاقه بیشتری به برنامهنویسی پیدا کردهاند 🖥️💻.
بزرگترین افتخار من این است که شاهد رشد و بالندگی آنها هستم؛ میبینم که اعتمادبهنفس پیدا میکنند، در عمل توانمند میشوند و برای آیندهای روشن تلاش میکنند . این تلاشها نهتنها باعث افتخار خانوادهها و معلمانشان است، بلکه در آینده میتواند مایهی سربلندی کشور عزیزمان جمهوری اسلامی ایران باشد.
این دانشآموزان واقعاً پویــا، فعال و پرانرژی هستند ؛ دارند آینده را میسازند و من هم با علاقه و افتخار همراهشان هستم و همراهی با این دانشآموزان و دیدن تلاش و پیشرفت آنها برای من یکی از تجربههای ارزشمند و خاطرهانگیز زندگی است.» ✨🌼.
واقعاً بچههای خیلی فعال و علاقهمندی داریم؛ پر از استعداد، انرژی و انگیزه 🌸. برای من بسیار ارزشمند است وقتی میبینم آنها با تلاش، پشتکار و خلاقیت در مسیر ساختن چیزی جدید قدم برمیدارند 💡✨.
این روحیهی مبتکر بودن و علاقهی واقعی به برنامهنویسی، دستاورد بزرگی در همین چند جلسه بوده است 🚀. خوشحالم که میبینم بچهها با جدیت تمرین میکنند، استمرار دارند و روزبهروز علاقه بیشتری به برنامهنویسی پیدا کردهاند 🖥️💻.
بزرگترین افتخار من این است که شاهد رشد و بالندگی آنها هستم؛ میبینم که اعتمادبهنفس پیدا میکنند، در عمل توانمند میشوند و برای آیندهای روشن تلاش میکنند . این تلاشها نهتنها باعث افتخار خانوادهها و معلمانشان است، بلکه در آینده میتواند مایهی سربلندی کشور عزیزمان جمهوری اسلامی ایران باشد.
این دانشآموزان واقعاً پویــا، فعال و پرانرژی هستند ؛ دارند آینده را میسازند و من هم با علاقه و افتخار همراهشان هستم و همراهی با این دانشآموزان و دیدن تلاش و پیشرفت آنها برای من یکی از تجربههای ارزشمند و خاطرهانگیز زندگی است.» ✨🌼.
Media is too big
VIEW IN TELEGRAM
📢 اطلاعیه برگزاری دوره جدید پایتون
با توجه به استقبال همشهریان عزیز از دورهی قبلی، انشاءالله از هفته آینده دورهی جدید برنامهنویسی پایتون برگزار خواهد شد.
🔹 مناسب برای علاقهمندان به برنامهنویسی
🔹 بدون نیاز به پیشزمینه خاص
🔹 همراه با تمرین و پروژههای کاربردی
✅ دوستانی که تمایل به شرکت دارند، لطفاً هرچه سریعتر اطلاع دهند.
با توجه به استقبال همشهریان عزیز از دورهی قبلی، انشاءالله از هفته آینده دورهی جدید برنامهنویسی پایتون برگزار خواهد شد.
🔹 مناسب برای علاقهمندان به برنامهنویسی
🔹 بدون نیاز به پیشزمینه خاص
🔹 همراه با تمرین و پروژههای کاربردی
✅ دوستانی که تمایل به شرکت دارند، لطفاً هرچه سریعتر اطلاع دهند.
آموزش برنامهنویسی پایتون و هوش مصنوعی
Video
🔹 سوال 1 : بزرگترین عدد فرد در لیست
numbers = [10, 23, 4, 5, 6, 78, 65, 45, 78, 5685, 90, 765, 77776, 432, 56, 102]
max_odd = None
for num in numbers:
if num % 2 != 0:
if max_odd is None or num > max_odd:
max_odd = num
print("بزرگترین عدد فرد:", max_odd)
چطور کار میکند؟
1. اول max_odd برابر None قرار داده میشود (یعنی هنوز چیزی نداریم).
2. در حلقه، هر عدد چک میشود:
اگر فرد بود (num % 2 != 0)،
مقایسه میشود: اگر max_odd خالی بود یا عدد جدید بزرگتر بود، جایگزین میشود.
3. در آخر بیشترین عدد فرد ذخیره شده.
✔️ خروجی: 5685
---
🔹 سوال 2 : شمارش حروف بزرگ و کوچک
text = 'Hello world PYTHON!'
upper_count = sum(1 for c in text if c.isupper())
lower_count = sum(1 for c in text if c.islower())
print("تعداد حروف بزرگ:", upper_count)
print("تعداد حروف کوچک:", lower_count)
چطور کار میکند؟
c.isupper() → بررسی میکند آیا کاراکتر بزرگ است.
c.islower() → بررسی میکند آیا کاراکتر کوچک است.
برای هر بار درست بودن، یک عدد 1 شمرده میشود و در نهایت مجموع گرفته میشود.
✔️ خروجی:
تعداد حروف بزرگ: 7
تعداد حروف کوچک: 8
---
🔹 سوال 3 : معدل دانشآموزان
students_scores = {
"ali": [18, 20, 19, 16, 15, 20],
"sara": [19, 20, 18, 20, 17],
"omid": [16, 20, 18, 17]
}
averages = {name: sum(scores)/len(scores) for name, scores in students_scores.items()}
print("معدل دانشآموزان:", averages)
چطور کار میکند؟
برای هر دانشآموز، نمراتش در یک لیست ذخیره شده.
sum(scores) مجموع نمرهها را حساب میکند.
len(scores) تعداد نمرهها را میدهد.
تقسیم این دو، معدل میشود.
✔️ خروجی:
ali: 18.0
sara: 18.8
omid: 17.75
---
🔹 سوال 4 : فاکتوریل بازگشتی
def factorial(n):
if n <= 1:
return 1
return n * factorial(n - 1)
print("فاکتوریل 5:", factorial(5))
چطور کار میکند؟
فاکتوریل یعنی:
در بازگشتی:
اگر n=1 یا n=0 باشد → جواب 1 است (شرط پایان).
در غیر این صورت n ضربدر فاکتوریل (n-1) میشود.
برای n=5:
factorial(5) → 5 × factorial(4)
factorial(4) → 4 × factorial(3)
factorial(3) → 3 × factorial(2)
factorial(2) → 2 × factorial(1)
factorial(1) → 1
در نهایت: 5×4×3×2×1 = 120
✔️ خروجی: 120
---
🔹 سوال 5 : بررسی عدد اول
def is_prime(num):
if num < 2:
return False
for i in range(2, int(num**0.5)+1):
if num % i == 0:
return False
return True
print("آیا 29 عدد اول است؟", is_prime(29))
چطور کار میکند؟
عدد اول باید فقط بر 1 و خودش بخشپذیر باشد.
کافی است تا ریشه دوم عدد را چک کنیم (برای سرعت).
اگر هیچ مقسومی پیدا نشد → عدد اول است.
✔️ خروجی: True
---
🔹 سوال 6 : حذف حروف تکراری
text = "programming"
unique_chars = "".join(dict.fromkeys(text))
print("حروف بدون تکرار:", unique_chars)
چطور کار میکند؟
dict.fromkeys(text) همه کاراکترها را کلید دیکشنری میکند → تکراریها حذف میشوند.
چون دیکشنری ترتیب را حفظ میکند، فقط اولین بار هر کاراکتر نگه داشته میشود.
در آخر دوباره با "".join() رشته ساخته میشود.
✔️ خروجی: progamin
---
🔹 سوال 7 : مجموع اعداد زوج
n = 8
sum_even = sum(i for i in range(2, n+1) if i % 2 == 0)
print("مجموع اعداد زوج تا", n, "=", sum_even)
چطور کار میکند؟
range(2, n+1) همه اعداد از 2 تا n را میسازد.
شرط if i % 2 == 0 فقط زوجها را نگه میدارد.
sum(...) مجموع آنها را میگیرد.
✔️ خروجی:
مجموع اعداد زوج تا 8 = 20
numbers = [10, 23, 4, 5, 6, 78, 65, 45, 78, 5685, 90, 765, 77776, 432, 56, 102]
max_odd = None
for num in numbers:
if num % 2 != 0:
if max_odd is None or num > max_odd:
max_odd = num
print("بزرگترین عدد فرد:", max_odd)
چطور کار میکند؟
1. اول max_odd برابر None قرار داده میشود (یعنی هنوز چیزی نداریم).
2. در حلقه، هر عدد چک میشود:
اگر فرد بود (num % 2 != 0)،
مقایسه میشود: اگر max_odd خالی بود یا عدد جدید بزرگتر بود، جایگزین میشود.
3. در آخر بیشترین عدد فرد ذخیره شده.
✔️ خروجی: 5685
---
🔹 سوال 2 : شمارش حروف بزرگ و کوچک
text = 'Hello world PYTHON!'
upper_count = sum(1 for c in text if c.isupper())
lower_count = sum(1 for c in text if c.islower())
print("تعداد حروف بزرگ:", upper_count)
print("تعداد حروف کوچک:", lower_count)
چطور کار میکند؟
c.isupper() → بررسی میکند آیا کاراکتر بزرگ است.
c.islower() → بررسی میکند آیا کاراکتر کوچک است.
برای هر بار درست بودن، یک عدد 1 شمرده میشود و در نهایت مجموع گرفته میشود.
✔️ خروجی:
تعداد حروف بزرگ: 7
تعداد حروف کوچک: 8
---
🔹 سوال 3 : معدل دانشآموزان
students_scores = {
"ali": [18, 20, 19, 16, 15, 20],
"sara": [19, 20, 18, 20, 17],
"omid": [16, 20, 18, 17]
}
averages = {name: sum(scores)/len(scores) for name, scores in students_scores.items()}
print("معدل دانشآموزان:", averages)
چطور کار میکند؟
برای هر دانشآموز، نمراتش در یک لیست ذخیره شده.
sum(scores) مجموع نمرهها را حساب میکند.
len(scores) تعداد نمرهها را میدهد.
تقسیم این دو، معدل میشود.
✔️ خروجی:
ali: 18.0
sara: 18.8
omid: 17.75
---
🔹 سوال 4 : فاکتوریل بازگشتی
def factorial(n):
if n <= 1:
return 1
return n * factorial(n - 1)
print("فاکتوریل 5:", factorial(5))
چطور کار میکند؟
فاکتوریل یعنی:
در بازگشتی:
اگر n=1 یا n=0 باشد → جواب 1 است (شرط پایان).
در غیر این صورت n ضربدر فاکتوریل (n-1) میشود.
برای n=5:
factorial(5) → 5 × factorial(4)
factorial(4) → 4 × factorial(3)
factorial(3) → 3 × factorial(2)
factorial(2) → 2 × factorial(1)
factorial(1) → 1
در نهایت: 5×4×3×2×1 = 120
✔️ خروجی: 120
---
🔹 سوال 5 : بررسی عدد اول
def is_prime(num):
if num < 2:
return False
for i in range(2, int(num**0.5)+1):
if num % i == 0:
return False
return True
print("آیا 29 عدد اول است؟", is_prime(29))
چطور کار میکند؟
عدد اول باید فقط بر 1 و خودش بخشپذیر باشد.
کافی است تا ریشه دوم عدد را چک کنیم (برای سرعت).
اگر هیچ مقسومی پیدا نشد → عدد اول است.
✔️ خروجی: True
---
🔹 سوال 6 : حذف حروف تکراری
text = "programming"
unique_chars = "".join(dict.fromkeys(text))
print("حروف بدون تکرار:", unique_chars)
چطور کار میکند؟
dict.fromkeys(text) همه کاراکترها را کلید دیکشنری میکند → تکراریها حذف میشوند.
چون دیکشنری ترتیب را حفظ میکند، فقط اولین بار هر کاراکتر نگه داشته میشود.
در آخر دوباره با "".join() رشته ساخته میشود.
✔️ خروجی: progamin
---
🔹 سوال 7 : مجموع اعداد زوج
n = 8
sum_even = sum(i for i in range(2, n+1) if i % 2 == 0)
print("مجموع اعداد زوج تا", n, "=", sum_even)
چطور کار میکند؟
range(2, n+1) همه اعداد از 2 تا n را میسازد.
شرط if i % 2 == 0 فقط زوجها را نگه میدارد.
sum(...) مجموع آنها را میگیرد.
✔️ خروجی:
مجموع اعداد زوج تا 8 = 20
آموزش برنامهنویسی پایتون و هوش مصنوعی
🔹 سوال 1 : بزرگترین عدد فرد در لیست numbers = [10, 23, 4, 5, 6, 78, 65, 45, 78, 5685, 90, 765, 77776, 432, 56, 102] max_odd = None for num in numbers: if num % 2 != 0: if max_odd is None or num > max_odd: max_odd = num print("بزرگترین…
# ================================
# سوال 1 : پیدا کردن بزرگترین عدد فرد در یک لیست
# روش: با حلقه بررسی میکنیم و اگر عدد فرد بود و بزرگتر از بیشترین مقدار قبلی بود، نگه میداریم.
numbers = [10, 23, 4, 5, 6, 78, 65, 45, 78, 5685, 90, 765, 77776, 432, 56, 102]
max_odd = None
for num in numbers:
if num % 2 != 0: # اگر فرد بود
if max_odd is None or num > max_odd: # مقایسه با بیشترین مقدار قبلی
max_odd = num
print("بزرگترین عدد فرد:", max_odd)
print("="*50)
# ================================
# سوال 2 : شمارش تعداد حروف بزرگ و کوچک در یک رشته
# روش: با استفاده از isupper و islower شمارش انجام میدهیم.
text = 'Hello world PYTHON!'
upper_count = sum(1 for c in text if c.isupper())
lower_count = sum(1 for c in text if c.islower())
print("تعداد حروف بزرگ:", upper_count)
print("تعداد حروف کوچک:", lower_count)
print("="*50)
# ================================
# سوال 3 : محاسبه معدل نمرات دانشآموزان
# روش: میانگین هر لیست نمره حساب میشود.
students_scores = {
"ali": [18, 20, 19, 16, 15, 20],
"sara": [19, 20, 18, 20, 17],
"omid": [16, 20, 18, 17]
}
averages = {name: sum(scores)/len(scores) for name, scores in students_scores.items()}
print("معدل دانشآموزان:", averages)
print("="*50)
# ================================
# سوال 4 : محاسبه فاکتوریل با استفاده از تابع بازگشتی
# روش: n! = n * (n-1)! و حالت پایه n=1 یا n=0 است.
def factorial(n):
if n <= 1:
return 1
return n * factorial(n - 1)
print("فاکتوریل 5:", factorial(5))
print("="*50)
# ================================
# سوال 5 : بررسی اول بودن یک عدد
# روش: عدد اول فقط بر خودش و 1 بخشپذیر است.
def is_prime(num):
if num < 2:
return False
for i in range(2, int(num**0.5)+1): # فقط تا ریشه دوم کافی است
if num % i == 0:
return False
return True
print("آیا 29 عدد اول است؟", is_prime(29))
print("="*50)
# ================================
# سوال 6 : حذف حروف تکراری از رشته و حفظ ترتیب
# روش: از dict.fromkeys استفاده میکنیم چون ترتیب را حفظ میکند.
text = "programming"
unique_chars = "".join(dict.fromkeys(text))
print("حروف بدون تکرار:", unique_chars)
print("="*50)
# ================================
# سوال 7 : محاسبه مجموع اعداد زوج تا n
# روش: با حلقه یا sum و شرط زوج بودن.
n = 8 # مثال: 2+4+6+8 = 20
sum_even = sum(i for i in range(2, n+1) if i % 2 == 0)
print("مجموع اعداد زوج تا", n, "=", sum_even)
print("="*50)
# سوال 1 : پیدا کردن بزرگترین عدد فرد در یک لیست
# روش: با حلقه بررسی میکنیم و اگر عدد فرد بود و بزرگتر از بیشترین مقدار قبلی بود، نگه میداریم.
numbers = [10, 23, 4, 5, 6, 78, 65, 45, 78, 5685, 90, 765, 77776, 432, 56, 102]
max_odd = None
for num in numbers:
if num % 2 != 0: # اگر فرد بود
if max_odd is None or num > max_odd: # مقایسه با بیشترین مقدار قبلی
max_odd = num
print("بزرگترین عدد فرد:", max_odd)
print("="*50)
# ================================
# سوال 2 : شمارش تعداد حروف بزرگ و کوچک در یک رشته
# روش: با استفاده از isupper و islower شمارش انجام میدهیم.
text = 'Hello world PYTHON!'
upper_count = sum(1 for c in text if c.isupper())
lower_count = sum(1 for c in text if c.islower())
print("تعداد حروف بزرگ:", upper_count)
print("تعداد حروف کوچک:", lower_count)
print("="*50)
# ================================
# سوال 3 : محاسبه معدل نمرات دانشآموزان
# روش: میانگین هر لیست نمره حساب میشود.
students_scores = {
"ali": [18, 20, 19, 16, 15, 20],
"sara": [19, 20, 18, 20, 17],
"omid": [16, 20, 18, 17]
}
averages = {name: sum(scores)/len(scores) for name, scores in students_scores.items()}
print("معدل دانشآموزان:", averages)
print("="*50)
# ================================
# سوال 4 : محاسبه فاکتوریل با استفاده از تابع بازگشتی
# روش: n! = n * (n-1)! و حالت پایه n=1 یا n=0 است.
def factorial(n):
if n <= 1:
return 1
return n * factorial(n - 1)
print("فاکتوریل 5:", factorial(5))
print("="*50)
# ================================
# سوال 5 : بررسی اول بودن یک عدد
# روش: عدد اول فقط بر خودش و 1 بخشپذیر است.
def is_prime(num):
if num < 2:
return False
for i in range(2, int(num**0.5)+1): # فقط تا ریشه دوم کافی است
if num % i == 0:
return False
return True
print("آیا 29 عدد اول است؟", is_prime(29))
print("="*50)
# ================================
# سوال 6 : حذف حروف تکراری از رشته و حفظ ترتیب
# روش: از dict.fromkeys استفاده میکنیم چون ترتیب را حفظ میکند.
text = "programming"
unique_chars = "".join(dict.fromkeys(text))
print("حروف بدون تکرار:", unique_chars)
print("="*50)
# ================================
# سوال 7 : محاسبه مجموع اعداد زوج تا n
# روش: با حلقه یا sum و شرط زوج بودن.
n = 8 # مثال: 2+4+6+8 = 20
sum_even = sum(i for i in range(2, n+1) if i % 2 == 0)
print("مجموع اعداد زوج تا", n, "=", sum_even)
print("="*50)
# پیدا کردن اولین عدد فرد
numbers = [2, 4, 6, 8, 7, 9, 12]
for num in numbers:
if num % 2 != 0: # بررسی عدد فرد
print("اولین عدد فرد پیدا شد :", num)
break # خروج از حلقه
# پیدا کردن اولین عدد زوج
numbers = [21, 43, 6, 8, 3, 1, 7, 9, 12, 45, 13, 67]
for num in numbers:
if num % 2 == 0: # بررسی عدد زوج
print("اولین عدد زوج پیدا شد :", num)
break # خروج از حلقه
numbers = [2, 4, 6, 8, 7, 9, 12]
for num in numbers:
if num % 2 != 0: # بررسی عدد فرد
print("اولین عدد فرد پیدا شد :", num)
break # خروج از حلقه
# پیدا کردن اولین عدد زوج
numbers = [21, 43, 6, 8, 3, 1, 7, 9, 12, 45, 13, 67]
for num in numbers:
if num % 2 == 0: # بررسی عدد زوج
print("اولین عدد زوج پیدا شد :", num)
break # خروج از حلقه
Media is too big
VIEW IN TELEGRAM
چطور میشه اولین عدد فرد یا اولین عدد زوج رو از داخل یک لیست پیدا کرد.
🔹 توضیح کد اول (پیدا کردن اولین عدد فرد):
یک لیست از اعداد داریم: numbers = [2, 4, 6, 8, 7, 9, 12]
با استفاده از یک حلقه for، هر عدد (num) رو یکییکی بررسی میکنیم.
شرط میذاریم: if num % 2 != 0: یعنی اگر باقیمانده تقسیم عدد بر ۲ برابر با صفر نبود ⇒ عدد فرده.
وقتی اولین عدد فرد پیدا شد، چاپش میکنیم و با دستور break از حلقه خارج میشیم.
✅ خروجی این کد میشه:
اولین عدد فرد پیدا شد : 7
🔹 توضیح کد دوم (پیدا کردن اولین عدد زوج):
لیست جدید داریم: numbers = [21, 43, 6, 8, 3, 1, 7, 9, 12, 45, 13, 67]
دوباره حلقه for میذاریم و تکتک اعداد بررسی میشن.
این بار شرط میذاریم: if num % 2 == 0: یعنی اگر باقیمانده تقسیم عدد بر ۲ برابر با صفر بود ⇒ عدد زوجه.
اولین عدد زوج پیدا بشه چاپ میکنیم و با break از حلقه خارج میشیم.
✅ خروجی این کد میشه:
اولین عدد زوج پیدا شد : 6
🔹 نسخه کامل کد
🔹 توضیح کد اول (پیدا کردن اولین عدد فرد):
یک لیست از اعداد داریم: numbers = [2, 4, 6, 8, 7, 9, 12]
با استفاده از یک حلقه for، هر عدد (num) رو یکییکی بررسی میکنیم.
شرط میذاریم: if num % 2 != 0: یعنی اگر باقیمانده تقسیم عدد بر ۲ برابر با صفر نبود ⇒ عدد فرده.
وقتی اولین عدد فرد پیدا شد، چاپش میکنیم و با دستور break از حلقه خارج میشیم.
✅ خروجی این کد میشه:
اولین عدد فرد پیدا شد : 7
🔹 توضیح کد دوم (پیدا کردن اولین عدد زوج):
لیست جدید داریم: numbers = [21, 43, 6, 8, 3, 1, 7, 9, 12, 45, 13, 67]
دوباره حلقه for میذاریم و تکتک اعداد بررسی میشن.
این بار شرط میذاریم: if num % 2 == 0: یعنی اگر باقیمانده تقسیم عدد بر ۲ برابر با صفر بود ⇒ عدد زوجه.
اولین عدد زوج پیدا بشه چاپ میکنیم و با break از حلقه خارج میشیم.
✅ خروجی این کد میشه:
اولین عدد زوج پیدا شد : 6
🔹 نسخه کامل کد
This media is not supported in your browser
VIEW IN TELEGRAM
# ✅ اتوماسیون ساده با کتابخانه schedule
# وارد کردن کتابخانههای لازم
import schedule
import time
# تعریف تابعی که قرار است بهصورت زمانبندیشده اجرا شود
def greet():
print("👋 Hello! Time to learn Python!")
# زمانبندی اجرای تابع greet هر ۵ ثانیه
schedule.every(5).seconds.do(greet)
# حلقه بینهایت برای بررسی و اجرای وظایف زمانبندیشده
while True:
schedule.run_pending() # اجرای وظایف در صف
time.sleep(1) # مکث ۱ ثانیهای برای جلوگیری از مصرف زیاد منابع
# وارد کردن کتابخانههای لازم
import schedule
import time
# تعریف تابعی که قرار است بهصورت زمانبندیشده اجرا شود
def greet():
print("👋 Hello! Time to learn Python!")
# زمانبندی اجرای تابع greet هر ۵ ثانیه
schedule.every(5).seconds.do(greet)
# حلقه بینهایت برای بررسی و اجرای وظایف زمانبندیشده
while True:
schedule.run_pending() # اجرای وظایف در صف
time.sleep(1) # مکث ۱ ثانیهای برای جلوگیری از مصرف زیاد منابع
✅ اتوماسیون ساده در پایتون با کتابخانه schedule
گاهی وقتها دوست داریم بعضی کارها بهصورت خودکار و زمانبندیشده انجام بشن. مثلاً:
هر روز صبح یک پیام خوشآمد چاپ بشه
هر چند ثانیه یک کار تستی اجرا بشه
یا حتی بکاپ گرفتن از فایلها و ارسال گزارش
در پایتون، یکی از سادهترین ابزارها برای این کار، کتابخانهی schedule هست.
نصب کتابخانه
نمونهی ساده
🔹 خروجی: هر ۵ ثانیه یک بار پیام چاپ میشه.
مثال پیشرفتهتر
مزایا
✨ سادگی و خوانایی بالا (نیاز به پیچیدگی نداره)
🛠 انعطافپذیری (ثانیهای، دقیقهای، روزانه، یا حتی روز خاص هفته)
💡 جایگزین سبک برای cron مخصوصاً در ویندوز یا پروژههای کوچک
🔗 قابل ترکیب با هر اسکریپت پایتونی (مثلاً ارسال ایمیل، اسکرپینگ، بکاپ و …)
⚠️ محدودیتها
مناسب پروژههای کوچک یا شخصی هست
در سطح production بهتره از ابزارهایی مثل APScheduler یا Celery استفاده بشه
اسکریپت باید همیشه در حال اجرا باشه (در غیر این صورت کارها متوقف میشن)
✅ با همین چند خط کد میتونی اتوماسیون سبک و سریع برای کارهای روزمرهات داشته باشی.
گاهی وقتها دوست داریم بعضی کارها بهصورت خودکار و زمانبندیشده انجام بشن. مثلاً:
هر روز صبح یک پیام خوشآمد چاپ بشه
هر چند ثانیه یک کار تستی اجرا بشه
یا حتی بکاپ گرفتن از فایلها و ارسال گزارش
در پایتون، یکی از سادهترین ابزارها برای این کار، کتابخانهی schedule هست.
نصب کتابخانه
pip install schedule نمونهی ساده
import schedule import time # تابعی که قراره بهصورت زمانبندیشده اجرا بشه def greet(): print("👋 Hello! Time to learn Python!") # اجرای تابع هر ۵ ثانیه schedule.every(5).seconds.do(greet) # حلقهی اصلی برای اجرای وظایف while True: schedule.run_pending() # اجرای کارهای آماده time.sleep(1) # مکث برای مصرف کمتر CPU 🔹 خروجی: هر ۵ ثانیه یک بار پیام چاپ میشه.
مثال پیشرفتهتر
import schedule import time def daily_task(): print("☀️ صبح بخیر! آمادهی شروع یک روز پایتونی باش!") def test_task(): print("✅ تست هر ۱۰ ثانیه") # اجرای روزانه ساعت ۸ صبح schedule.every().day.at("08:00").do(daily_task) # اجرای هر ۱۰ ثانیه schedule.every(10).seconds.do(test_task) while True: schedule.run_pending() time.sleep(1) مزایا
✨ سادگی و خوانایی بالا (نیاز به پیچیدگی نداره)
🛠 انعطافپذیری (ثانیهای، دقیقهای، روزانه، یا حتی روز خاص هفته)
💡 جایگزین سبک برای cron مخصوصاً در ویندوز یا پروژههای کوچک
🔗 قابل ترکیب با هر اسکریپت پایتونی (مثلاً ارسال ایمیل، اسکرپینگ، بکاپ و …)
⚠️ محدودیتها
مناسب پروژههای کوچک یا شخصی هست
در سطح production بهتره از ابزارهایی مثل APScheduler یا Celery استفاده بشه
اسکریپت باید همیشه در حال اجرا باشه (در غیر این صورت کارها متوقف میشن)
✅ با همین چند خط کد میتونی اتوماسیون سبک و سریع برای کارهای روزمرهات داشته باشی.
import schedule
import time
# تابعی که قراره بهصورت زمانبندیشده اجرا بشه
def greet():
print("👋 Hello! Time to learn Python!")
# اجرای تابع هر ۵ ثانیه
schedule.every(5).seconds.do(greet)
# حلقهی اصلی برای اجرای وظایف
while True:
schedule.run_pending() # اجرای کارهای آماده
time.sleep(1) # مکث برای مصرف کمتر CPU
import time
# تابعی که قراره بهصورت زمانبندیشده اجرا بشه
def greet():
print("👋 Hello! Time to learn Python!")
# اجرای تابع هر ۵ ثانیه
schedule.every(5).seconds.do(greet)
# حلقهی اصلی برای اجرای وظایف
while True:
schedule.run_pending() # اجرای کارهای آماده
time.sleep(1) # مکث برای مصرف کمتر CPU
import schedule
import time
def daily_task():
print("☀️ صبح بخیر! آمادهی شروع یک روز پایتونی باش!")
def test_task():
print("✅ تست هر ۱۰ ثانیه")
# اجرای روزانه ساعت ۸ صبح
schedule.every().day.at("08:00").do(daily_task)
# اجرای هر ۱۰ ثانیه
schedule.every(10).seconds.do(test_task)
while True:
schedule.run_pending()
time.sleep(1)
import time
def daily_task():
print("☀️ صبح بخیر! آمادهی شروع یک روز پایتونی باش!")
def test_task():
print("✅ تست هر ۱۰ ثانیه")
# اجرای روزانه ساعت ۸ صبح
schedule.every().day.at("08:00").do(daily_task)
# اجرای هر ۱۰ ثانیه
schedule.every(10).seconds.do(test_task)
while True:
schedule.run_pending()
time.sleep(1)