eitaa logo
پایتون برای شما
107 دنبال‌کننده
29 عکس
0 ویدیو
25 فایل
جایی برای یادگیری پایتون 👨‍💻👩‍💻 ارتباط با مدرس: @Ali_Reza_Noorbakhsh
مشاهده در ایتا
دانلود
دامنه متغیرها تو تابع‌ها (Scope) 🔍 امروز قراره درباره یه موضوع مهم حرف بزنیم: دامنه متغیرها یا Scope. این یعنی متغیرها تو کدت کجا کار می‌کنن و کجا نمی‌کنن. مثل اینه که بدونی کلید خونه‌ت فقط در خونه خودتو باز می‌کنه! 🔑 🟢 تو پایتون، دو نوع دامنه اصلی داریم: 🔹 Local Scope: 🔹 متغیرهایی که داخل تابع تعریف می‌شن، فقط همون‌جا کار می‌کنن. 🔸 Global Scope: 🔸 متغیرهایی که بیرون تابع تعریف می‌شن، همه‌جا (خارج و داخل تابع‌ها) قابل‌استفاده‌ان، مگه اینکه یه متغیر محلی هم‌نام باشه. ✨ مثال: x = 10 # Global variable def my_function(): x = 5 # Local variable print(f"Inside function: {x}") # Print local x my_function() print(f"Outside function: {x}") # Print global x 🔹 خروجی: Inside function: 5 Outside function: 10 🔰 این کد چیکار می‌کنه؟ متغیر x جهانی (10) بیرون تابع تعریف شده. متغیر x محلی (5) داخل تابع تعریف شده و فقط همون‌جا کار می‌کنه. وقتی تابع چاپ می‌کنه، از x محلی استفاده می‌شه. بیرون تابع، x جهانی چاپ می‌شه. ✅ نکته مهم: اگه داخل تابع بخوای به متغیر جهانی دسترسی پیدا کنی و تغییرش بدی، باید از کلمه global استفاده کنی: x = 10 # Global variable def change_global(): global x x = 20 # Modify global x print(f"Inside function: {x}") # Print modified x change_global() print(f"Outside function: {x}") # Print global x 🔹 خروجی: Inside function: 20 Outside function: 20 ✨ مثال روزمره: فرض کن داری یه بازی می‌سازی. یه متغیر جهانی داری که امتیاز کل بازیکن رو نگه می‌داره. تو تابع‌های مختلف (مثل تابع پایان مرحله) می‌تونی امتیاز رو تغییر بدی، ولی متغیرهای محلی (مثل تعداد دشمن‌های کشته‌شده تو یه مرحله) فقط تو همون تابع کار می‌کنن. ❓ تمرین: یه تابع بنویسید که یه متغیر محلی و یه متغیر جهانی رو چاپ کنه. متغیر جهانی رو با global تغییر بدید. 💯 @PythonForYou 🧑‍💻👩‍💻
تابع برای بررسی عدد اول (Prime Number) 🔢 بیاید یه تابع بنویسیم که یه کار ریاضی باحال انجام بده: بررسی کنه که یه عدد اوله یا نه. عدد اول یعنی فقط بر 1 و خودش تقسیم بشه (مثل 2، 3، 5، 7). ✨ مثال: def is_prime(n): if n < 2: return False # Numbers less than 2 are not prime for i in range(2, n): if n % i == 0: return False # If divisible by any number, not prime return True # If no divisors found, it's prime print(is_prime(7)) # Check if 7 is prime print(is_prime(4)) # Check if 4 is prime 🔹 خروجی: True False 🔰 این کد چیکار می‌کنه؟ تابع is_prime یه عدد n می‌گیره. اگه n کمتر از 2 باشه، اول نیست (False). با حلقه چک می‌کنه که آیا n بر عددی بین 2 تا n-1 تقسیم می‌شه یا نه. اگه تقسیم بشه، اول نیست (False). اگه نه، اوله (True). ✅ چرا این تابع باحاله؟ - می‌تونی تو پروژه‌های ریاضی، رمزنگاری، یا حتی بازی‌ها ازش استفاده کنی. - کدت تمیز و قابل‌استفاده دوباره‌ست. ✨ مثال روزمره: فرض کن داری یه برنامه برای امتحان ریاضی می‌سازی که چک کنه کدوم جواب‌ها عدد اولن. این تابع بهت کمک می‌کنه سریع این کارو انجام بدی! ❓ تمرین: یه تابع بنویسید که چک کنه یه عدد زوجه یا نه. تابع رو با چند عدد مختلف تست کنید (مثلاً 4، 7، 10). 💯 @PythonForYou 🧑‍💻👩‍💻
تابع برای عدد کامل (Perfect Number) 🎯 بیاید یه تابع باحال دیگه بنویسیم: تابع برای بررسی عدد کامل. عدد کامل یعنی مجموع مقسوم‌علیه‌هاش (به‌جز خودش) برابر خود عدد باشه. مثلاً 6 (چون 1+2+3=6) یا 28 (چون 1+2+4+7+14=28). ✨ مثال: def is_perfect(n): sum_divisors = 0 for i in range(1, n): if n % i == 0: sum_divisors += i # Add divisor to sum return sum_divisors == n # Check if sum equals the number print(is_perfect(6)) # Check if 6 is perfect print(is_perfect(28)) # Check if 28 is perfect print(is_perfect(10)) # Check if 10 is perfect 🔹 خروجی: True True False 🔰 این کد چیکار می‌کنه؟ تابع is_perfect یه عدد n می‌گیره. با حلقه، تمام مقسوم‌علیه‌های n (از 1 تا n-1) رو جمع می‌کنه. اگه جمع برابر n باشه، عدد کامله (True). اگه نه، خیر (False). 💥 چرا این تابع مهمه؟ - اعداد کامل تو ریاضیات خیلی خاصن و تو مسائل نظریه اعداد کاربرد دارن. - این تابع نشون می‌ده چطور می‌تونی یه مسئله ریاضی رو با کد حل کنی. ✨ مثال روزمره: فرض کن داری یه اپلیکیشن آموزشی می‌سازی که به دانش‌آموزا کمک کنه اعداد خاص (مثل اعداد کامل) رو پیدا کنن. این تابع می‌تونه بخشی از برنامه‌ت باشه! ❓ تمرین: یه تابع بنویسید که یه عدد بگیره و مجموع مقسوم‌علیه‌هاش رو چاپ کنه (بدون خود عدد). تابع رو با چند عدد تست کنید. 💯 @PythonForYou 🧑‍💻👩‍💻
تابع با ورودی از کاربر ⌨️ تا حالا تابع‌هایی ساختیم که خودمون ورودی بهشون می‌دادیم. حالا بیاید یه تابع بنویسیم که از کاربر ورودی بگیره! اینجوری برنامه‌مون تعاملی‌تر می‌شه. ✨ مثال: def add_user_numbers(): num1 = int(input("Enter first number: ")) # Get first number num2 = int(input("Enter second number: ")) # Get second number return num1 + num2 # Return their sum result = add_user_numbers() print(f"Sum: {result}") # Print the result 🔹 خروجی (مثال): Enter first number: 5 Enter second number: 3 Sum: 8 🔰 این کد چیکار می‌کنه؟ تابع add_user_numbers از کاربر دو عدد می‌گیره با input. عدد‌ها رو جمع می‌کنه و نتیجه رو برمی‌گردونه. نتیجه تو متغیر result ذخیره می‌شه و چاپ می‌شه. 💥 نکته‌های مهم: - میدونیم که input همیشه رشته برمی‌گردونه، پس برای اعداد باید از ()int استفاده کنی. - اگه کاربر ورودی نامعتبر (مثل حروف) بده، ممکنه خطا بگیری. بعداً یاد می‌گیریم چطور خطاها رو مدیریت کنیم! ✨ مثال روزمره: فرض کن داری یه ماشین‌حساب آنلاین می‌سازی. یه تابع می‌نویسی که از کاربر اعداد و عملیات رو بگیره و نتیجه رو نشون بده. ❓ تمرین: یه تابع بنویسید که از کاربر دو عدد بگیره و ضربشون رو برگردونه. 💯 @PythonForYou 🧑‍💻👩‍💻
مدیریت خطاها تو تابع‌ها 🚨 یه وقتایی تابع‌هامون ممکنه خطا بدن، مثلاً اگه کاربر ورودی اشتباه بده (مثل تقسیم بر صفر). بیاید یاد بگیریم چطور تابع‌هامون رو امن کنیم! ✨ مثال: def safe_divide(a, b): if b == 0: print("Cannot divide by zero!") # Handle division by zero return None return a / b # Return the division result print(safe_divide(10, 2)) # Normal division print(safe_divide(10, 0)) # Division by zero 🔹 خروجی: 5.0 Cannot divide by zero! None 🔰 این کد چیکار می‌کنه؟ تابع safe_divide دو عدد a و b می‌گیره. قبل از تقسیم، چک می‌کنه که b صفر نباشه. اگه صفر باشه، پیغام خطا چاپ می‌کنه و None برمی‌گردونه. اگه مشکلی نباشه، نتیجه تقسیم رو برمی‌گردونه. ✅ چرا مدیریت خطا مهمه؟ - باعث می‌شه برنامه‌ت کرش نکنه و کاربر تجربه بهتری داشته باشه. - می‌تونی به کاربر بگی چی اشتباه شده و چطور درستش کنه. ✨ یه مثال پیشرفته‌تر: def safe_divide_advanced(a, b): try: result = a / b return result # Return division result except ZeroDivisionError: print("Error: Division by zero is not allowed!") # Handle error return None print(safe_divide_advanced(10, 2)) print(safe_divide_advanced(10, 0)) 🔹 خروجی: 5.0 Error: Division by zero is not allowed! None ✨ مثال روزمره: فرض کن داری یه اپلیکیشن مالی می‌سازی. یه تابع می‌نویسی که سود سرمایه‌گذاری رو حساب کنه، ولی باید چک کنی که ورودی‌ها معتبر باشن (مثلاً عدد منفی نباشن). ❓ تمرین: یه تابع بنویسید که دو عدد بگیره و جمعشون رو برگردونه، ولی اگه هر کدوم از ورودی‌ها منفی بود، پیغام خطا چاپ کنه و None برگردونه. تابع رو با چند ورودی تست کنید. 💯 @PythonForYou 🧑‍💻👩‍💻
تابع‌های لامبدا (Lambda Functions) 🕶 تا حالا تابع‌های معمولی رو دیدیم، حالا بیاید یه نوع تابع باحال‌تر ببینیم: تابع‌های لامبدا! اینا تابع‌های کوچیک و یک‌خطی‌ان که نیازی به اسم ندارن. مثل یه میان‌بر تو کد! ✨ مثال: square = lambda x: x * x # Define a lambda function print(square(5)) # Call the lambda function 🔹 خروجی: 25 🔰 این کد چیکار می‌کنه؟ تابع لامبدا یه عدد x می‌گیره و مربعش رو برمی‌گردونه. بهش اسم square دادیم، ولی می‌تونستیم مستقیم ازش استفاده کنیم. ساختار لامبدا اینجوریه: lambda arguments: expression ✨ یه مثال باحال‌تر: add = lambda a, b: a + b # Lambda with two arguments print(add(3, 4)) # Call with two numbers 🔹 خروجی: 7 🔰 چرا لامبدا باحاله؟ - برای کارهای ساده و سریع که نیازی به تابع کامل ندارن. - تو جاهایی که نیاز به تابع یه‌بارمصرف داری (مثل تو لیست‌ها یا توابع مرتب‌سازی). ✨ مثال واقعی: فرض کن داری یه برنامه برای فیلتر کردن داده‌ها می‌سازی. می‌تونی از لامبدا برای تعریف سریع یه شرط استفاده کنی: numbers = [1, 2, 3, 4, 5] evens = list(filter(lambda x: x % 2 == 0, numbers)) # Filter even numbers print(evens) # Print even numbers 🔹 خروجی: [2, 4] ❓ تمرین: یه تابع لامبدا بنویسید که دو عدد بگیره و تفریقشون رو برگردونه. بعد یه تابع لامبدا برای بررسی زوج بودن عدد بنویسید. 💯 @PythonForYou 🧑‍💻👩‍💻
تابع و حلقه‌ها 🔄 تابع‌ها با حلقه‌ها خیلی خوب کار می‌کنن و می‌تونن کارهای تکراری رو ساده‌تر کنن. بیاید یه تابع بنویسیم که از حلقه استفاده کنه! ✨ مثال: def print_squares(n): for i in range(1, n + 1): print(i * i) # Print square of each number print_squares(3) # Print squares of 1, 2, 3 🔹 خروجی: 1 4 9 🔰 این کد چیکار می‌کنه؟ تابع print_squares یه عدد n می‌گیره. با حلقه for، مربع اعداد از 1 تا n رو چاپ می‌کنه. برای n=3، مربع‌های 1، 4، و 9 چاپ می‌شن. ✅ چرا حلقه تو تابع باحاله؟ - می‌تونی کارهای تکراری رو توی یه تابع جمع کنی و هر وقت لازم شد صداش کنی. - کدت تمیزتر می‌شه و راحت‌تر می‌تونی تغییرش بدی. ✨ مثال روزمره: فرض کن داری یه برنامه برای چاپ جدول ضرب می‌سازی. یه تابع می‌نویسی که جدول ضرب یه عدد رو با حلقه چاپ کنه. ❓ تمرین: یه تابع بنویسید که یه عدد بگیره و اعداد زوج از 1 تا اون عدد رو چاپ کنه. تابع رو با دو عدد مختلف تست کنید. 💯 @PythonForYou 🧑‍💻👩‍💻
تابع و لیست‌ها 📋 تابع‌ها با لیست‌ها خیلی خوب کار می‌کنن و می‌تونن داده‌های زیادی رو مدیریت کنن. بیاید یه تابع بنویسیم که با لیست کار کنه! ✨ مثال: def sum_list(numbers): total = 0 for num in numbers: total += num return total # Return sum of list print(sum_list([1, 2, 3, 4])) # Sum of list print(sum_list([10, 20, 30])) # Sum of another list 🔹 خروجی: 10 60 🔰 این کد چیکار می‌کنه؟ تابع sum_list یه لیست از اعداد می‌گیره. با حلقه، همه اعداد رو جمع می‌کنه و نتیجه رو برمی‌گردونه. برای لیست [1, 2, 3, 4]، خروجی 10ه و برای [10, 20, 30]، خروجی 60. ✅ چرا این تابع باحاله؟ - می‌تونی با هر لیست از اعداد کار کنی، مهم نیست چند تا عدد باشه. - می‌تونی از خروجی تابع تو محاسبات دیگه استفاده کنی. ✨ مثال روزمره: فرض کن داری یه اپلیکیشن برای مدیریت هزینه‌ها می‌سازی. یه تابع می‌نویسی که لیست خریدهای یه روز رو بگیره و جمعشون رو حساب کنه. ❓ تمرین: یه تابع بنویسید که یه لیست از اعداد بگیره و بزرگ‌ترین عدد رو برگردونه. تابع رو با دو لیست مختلف تست کنید. 💯 @PythonForYou 🧑‍💻👩‍💻
تابع و شرط‌ها 🎚 تابع‌ها با شرط‌ها (مثل if) خیلی خوب کار می‌کنن و می‌تونن تصمیم‌های هوشمندانه بگیرن. بیاید یه تابع بنویسیم که از شرط استفاده کنه! ✨ مثال: def check_age(age): if age >= 18: print("You're an adult!") # Print for adults else: print("You're a teen!") # Print for teens check_age(20) check_age(15) 🔹 خروجی: You're an adult! You're a teen! 🔰 این کد چیکار می‌کنه؟ تابع check_age یه عدد age می‌گیره. با شرط if چک می‌کنه که سن 18 یا بیشتره یا نه. بسته به شرط، پیغام مناسب چاپ می‌شه. ✅ چرا شرط تو تابع مهمه؟ - می‌تونی تابع رو طوری بنویسی که بسته به ورودی، رفتارهای مختلف داشته باشه. - باعث می‌شه برنامه‌ت انعطاف‌پذیرتر و واقعی‌تر باشه. ✨ مثال روزمره: فرض کن داری یه برنامه برای امتحانات می‌سازی. یه تابع می‌نویسی که نمره رو بگیره و بگه قبوله یا نه. ❓ تمرین: یه تابع بنویسید که یه عدد بگیره و بگه مثبت، منفی، یا صفره. تابع رو با چند عدد مختلف تست کنید. 💯 @PythonForYou 🧑‍💻👩‍💻
تابع و دیکشنری‌ها 📖 تابع‌ها با دیکشنری‌ها هم خیلی خوب کار می‌کنن و می‌تونن داده‌های پیچیده رو مدیریت کنن. بیاید یه تابع بنویسیم که با دیکشنری کار کنه! ✨ مثال: def print_dict(data): for key, value in data.items(): print(f"{key}: {value}") # Print key-value pairs print_dict({"name": "Ali", "age": 18, "city": "Tehran"}) 🔹 خروجی: name: Ali age: 18 city: Tehran 🔰 این کد چیکار می‌کنه؟ تابع print_dict یه دیکشنری می‌گیره. با حلقه، همه کلیدها و مقادیر رو چاپ می‌کنه. دیکشنری می‌تونه هر تعداد جفت کلید-مقدار داشته باشه. ✅ چرا این تابع باحاله؟ - می‌توتی اطلاعات ساختاریافته (مثل مشخصات یه نفر) رو راحت مدیریت کنی. - دیکشنری‌ها برای ذخیره داده‌های واقعی (مثل اطلاعات کاربر) خیلی کاربردین. ✨ مثال روزمره: فرض کن داری یه اپلیکیشن برای مدیریت دانش‌آموزا می‌سازی. یه تابع می‌نویسی که مشخصات هر دانش‌آموز (اسم، سن، نمره) رو از دیکشنری بگیره و چاپ کنه. ❓ تمرین: یه تابع بنویسید که یه دیکشنری بگیره و فقط کلیدها رو چاپ کنه. تابع رو با دو دیکشنری مختلف تست کنید. 💯 @PythonForYou 🧑‍💻👩‍💻
پروژه کوچیک: ماشین‌حساب با تابع 🚀 حالا که کلی درباره تابع‌ها یاد گرفتیم، بیاید یه پروژه کوچیک بسازیم: یه ماشین‌حساب ساده با تابع! این تابع قراره چند عملیات ریاضی رو انجام بده و نشون بده چطور همه‌چیز رو کنار هم می‌ذاریم. ✨ مثال: def calculator(a, b, operation): if operation == "add": return a + b # Return sum elif operation == "subtract": return a - b # Return difference elif operation == "multiply": return a * b # Return product elif operation == "divide": if b == 0: print("Cannot divide by zero!") # Handle division by zero return None return a / b # Return division else: print("Invalid operation!") # Handle invalid input return None print(calculator(10, 5, "add")) # Test addition print(calculator(10, 5, "divide")) # Test division print(calculator(10, 0, "divide")) # Test division by zero 🔹 خروجی: 15 2.0 Cannot divide by zero! None 🔰 این کد چیکار می‌کنه؟ تابع calculator سه پارامتر می‌گیره: دو عدد (a و b) و نوع عملیات (operation). با شرط if، عملیات مناسب (جمع، تفریق، ضرب، تقسیم) رو انجام می‌ده. برای تقسیم، چک می‌کنه که b صفر نباشه تا خطا نده. اگه عملیات نامعتبر باشه، پیغام خطا چاپ می‌کنه. ✅ چرا این پروژه باحاله؟ - نشون می‌ده چطور تابع می‌تونه چند کار مختلف رو مدیریت کنه. - ترکیب پارامترها، شرط‌ها، و مدیریت خطاها رو تو یه تابع واقعی می‌بینی. ✨ مثال روزمره: فرض کن داری یه اپلیکیشن ماشین‌حساب برای گوشی می‌سازی. این تابع می‌تونه هسته اصلی برنامه‌ت باشه! ❓ تمرین: تابع ماشین‌حساب رو گسترش بدید که عملیات "قدرت" (مثل a به توان b) رو هم ساپورت کنه. تابع رو با چند عملیات مختلف تست کنید. 💯 @PythonForYou 🧑‍💻👩‍💻
تو این پست قراره عمیق بریم تو دنیای توابع پایتون و همه‌چیز درباره نحوه ارسال پارامترها، توابع نام‌بی، و دامنه متغیرها رو با کلی مثال یاد بگیریم. انگار یه مدرس حرفه‌ای کنار شماست که قدم‌به‌قدم توضیح می‌ده! 🧑‍🏫 آماده‌اید که کدزنی‌تون رو به سطح بعدی ببرید؟ بریم شروع کنیم! 🚀 1. ارسال پارامترها به تابع‌ها 🎛 تو پایتون، می‌تونی به تابع‌ها پارامتر بدی تا کارای مختلف انجام بدن. پارامترها مثل مواد اولیه تو آشپزی‌ان: بسته به چیزی که می‌دی، نتیجه متفاوته! 🍳 بیاید انواع روش‌های ارسال پارامتر رو ببینیم. 💯 @PythonForYou 🧑‍💻👩‍💻