eitaa logo
پایتون برای شما
107 دنبال‌کننده
29 عکس
0 ویدیو
25 فایل
جایی برای یادگیری پایتون 👨‍💻👩‍💻 ارتباط با مدرس: @Ali_Reza_Noorbakhsh
مشاهده در ایتا
دانلود
6️⃣ مدیریت خطاها در حلقه‌ها 💥 حلقه‌ها ممکنه باعث خطاهایی مثل IndexError یا حلقه بی‌پایان بشن. ✨ مثال مدیریت خطا: fruits = ["sib", "moz"] try: for i in range(5): print(fruits[i]) except IndexError: print("Indeks na-mojood! 🚫") ✨ مثال جلوگیری از حلقه بی‌پایان: count = 0 while count < 5: print(f"Shomar: {count}") count += 1 # Faramoosh in, halghe bi-payan mishe! —-—-—-—-—-—-—-—-—-—-— 7️⃣ مثال‌های کاربردی ✨ محاسبه فاکتوریل با while: n = 5 factorial = 1 while n > 0: factorial *= n n -= 1 print(f"Factorial: {factorial}") # Khoroji: Factorial: 120 ✨ جستجوی خطی با for: numbers = [3, 7, 2, 9] target = 7 for i, num in enumerate(numbers): if num == target: print(f"Target {target} dar index {i} peyda shod!") break else: print("Target nabood! 🚫") ✨ تولید فهرست فیبوناچی: n = 6 fib = [1, 1] for i in range(2, n): fib.append(fib[i-1] + fib[i-2]) print(fib) # Khoroji: [1, 1, 2, 3, 5, 8] ✨ چاپ الگوی ستاره با حلقه تودرتو: for i in range(5): for j in range(i + 1): print("*", end="") print() # Khoroji: # * # ** # *** # **** # ***** —-—-—-—-—-—-—-—-—-—-— 8️⃣ نکات حرفه‌ای 🔸 بهینه‌سازی حافظه: برای داده‌های بزرگ، از ژنراتورها یا ()range مستقیم استفاده کن: for i in range(1000000): if i == 5: break 🔸 خوانایی کد: - اسم‌های معنی‌دار برای متغیرها انتخاب کن (مثل fruit به جای x). - از ()enumerate به جای range(len()) استفاده کن. 🔸 جلوگیری از حلقه‌های بی‌پایان: - همیشه یه شرط خروج (مثل break یا افزایش متغیر) تو while بذار. - برای تست، یه محدودیت حداکثر تکرار اضافه کن: tries = 0 while tries < 1000: tries += 1 if some_condition: break 🔸 ترکیب با توابع داخلی: - برای جمع، از sum() به جای حلقه استفاده کن: numbers = [1, 2, 3, 4] total = sum(numbers) # Tondtar az halghe 💯 @PythonForYou 🧑‍💻👩‍💻
📢 تسلط بر تابع ()range 🐍 در ادامه قراره یه ابزار کلیدی تو پایتون به اسم ()range رو از صفر تا صد بررسی کنیم! 😎 این تابع برای ساخت دنباله‌های عددی، پیمایش تو حلقه‌ها، و حتی کارهای پیچیده‌تر عالیه. از مفاهیم پایه تا ترفندهای حرفه‌ای، همه‌چیز اینجاست! 🚀 بریم شروع کنیم! تابع ()range چیه؟ 🤔 تابع ()range یه تابع داخلی (built-in) تو پایتونه که یه دنباله عددی تولید می‌کنه. این دنباله معمولاً تو حلقه‌ها، ساخت فهرست‌ها، یا مدیریت ایندکس‌ها استفاده می‌شه. نکته مهم اینه که ()range یه شیء از نوع range می‌سازه که خیلی بهینه‌ست، چون اعداد رو به‌صورت تنبل (lazy) و فقط موقع نیاز تولید می‌کنه، نه اینکه کل فهرست رو تو حافظه نگه داره. —-—-—-—-—-—-—-—-—-—-— 📝 سینتکس: range(start, stop, step) 🔸 start: عدد شروع (اختیاری، پیش‌فرض 0). 🔸 stop: عدد پایان (اجباری، خودش شامل نمی‌شه). 🔸 step: فاصله بین اعداد (اختیاری، پیش‌فرض 1). 📌 نکته: خروجی ()range یه شیء rangeه، نه فهرست. برای تبدیل به فهرست، از ()list استفاده کن: numbers = list(range(5)) print(numbers) # Khoroji: [0, 1, 2, 3, 4] —-—-—-—-—-—-—-—-—-—-— 💠 کاربردهای اصلی ()range 1️⃣ پیمایش تو حلقه‌های for تابع ()range برای تکرار یه تعداد مشخص تو حلقه‌های for خیلی پرکاربرده. ✨ مثال ساده (از 0 تا stop-1): for num in range(5): print(f"Adad: {num}") # Khoroji: # Adad: 0 # Adad: 1 # Adad: 2 # Adad: 3 # Adad: 4 ✨ مثال با start و stop: for num in range(2, 7): print(f"Adad: {num}") # Khoroji: # Adad: 2 # Adad: 3 # Adad: 4 # Adad: 5 # Adad: 6 ✨ مثال با step: for num in range(0, 10, 2): print(f"Zoj: {num}") # Khoroji: # Zoj: 0 # Zoj: 2 # Zoj: 4 # Zoj: 6 # Zoj: 8 —-—-—-—-—-—-—-—-—-—-— 2️⃣ ساخت فهرست‌های عددی با تبدیل ()range به فهرست، می‌تونی دنباله‌های عددی بسازی. ✨ مثال: numbers = list(range(1, 6)) print(numbers) # Khoroji: [1, 2, 3, 4, 5] ✨ مثال با step منفی (معکوس): reverse_numbers = list(range(10, 0, -1)) print(reverse_numbers) # Khoroji: [10, 9, 8, 7, 6, 5, 4, 3, 2, 1] —-—-—-—-—-—-—-—-—-—-— 3️⃣ پیمایش با ایندکس تو فهرست‌ها تابع ()range با ()len برای دسترسی به ایندکس‌های فهرست استفاده می‌شه. ✨ مثال: fruits = ["sib", "moz", "portoghal"] for i in range(len(fruits)): print(f"Index {i}: {fruits[i]}") # Khoroji: # Index 0: sib # Index 1: moz # Index 2: portoghal 💡 ترفند بهتر: به جای range(len())، از ()enumerate استفاده کن که خواناتر و بهینه‌تره: for i, fruit in enumerate(fruits): print(f"Index {i}: {fruit}") 💯 @PythonForYou 🧑‍💻👩‍💻
⭐️ نکات ریز و ترفندهای حرفه‌ای 1️⃣ بهینه بودن ()range: تابع ()range یه شیء تنبل تولید می‌کنه که حافظه کمی مصرف می‌کنه، چون اعداد رو یکی‌یکی می‌سازه. import sys print(sys.getsizeof(range(1000000))) # ~48 bytes print(sys.getsizeof(list(range(1000000)))) # ~9000000 bytes 2️⃣ استفاده از step منفی برای دنباله‌های نزولی: برای ساخت دنباله معکوس، step باید منفی باشه و start از stop بزرگ‌تر: for num in range(5, 0, -1): print(num) # Khoroji: 5, 4, 3, 2, 1 3️⃣ ترکیب با List Comprehension: برای ساخت فهرست‌های پیچیده‌تر: squares = [x**2 for x in range(1, 6)] print(squares) # Khoroji: [1, 4, 9, 16, 25] 4️⃣ مدیریت خطاها: اگه step صفر باشه یا بازه نامعتبر باشه، ارور می‌گیره: try: list(range(1, 5, 0)) except ValueError: print("Step ghalat! 🚫") # Khoroji: Step ghalat! 5️⃣ استفاده تو حلقه‌های while: هرچند کمتر رایجه، ولی می‌تونی ()range رو تو while استفاده کنی: i = 0 r = range(5) while i < len(r): print(r[i]) i += 1 # Khoroji: 0, 1, 2, 3, 4 6️⃣ ترکیب با توابع داخلی: دقت کن ()range با sum، min، max و غیره برای محاسبات سریع عالیه: numbers = range(1, 6) print(sum(numbers)) # Khoroji: 15 print(max(numbers)) # Khoroji: 5 print(min(numbers)) # Khoroji: 1 7️⃣ پیمایش معکوس با ()reversed: به جای step منفی، می‌تونی از reversed(range()) استفاده کنی: for num in reversed(range(1, 6)): print(num) # Khoroji: 5, 4, 3, 2, 1 8️⃣ دسترسی به ایندکس‌ها: تابع ()range می‌تونه برای دسترسی به ایندکس‌های خاص تو فهرست‌ها استفاده بشه: numbers = ["a", "b", "c", "d"] for i in range(1, len(numbers), 2): print(numbers[i]) # Khoroji: b, d 💯 @PythonForYou 🧑‍💻👩‍💻
🟢 مثال‌های کاربردی 1️⃣ چاپ اعداد فرد: for num in range(1, 10, 2): print(f"Fard: {num}") # Khoroji: Fard: 1, Fard: 3, Fard: 5, Fard: 7, Fard: 9 2️⃣ ساخت جدول ضرب: for i in range(1, 6): for j in range(1, 6): print(f"{i} * {j} = {i * j}", end="\t") print() # Khoroji: # 1 * 1 = 1 1 * 2 = 2 1 * 3 = 3 1 * 4 = 4 1 * 5 = 5 # 2 * 1 = 2 2 * 2 = 4 2 * 3 = 6 2 * 4 = 8 2 * 5 = 10 # ... 3️⃣ محاسبه مجموع اعداد: total = sum(range(1, 101)) print(f"Jame 1 ta 100: {total}") # Khoroji: Jame 1 ta 100: 5050 4️⃣ چرخش ایندکس‌ها در فهرست: numbers = ["a", "b", "c", "d"] k = 2 rotated = [numbers[i % len(numbers)] for i in range(k, k + len(numbers))] print(rotated) # Khoroji: ["c", "d", "a", "b"] 5️⃣ الگوی ستاره با ()range: for i in range(5): print("*" * (i + 1)) # Khoroji: # * # ** # *** # **** # ***** 🔴 نکات حرفه‌ای 🔸 صرفه‌جویی در حافظه: برای داده‌های بزرگ، مستقیم از ()range تو حلقه استفاده کن، نه list(range()): for i in range(1000000): if i == 5: break print(i) 🔸 خوانایی کد: از step واضح استفاده کن (مثل range(0, 10, 2) برای اعداد زوج). 🔸 به جای (()range(len، ترجیحاً از ()enumerate استفاده کن. 🔸 ترکیب با ژنراتورها: برای بهینه‌تر شدن، range() رو با ژنراتورها ترکیب کن: evens_gen = (x for x in range(0, 10, 2)) print(list(evens_gen)) # Khoroji: [0, 2, 4, 6, 8] 🔸 مدیریت بازه‌های بزرگ برای بازه‌های خیلی بزرگ، از step بزرگ‌تر استفاده کن تا سرعت بیشتر بشه: for i in range(0, 1000000, 1000): print(i) 🔸 استفاده با itertools: برای کارهای پیچیده‌تر، از ماژول itertools استفاده کن: from itertools import islice numbers = range(100) print(list(islice(numbers, 5))) # Khoroji: [0, 1, 2, 3, 4] 💯 @PythonForYou 🧑‍💻👩‍💻
✅ 1️⃣ شمارش تعداد اعداد مثبت و منفی سؤال: الگوریتمی بنویسید که ابتدا عدد n را از ورودی دریافت کند. سپس n عدد دیگر را نیز از ورودی خوانده، تعداد اعداد مثبت و تعداد اعداد منفی را در بین آن‌ها مشخص کرده و در خروجی نمایش دهد. # دریافت تعداد اعدادی که کاربر وارد می‌کند n = int(input("تعداد اعداد را وارد کن: ")) # تعریف شمارنده برای اعداد مثبت positive_count = 0 # تعریف شمارنده برای اعداد منفی negative_count = 0 # حلقه برای گرفتن n عدد و بررسی مثبت یا منفی بودن آن‌ها for i in range(n): # دریافت عدد از کاربر num = int(input("عدد را وارد کن: ")) # اگر عدد مثبت بود، شمارنده مثبت‌ها افزایش یابد if num > 0: positive_count += 1 # اگر عدد منفی بود، شمارنده منفی‌ها افزایش یابد elif num < 0: negative_count += 1 # نمایش تعداد اعداد مثبت print("تعداد اعداد مثبت:", positive_count) # نمایش تعداد اعداد منفی print("تعداد اعداد منفی:", negative_count) ⬟〰️⬟〰️⬟〰️⬟〰️⬟ ✅ 2️⃣ بیشترین و کمترین نمره سؤال: الگوریتمی بنویسید که ابتدا تعداد دانشجویان را از ورودی دریافت کند. سپس نمرات آن‌ها را گرفته، بیشترین و کمترین نمره را پیدا کرده و در خروجی نمایش دهد. # دریافت تعداد دانشجویان n = int(input("تعداد دانشجویان: ")) # دریافت اولین نمره first_score = int(input("نمره 1 را وارد کن: ")) # فرض می‌کنیم اولین نمره، بیشترین و کمترین نمره است max_score = first_score min_score = first_score # شروع حلقه برای دریافت نمرات باقی‌مانده for i in range(n - 1): # دریافت نمره جدید score = int(input("نمره بعدی را وارد کن: ")) # اگر نمره جدید بیشتر بود، به‌روزرسانی max if score > max_score: max_score = score # اگر نمره جدید کمتر بود، به‌روزرسانی min if score < min_score: min_score = score # نمایش بیشترین نمره print("بیشترین نمره:", max_score) # نمایش کمترین نمره print("کمترین نمره:", min_score) ⬟〰️⬟〰️⬟〰️⬟〰️⬟ ✅ 3️⃣ شمارش تکرار یک عدد خاص سؤال: الگوریتمی بنویسید که ابتدا دو عدد x و n را دریافت کند. سپس n عدد دیگر را نیز گرفته، تعداد دفعات تکرار عدد x در بین آن‌ها را در خروجی نمایش دهد. # دریافت عدد خاص x x = int(input("عدد موردنظر x را وارد کن: ")) # دریافت تعداد اعدادی که وارد می‌شوند n = int(input("تعداد اعداد را وارد کن: ")) # شمارنده برای تعداد تکرار x count = 0 # حلقه برای دریافت و بررسی اعداد for i in range(n): # دریافت عدد num = int(input("عدد را وارد کن: ")) # اگر برابر x بود، شمارنده را زیاد کن if num == x: count += 1 # نمایش تعداد تکرار x print("تعداد تکرار عدد", x, "برابر است با:", count) ⬟〰️⬟〰️⬟〰️⬟〰️⬟ ✅ 4️⃣ نمایش مقسوم‌علیه‌های یک عدد سؤال: الگوریتمی بنویسید که عددی صحیح و مثبت را از ورودی گرفته، سپس تمام مقسوم‌علیه‌های آن عدد را نمایش دهد. # دریافت عدد مثبت از کاربر n = int(input("عدد مثبت را وارد کن: ")) # بررسی همه عددها از 1 تا n for i in range(1, n + 1): # اگر n بر i بخش‌پذیر بود، یعنی i مقسوم‌علیه n است if n % i == 0: # نمایش مقسوم‌علیه print(i) 💯 @PythonForYou 🧑‍💻👩‍💻
✅ 5️⃣ نمایش الگوی عددی سؤال: الگوریتمی بنویسید که خروجی زیر را نمایش دهد: 1 22 333 4444 55555 # حلقه برای عددهای 1 تا 5 for i in range(1, 6): # تعریف رشته خالی برای ساخت خط مورد نظر line = "" # تکرار عدد i به تعداد i بار for j in range(i): line += str(i) # نمایش خط ساخته‌شده print(line) ⬟〰️⬟〰️⬟〰️⬟〰️⬟ ✅ 6️⃣ تشخیص اول بودن عدد سؤال: الگوریتمی بنویسید که یک عدد صحیح و مثبت را از ورودی گرفته، سپس بررسی کند آیا آن عدد اول است یا خیر. (✅ عددی اول است که فقط دو مقسوم‌علیه داشته باشد: ۱ و خودش.) # دریافت عدد مثبت n = int(input("عدد مثبت را وارد کن: ")) # شمارنده مقسوم‌علیه‌ها divisor_count = 0 # بررسی تمام عددها از 1 تا n for i in range(1, n + 1): # اگر n بر i بخش‌پذیر بود، شمارنده را زیاد کن if n % i == 0: divisor_count += 1 # اگر دقیقاً دو مقسوم‌علیه داشت (1 و خودش)، عدد اول است if divisor_count == 2: print("عدد اول است") # در غیر این صورت عدد اول نیست else: print("عدد اول نیست") ⬟〰️⬟〰️⬟〰️⬟〰️⬟ ✅ 7️⃣ نمایش تمام اعداد اول کوچکتر از n سؤال: الگوریتمی بنویسید که یک عدد صحیح و مثبت n را گرفته، سپس تمام اعداد اول کوچکتر از آن را در خروجی چاپ کند. # دریافت عدد مثبت n n = int(input("عدد مثبت را وارد کن: ")) # بررسی عددهای 2 تا n-1 for num in range(2, n): # شمارنده مقسوم‌علیه‌های عدد جاری count = 0 # بررسی مقسوم‌علیه‌های عدد جاری for i in range(1, num + 1): if num % i == 0: count += 1 # اگر فقط 2 مقسوم‌علیه داشت، عدد اول است if count == 2: print(num) 💯 @PythonForYou 🧑‍💻👩‍💻
📝 حقوق متخصصان هوش مصنوعی چقدر است؟ چطور ممکن است یک شغل آینده‌دار، زندگی مالی افراد را زیرورو کند؟ دنیای تازه‌ای در انتظار کسانی است که به دنیای هوش مصنوعی قدم می‌گذارند. صدای کوبیدن سرها بر روی میزها را می‌شنوید؟ این صدای کارمندانی است که به انتخاب رشته‌ی خود در دانشگاه افسوس می‌خورند زیرا به‌جای علوم کامپیوتر، سراغ رشته‌هایی مثل زبان انگلیسی یا روان‌شناسی رفته‌اند. درحالی‌ که رقابت استخدام در صنعت فناوری بالا گرفته است و مهندسان هوش مصنوعی خودشان شرایط کاری و حقوقشان را تعیین می‌کنند. حقوق در حوزه‌ی فناوری از عددهای چشمگیر تا گاهی غیرقابل‌باور متغیر است. طبق داده‌های پرونده‌های فدرال، کارکنان فنی در OpenAI می‌توانند تا سالانه ۵۳۰٬۰۰۰ دلار دریافت کنند. در آنتروپیک نیز مهندسان تحقیقاتی تا ۶۹۰٬۰۰۰ دلار دستمزد می‌گیرند. حتی مهندسان نرم‌افزار در شرکت‌های یونیکورن عادی (شرکت‌های استارتاپی با ارزش حداقل یک میلیارد دلار) به‌طور معمول سالانه ۲۵۰٬۰۰۰ دلار درآمد دارند. 💯 @PythonForYou 🧑‍💻👩‍💻
✨ نمونه سوالات جالب با پایتون 1️⃣ چاپ چارچوب مستطیل ستاره‌ای (مستطیل توخالی) width = 10 height = 4 row = 1 while row <= height: if row == 1 or row == height: print("* " * width) else: print("* " + " " * (width+2) + "*") row += 1 🔸 خروجی: * * * * * * * * * * * * * * * * * * * * * * * * 💯 @PythonForYou 🧑‍💻👩‍💻
✨ نمونه سوالات جالب با پایتون 2️⃣ تشخیص عدد کامل (Perfect Number) عدد کامل در ریاضیات به عددی گفته می‌شود که مجموع مقسوم‌علیه‌های مثبتی (غیر از خودش) برابر خود عدد باشد. مثلا ۶ یک عدد کامل است چون مقسوم‌علیه‌های مثبتش (به جز خودش) ۱، ۲ و ۳ هستند و 1+2+3=6. عدد کامل بعدی ۲۸ است (1+2+4+7+14=28). برنامه‌ای بنویسید که یک عدد را گرفته و تشخیص دهد آیا کامل است یا خیر. # Daryaft adad az karbar number = int(input("Yek adad vared kon: ")) # Hesab kardan majmoo maghsoom alayh ha sum_divisors = 0 i = 1 while i < number: if number % i == 0: sum_divisors += i i += 1 # Check kardan kamil boodan if sum_divisors == number: print(f"Adad {number} adad kamil ast!") else: print(f"Adad {number} adad kamil nist!") 💯 @PythonForYou 🧑‍💻👩‍💻
✨ نمونه سوالات جالب با پایتون 3️⃣ تولید مثلث پاسکال مثلث پاسکال یک آرایش مثلثی از اعداد است که هر عدد داخل آن برابر مجموع دو عدد بالای خودش است. ردیف اول آن ۱ است، ردیف دوم 1 1، ردیف سوم 1 2 1، ردیف چهارم 1 3 3 1 و الی آخر. معلمان ریاضی گاهی از دانش‌آموزان می‌خواهند چند ردیف اول این مثلث را بنویسند. برنامه‌ای بنویسید که یک عدد rows بگیرد و مثلث پاسکال را تا آن تعداد ردیف چاپ کند. # Daryaft tedad radif ha az karbar rows = int(input("Tedad radif ha ro vared kon: ")) # Sakht mesal pascal pascal = [] row = 0 while row < rows: # Sakht radif jadid new_row = [] col = 0 while col <= row: # Agar avval ya akhar radif bashe, 1 bezar if col == 0 or col == row: new_row.append(1) else: # Majmoo do adad balayi new_row.append(pascal[row-1][col-1] + pascal[row-1][col]) col += 1 pascal.append(new_row) row += 1 # Chap kardan mesal pascal row = 0 while row < rows: # Chap kardan space baraye align print(" " * (rows - row - 1), end="") col = 0 while col <= row: print(pascal[row][col], end=" ") col += 1 print() # Berim be radif badi row += 1 💯 @PythonForYou 🧑‍💻👩‍💻
✨ نمونه سوالات جالب با پایتون 4️⃣ برنامه‌ای بنویسید که یک رشته را از ورودی دریافت کند و تعداد حروف الفبایی، تعداد رقم‌ها و تعداد سایر نمادها (کاراکترهایی که نه حرف هستند و نه رقم) را در آن رشته محاسبه و گزارش کند. به عنوان مثال برای ورودی “P@^&i5ve” باید خروجی اعلام کند که ۸ حرف، ۳ رقم و ۴ علامت ویژه موجود است. # Daryaft reshte az karbar string = input("Yek reshte vared kon: ") # Shomaresh horoof, argham va alamat letter_count = 0 digit_count = 0 symbol_count = 0 index = 0 while index < len(string): char = string[index] if char.isalpha(): # Check kardan horoof alfaba letter_count += 1 elif char.isdigit(): # Check kardan argham digit_count += 1 else: # Alamat digar symbol_count += 1 index += 1 # Chap natije print(f"Tedad horoof alfaba: {letter_count}") print(f"Tedad argham: {digit_count}") print(f"Tedad alamat vije: {symbol_count}") 💯 @PythonForYou 🧑‍💻👩‍💻
💯 @PythonForYou 🧑‍💻👩‍💻