eitaa logo
پایتون برای شما
107 دنبال‌کننده
29 عکس
0 ویدیو
25 فایل
جایی برای یادگیری پایتون 👨‍💻👩‍💻 ارتباط با مدرس: @Ali_Reza_Noorbakhsh
مشاهده در ایتا
دانلود
📱 4 پرامپت ChatGPT برای مشورت با 4 نابغه تاریخ 📰میخوای با دیوید گاگینز رو در رو صحبت کنی؟ یا بشینی پای صحبت های چارلی مانگر؟ یا حتی گفت و گو با متخصص رهبری و هدف یعنی سایمون سینک؟! 1️⃣ دیوید گاگینز - راز دردناک رشد بی‌وقفه • مثل دیوید گاگینز فکر کن نماد تاب آوری و غلبه بر محدودیتها به من نشون بده افراد خارق العاده چطور از حد خودشون عبور میکنن ذهن باورها و رفتارهاشون رو تحلیل کن حتی وقتی شرایط سخته و نا امید کننده ست. مثال های واقعی بیار و اگه لازمه با حقیقت های ناراحت کننده منو روبرو کن ‌ 🔢 چارلی مانگر - طرز فکر خارق‌العاده‌ها • مثل چارلی مانگر فکر کن استاد مدلهای ذهنی ۵ مدل ذهنی جدید و خاص بساز که تصمیم گیری ها مو ساده کنه به من کمک کن آدمها رو بهتر بفهمم از اشتباهات درس بگیرم و فرصت های رشد رو کشف کنم. این مدل ها باید هم ساده باشن هم آنقدر قوی که سبک فکرم رو برای همیشه عوض کنن ‌ 🔢 سایمون سینک - ذهنیت میراث ساز • مثل «سایمون سینک فکر کن متخصص رهبری و هدف. هدف من فقط رشد نیست میخوام چیزی بسازم که اثر موندگار داشته باشه به من ذهنیتی یاد بده که تاثیر نفوذ و درآمدم رو چند برابر کنه از تاکتیک ها فراتر برو و تغییرات ذهنی ای رو نشونم بده که یه رهبر واقعی رو از بقیه متمایز می کنه. ‌ 🔢 وارن بافت - نقشه ثروت آینده من • مثل وارن بافت فکر کن بزرگترین سرمایه گذار دنیا خودم رو در ۱۰ سال آینده تصور کن با ذهنیتی مثل اون نسخه از من چه innovation يا abundance leadership چیزهایی رو بلده؟ چی رو یاد گرفته و چی رو رها کرده بر اساس این ذهنیت یک برنامه تمرینی بساز که باعث بشه من غیر قابل جایگزین در بازار باشم ‌ 💯 @PythonForYou 🧑‍💻👩‍💻
تابع تو پایتون چیه و چرا باید بلدش باشیم؟ 🤔 امروز قراره با یکی از مهم‌ترین ابزارهای پایتون آشنا بشیم: توابع! تابع مثل یه ماشین جادویی تو برنامه‌نویسیه. یه سری دستور می‌نویسی، یه اسم براش انتخاب می‌کنی، و هر وقت لازم شد صداش می‌کنی تا کارتو انجام بده. انگار یه دستیار خفن داری که همیشه آماده‌ست! 🤖 فکر کن تو یه برنامه داری که باید چند بار یه پیغام خاص (مثلاً "Welcome to coding!") رو چاپ کنی. اگه بخوای هر بار print بنویسی، کدت شلوغ می‌شه و اگه بخوای پیغامو عوض کنی، باید همه‌جا رو تغییر بدی. 😣 با تابع، فقط یه بار کد رو می‌نویسی و هر جا لازم شد صداش می‌کنی. اینجوری هم وقتت ذخیره می‌شه، هم کدت تمیز و مرتب می‌مونه. ✨تو پایتون، تابع با کلمه def تعریف می‌شه. بیاید یه مثال ساده ببینیم: def say_welcome(): print("Welcome to coding! :D") # Print a welcome message say_welcome() say_welcome() 🔹 خروجی: Welcome to coding! :D Welcome to coding! :D 🔰 این کد چیکار می‌کنه؟ تابع say_welcome رو تعریف کردیم که یه پیغام چاپ می‌کنه. دو بار صداش کردیم، پس پیغام دو بار چاپ می‌شه. اگه بخوام پیغام رو به "Let's code!" تغییر بدم، فقط یه خط تو تابع عوض می‌شه. ✅ چرا تابع مهمه؟ - صرفه‌جویی تو وقت: به‌جای نوشتن چندباره یه کد، یه تابع می‌نویسی و صداش می‌کنی. - کد خواناتر: برنامه‌ت مثل یه کتاب مرتب می‌شه که همه راحت می‌فهمنش. - آسون برای تغییر: اگه بخوای چیزی رو عوض کنی، فقط تو تابع تغییر می‌دی، نه کل برنامه. ✨ مثال روزمره: فرض کن تو یه کافی‌شاپ کار می‌کنی و هر روز باید یه قهوه خاص درست کنی. به‌جای اینکه هر بار مراحل (مثل آسیاب قهوه، دم کردن، اضافه کردن شکر) رو از اول بنویسی، یه دستورالعمل به اسم make_coffee می‌نویسی و فقط صداش می‌کنی. ☕️ ❓ تمرین: یه تابع بنویسید که یه پیغام خوشامدگویی با اسم خودتون چاپ کنه (مثلاً "Hey Ali, you're a coding star!"). تابع رو سه بار صدا کنید. 💯 @PythonForYou 🧑‍💻👩‍💻
چرا تابع‌ها قلب برنامه‌نویسی‌ان؟ 🛠 حالا که فهمیدیم تابع چیه، بیاید ببینیم چرا انقدر تو برنامه‌نویسی مهم‌ان. تابع‌ها مثل یه سوپرقهرمانن که کدت رو نجات می‌دن! 🦸‍♂️ کمک می‌کنن برنامه‌ت تمیز، مرتب، و قابل‌استفاده دوباره باشه. ✅ مزایای تابع‌ها: - تکرار کمتر: به‌جای کپی کردن یه کد چند بار، یه تابع می‌نویسی و کار تمومه. - خطای کمتر: اگه یه اشتباه تو کدت باشه، فقط تو تابع درستش می‌کنی، نه تو صد جای برنامه. - ماژولار بودن: تابع‌ها کدت رو تکه‌تکه می‌کنن، مثل قطعات پازل. 🧩 اینجوری برنامه‌ت خواناتر و قابل‌مدیریته. - استفاده چندباره: یه تابع خوب می‌تونی تو پروژه‌های دیگه هم استفاده کنی. ✨ مثال: def motivate_me(): print("You're doing awesome, keep it up! 🚀") # Print a motivational message motivate_me() motivate_me() motivate_me() خروجی: You're doing awesome, keep it up! 🚀 You're doing awesome, keep it up! 🚀 You're doing awesome, keep it up! 🚀 🔰 این کد چیکار می‌کنه؟ تابع motivate_me یه پیغام انگیزشی چاپ می‌کنه. سه بار صداش کردیم، پس سه بار چاپ می‌شه. اگه بخوام پیغامو به "You rock!" تغییر بدم، فقط یه خط تو تابع عوض می‌شه. ✨ بدون تابع چی می‌شد؟ بدون تابع، باید اینجوری می‌نوشتی: print("You're doing awesome, keep it up! 🚀") print("You're doing awesome, keep it up! 🚀") print("You're doing awesome, keep it up! 🚀") حالا اگه بخوای پیغامو عوض کنی، باید سه جا تغییر بدی. با تابع، فقط یه جا! 😎 ✨ مثال واقعی: فرض کن داری یه وبسایت می‌سازی که هر بار کاربر وارد می‌شه، یه پیغام خوشامدگویی می‌بینه. با تابع، فقط یه بار کد خوشامدگویی رو می‌نویسی و هر بار صداش می‌کنی. ❓ تمرین: یه تابع بنویسید که یه پیغام انگیزشی (مثلاً "You can achieve anything!") رو ۴ بار چاپ کنه. 💯 @PythonForYou 🧑‍💻👩‍💻
پارامترها تو تابع‌ها چطور کار می‌کنن؟ 🎛 حالا که تابع‌های ساده رو یاد گرفتیم، بیاید یه قدم جلوتر بریم. تابع‌ها می‌تونن پارامتر بگیرن، یعنی ورودی‌هایی که بهشون می‌دی تا کارای مختلف انجام بدن. مثل وقتی تو یه دستگاه اسموتی‌ساز، میوه‌های مختلف می‌ریزی و اسموتی‌های متفاوت می‌گیری! 🍓🍌 ✨ پارامترها به تابع اجازه می‌دن با داده‌های مختلف کار کنن. مثلاً اگه بخوای یه تابع بسازی که دو عدد رو جمع کنه: def add_numbers(a, b): print(a + b) # Print the sum of two numbers add_numbers(5, 3) add_numbers(10, 20) 🔹 خروجی: 8 30 🔰 این کد چیکار می‌کنه؟ - تابع add_numbers دو پارامتر a و b می‌گیره. - هر بار که تابع رو صدا می‌کنی، عددایی که می‌دی (مثل 5 و 3) جای a و b می‌شینن و تابع جمعشون رو چاپ می‌کنه. - تو مثال بالا، اول 5+3=8 و بعد 10+20=30 چاپ شد. ✨ یه مثال باحال‌تر: فرض کن می‌خوای یه تابع بسازی که یه پیام شخصی‌سازی‌شده به کاربر نشون بده: def greet(name): print(f"Hey {name}, you're a coding pro!") # Print a personalized message greet("Ali") greet("Sara") 🔹 خروجی: Hey Ali, you're a coding pro! Hey Sara, you're a coding pro! ✅ نکته‌های کلیدی: - پارامترها می‌تونن هر نوع داده‌ای باشن: عدد، رشته، لیست، یا حتی یه تابع دیگه! - موقع صدا کردن تابع، باید به همون تعداد پارامتر ورودی بدی و ترتیبشون درست باشه. - اسم پارامترها رو معنادار انتخاب کن (مثل name به‌جای x) تا کدت خوانا باشه. 🛑 مثال اشتباه: greet() # Error! TypeError: greet() missing 1 required positional argument: 'name' این خطا چون تابع greet یه پارامتر لازم داره، ولی ما چیزی بهش ندادیم. ✨ مثال روزمره: فکر کن داری یه اپلیکیشن برای سفارش غذا می‌سازی. یه تابع می‌نویسی که نوع غذا و تعدادش رو به‌عنوان پارامتر بگیره و سفارش رو چاپ کنه. اینجوری هر کاربر می‌تونه غذای خودشو سفارش بده! ❓ تمرین: یه تابع بنویسید که دو عدد بگیره و ضربشون رو چاپ کنه. تابع رو با سه جفت عدد مختلف (مثلاً 4 و 5، 10 و 2، 3 و 7) صدا کنید. 💯 @PythonForYou 🧑‍💻👩‍💻
تابع‌ها و مقدار بازگشتی (return) چطور کار می‌کنن؟ 🎁 حالا که پارامترها رو یاد گرفتیم، بیاید یه ویژگی باحال دیگه از تابع‌ها ببینیم: مقدار بازگشتی یا return. تابع‌ها می‌تونن یه چیزی بهت برگردونن، مثل وقتی یه دستگاه بستنی‌ساز بهت یه بستنی خوشمزه می‌ده! 🍦 ✨ با return می‌تونی نتیجه کار تابع رو ذخیره کنی و بعداً باهاش کار کنی. مثلاً: def multiply(a, b): return a * b # Return the product of two numbers result = multiply(4, 5) print(result) # Print the stored result 🔹 خروجی: 20 🔰 این کد چیکار می‌کنه؟ تابع multiply دو عدد a و b رو می‌گیره و ضربشون رو با return برمی‌گردونه. نتیجه (20) تو متغیر result ذخیره می‌شه و بعد چاپ می‌شه. می‌تونی از result تو محاسبات دیگه هم استفاده کنی! 📌 چرا return مهمه؟ بدون return، تابع فقط کارشو انجام می‌ده (مثل چاپ یه پیغام) و چیزی بهت نمی‌ده. با return، می‌تونی خروجی تابع رو ذخیره کنی و تو برنامه‌ت باهاش کار کنی. ✨ یه مثال واقعی: فرض کن داری یه برنامه برای فروشگاه آنلاین می‌سازی. یه تابع می‌نویسی که تخفیف یه محصول رو حساب کنه و قیمت نهایی رو برگردونه: def calculate_discount(price, discount_percent): final_price = price - (price * discount_percent / 100) return final_price # Return the discounted price price = calculate_discount(1000, 20) print(f"Final price: {price}") # Print the final price 🔹 خروجی: Final price: 800.0 📌 نکته: اگه تابع return نداشته باشه، پایتون به‌صورت پیش‌فرض None برمی‌گردونه. مثلاً: pythondef say_hi(): print("Hi, coder!") # Just print, no return result = say_hi() print(result) # Print what the function returns 🔹 خروجی: Hi, coder! None ✨ مثال روزمره: فکر کن داری یه اپلیکیشن فیتنس می‌سازی. یه تابع می‌نویسی که کالری مصرف‌شده تو یه ورزش رو حساب کنه و برگردونه تا بتونی تو برنامه‌ت ازش استفاده کنی. ❓ تمرین: یه تابع بنویسید که دو عدد بگیره، تفریقشون کنه و نتیجه رو برگردونه. نتیجه رو تو یه متغیر ذخیره کنید و با دو جفت عدد مختلف تست کنید. 💯 @PythonForYou 🧑‍💻👩‍💻
تابع بدون return چه فرقی داره؟ 🤔 تا حالا دیدیم که تابع‌ها می‌تونن با return یه خروجی بهمون بدن. اما بعضی وقتا تابع فقط یه کار انجام می‌ده (مثل چاپ یه پیغام) و چیزی برنمی‌گردونه. بیاید ببینیم اینا چطور کار می‌کنن! ✨ مثال: def cheer_up(): print("You're unstoppable, keep coding! :D") # Print a cheer message cheer_up() print(cheer_up()) # Try to print what the function returns 🔹 خروجی: You're unstoppable, keep coding! :D You're unstoppable, keep coding! :D None 🔰 این کد چیکار می‌کنه؟ تابع cheer_up یه پیغام انگیزشی چاپ می‌کنه و return نداره. وقتی تابع رو صدا می‌کنیم، پیغام چاپ می‌شه. اما اگه بخوایم نتیجه تابع رو چاپ کنیم (print(cheer_up()))، چون چیزی برنمی‌گردونه، پایتون None چاپ می‌کنه. ✅ کی از تابع بدون return استفاده کنیم؟ - وقتی فقط می‌خوای یه کار انجام بشه، مثل چاپ پیغام، ذخیره تو فایل، یا نمایش یه گرافیک. - اگه نیازی به ذخیره خروجی تابع نداری، return لازم نیست. 💢 مقایسه: def add_with_return(a, b): return a + b # Return the sum def add_without_return(a, b): print(a + b) # Just print the sum result1 = add_with_return(3, 4) result2 = add_without_return(3, 4) print(f"With return: {result1}") # Print stored result print(f"Without return: {result2}") # Print what the function returns 🔹 خروجی: 7 With return: 7 Without return: None 💥 نکته‌های کلیدی: - تابع با return یه خروجی بهت می‌ده که می‌تونی ذخیره کنی یا باهاش کار کنی. - تابع بدون return فقط کارشو انجام می‌ده و None برمی‌گردونه. - اگه بخوای خروجی تابع رو تو محاسبات دیگه استفاده کنی، حتماً باید return داشته باشه. ✨ مثال روزمره: فرض کن داری یه برنامه برای مدیریت تکالیف می‌سازی. یه تابع می‌نویسی که یه پیغام یادآوری (مثل "Homework due tomorrow!") چاپ کنه. چون فقط می‌خوای پیغام رو نشون بده، نیازی به return نداره. ❓ تمرین: یه تابع بنویسید که یه پیغام انگیزشی چاپ کنه (مثلاً "You're a coding rockstar!") و چیزی برنگردونه. تابع رو صدا کنید و نتیجه‌ش رو چاپ کنید تا ببینید None می‌گیرید. 💯 @PythonForYou 🧑‍💻👩‍💻
تابع با چند پارامتر چطوره؟ 🎉 تا حالا تابع‌هایی با یک یا دو پارامتر دیدیم. اما تابع‌ها می‌تونن کلی پارامتر بگیرن! مثلاً می‌تونی یه تابع بسازی که اطلاعات یه نفر (مثل اسم، سن، شهر) رو بگیره و یه پیغام مرتب چاپ کنه. ✨ مثال: def print_info(name, age, city): print(f"Name: {name}, Age: {age}, City: {city}") # Print user info print_info("Ali", 18, "Tehran") print_info("Sara", 20, "Shiraz") 🔹 خروجی: Name: Ali, Age: 18, City: Tehran Name: Sara, Age: 20, City: Shiraz 🔰 این کد چیکار می‌کنه؟ تابع print_info سه پارامتر می‌گیره: name (رشته)، age (عدد)، و city (رشته). هر بار که تابع رو صدا می‌کنی، اطلاعات مختلف می‌دی و تابع یه پیغام قشنگ چاپ می‌کنه. پارامترها می‌تونن نوع‌های مختلف داشته باشن، فقط باید ترتیبشون موقع صدا کردن درست باشه. 📌 نکته‌های مهم: - ترتیب پارامترها خیلی مهمه! اگه ترتیب رو اشتباه کنی، خروجی به‌هم‌ریخته می‌شه. - اسم پارامترها رو معنادار انتخاب کن تا کدت خوانا باشه. ✨ مثال اشتباه: print_info(18, "Ali", "Tehran") # Wrong order! خروجی: Name: 18, Age: Ali, City: Tehran ✨ مثال درست با نام‌گذاری پارامترها: می‌تونی موقع صدا کردن تابع، اسم پارامترها رو مشخص کنی تا ترتیب مهم نباشه: print_info(age=18, name="Ali", city="Tehran") # Works fine! ✨ مثال روزمره: فرض کن داری یه اپلیکیشن برای ثبت‌نام تو یه دوره برنامه‌نویسی می‌سازی. یه تابع می‌نویسی که اطلاعات دانشجو (اسم، سن، شهر، زبان مورد علاقه) رو بگیره و نشون بده. ❓ تمرین: یه تابع بنویسید که چهار پارامتر بگیره: اسم، سن، شهر، و غذای مورد علاقه. تابع باید یه پیغام قشنگ چاپ کنه (مثلاً "Ali, 18, from Tehran, loves pizza!"). تابع رو با دو مجموعه اطلاعات مختلف صدا کنید. 💯 @PythonForYou 🧑‍💻👩‍💻
پارامترهای پیش‌فرض تو تابع‌ها چیه؟ 🎛 یه ویژگی خفن تو تابع‌ها اینه که می‌تونی برای پارامترهاشون مقدار پیش‌ferض بذاری. یعنی اگه موقع صدا کردن تابع، به اون پارامتر چیزی ندی، تابع از مقدار پیش‌فرض استفاده می‌کنه. مثل وقتی تو یه دستگاه قهوه‌ساز، شکر رو به‌صورت پیش‌فرض روی "متوسط" تنظیم می‌کنی! ☕️ ✨ مثال: def greet(name="Guest"): print(f"Hello {name}, welcome to Python!") # Print a greeting greet("Ali") # Use provided name greet() # Use default name 🔹 خروجی: Hello Ali, welcome to Python! Hello Guest, welcome to Python! 🔰 این کد چیکار می‌کنه؟ تابع greet یه پارامتر name داره که مقدار پیش‌فرضش "Guest"ه. اگه موقع صدا کردن تابع، اسمی بدی (مثل "Ali")، از همون استفاده می‌کنه. اگه چیزی ندی، از مقدار پیش‌فرض ("Guest") استفاده می‌کنه. ✅ چرا پارامتر پیش‌فرض باحاله؟ - باعث می‌شه تابع انعطاف‌پذیرتر باشه. - اگه بعضی پارامترها معمولاً یه مقدار ثابت دارن، لازم نیست هر بار بنویسیشون. ✨ یه مثال واقعی: فرض کن داری یه برنامه برای رزرو رستوران می‌سازی. یه تابع می‌نویسی که تعداد نفرات رو بگیره، ولی اگه کسی تعداد نگفت، به‌صورت پیش‌فرض برای 2 نفر رزرو کنه: def book_table(name, people=2): print(f"Table for {people} reserved for {name}") # Print reservation info book_table("Sara", 4) book_table("Ali") 🔹 خروجی: Table for 4 reserved for Sara Table for 2 reserved for Ali 📌 نکته‌های مهم: - پارامترهای پیش‌فرض باید بعد از پارامترهای بدون پیش‌فرض تعریف بشن. مثلاً این اشتباهه: def wrong_func(name="Guest", age): # SyntaxError! print(name, age) - می‌تونی چند پارامتر پیش‌فرض داشته باشی، ولی ترتیب مهمه. ❓ تمرین: یه تابع بنویسید که دو پارامتر بگیره: اسم و پیام خوشامدگویی. پیام پیش‌فرض باشه "Welcome to coding!". تابع رو یه بار با اسم و پیام دلخواه، و یه بار فقط با اسم صدا کنید. 💯 @PythonForYou 🧑‍💻👩‍💻
تابع با تعداد پارامترهای متغیر (args) 🌟 یه وقتایی نمی‌دونی چند تا ورودی قراره به تابع بدی. اینجا *args به دادت می‌رسه! این یه ویژگی خفنه که به تابع اجازه می‌ده تعداد متغیر ورودی بگیره. مثل وقتی یه سبد میوه داری و می‌تونی هر چند تا میوه که بخوای بندازی توش! 🍎🍊🍇 ✨ مثال: def sum_numbers(*args): total = 0 for num in args: total += num return total # Return the sum of all numbers print(sum_numbers(1, 2, 3)) # Sum of 3 numbers print(sum_numbers(1, 2, 3, 4, 5)) # Sum of 5 numbers 🔹 خروجی: 6 15 🔰 این کد چیکار می‌کنه؟ - این *args به تابع اجازه می‌ده هر تعداد ورودی رو به‌صورت یه لیست بگیره. - تابع sum_numbers همه اعداد ورودی رو جمع می‌کنه و نتیجه رو برمی‌گردونه. - می‌تونی 3 تا عدد، 5 تا عدد، یا حتی هیچی بهش بدی! ✨ یه مثال باحال‌تر: فرض کن داری یه برنامه برای محاسبه میانگین نمرات می‌سازی: def average_scores(*scores): if not scores: # Check if no scores provided return 0 total = sum(scores) count = len(scores) return total / count # Return the average print(average_scores(10, 15, 20)) # Average of 3 scores print(average_scores(5, 10, 15, 20, 25)) # Average of 5 scores 🔹 خروجی: 15.0 15.0 📌 نکته‌های کلیدی: - در واقع *args یه لیست از ورودی‌هاست که می‌تونی باهاش مثل لیست کار کنی (مثل حلقه زدن). - اگه هیچ ورودی ندی، *args یه لیست خالیه. - می‌تونی *args رو با پارامترهای معمولی ترکیب کنی، ولی *args باید آخر تعریف بشه. ✨ مثال ترکیبی: def print_scores(student, *scores): print(f"{student}'s scores: {scores}") # Print student and their scores return average_scores(*scores) # Return average using previous function print(print_scores("Ali", 10, 15, 20)) 🔹 ✨ خروجی: Ali's scores: (10, 15, 20) 15.0 مثال روزمره: فکر کن داری یه اپلیکیشن برای مدیریت خرید می‌سازی. یه تابع می‌نویسی که قیمت آیتم‌های خرید رو بگیره و جمعشون رو حساب کنه، مهم نیست چند تا آیتم باشه! ❓ تمرین: یه تابع بنویسید که تعداد متغیر عدد بگیره و بزرگ‌ترین عدد رو برگردونه. تابع رو با چند مجموعه ورودی مختلف تست کنید (مثلاً 3 عدد، 5 عدد). 💯 @PythonForYou 🧑‍💻👩‍💻
تابع‌های تو در تو (Nested Functions) 🔄 یه ویژگی باحال تو پایتون اینه که می‌تونی تابع‌ها رو تو دل همدیگه بذاری! مثل عروسک‌های ماتریوشکا که یه عروسک تو عروسک دیگه‌ست. 🪆 به این می‌گن تابع‌های تو در تو. ✨ مثال: def outer_function(): def inner_function(): print("I'm inside the outer function!") # Print from inner function inner_function() # Call inner function outer_function() 🔹 خروجی: I'm inside the outer function! 🔰 این کد چیکار می‌کنه؟ تابع outer_function یه تابع داخلی به اسم inner_function داره. تابع داخلی فقط داخل تابع خارجی کار می‌کنه و نمی‌تونی مستقیم صداش کنی. وقتی outer_function رو صدا می‌کنی، اون تابع داخلی رو اجرا می‌کنه. ✅ چرا از تابع تو در تو استفاده کنیم؟ - سازمان‌دهی بهتر: می‌تونی کدهای مرتبط رو توی یه تابع بزرگ‌تر گروه‌بندی کنی. - محافظت از کد: تابع داخلی فقط تو تابع خارجی قابل‌استفاده‌ست، پس از بیرون نمی‌تونن بهش دسترسی پیدا کنن. - کارهای پیچیده: برای کارهایی که نیاز به چند مرحله دارن، تابع‌های داخلی می‌تونن کمک کنن. ✨ یه مثال واقعی: فرض کن داری یه برنامه برای محاسبه مالیات می‌سازی. یه تابع خارجی داری که مالیات کل رو حساب می‌کنه، و یه تابع داخلی که یه بخش خاص (مثلاً مالیات پایه) رو محاسبه می‌کنه: def calculate_tax(income): def base_tax(): return income * 0.1 # Calculate 10% base tax total_tax = base_tax() + 100 # Add fixed amount return total_tax # Return final tax print(calculate_tax(1000)) # Calculate tax for 1000 🔹 خروجی: 200.0 📌نکته: تابع داخلی می‌تونه به متغیرهای تابع خارجی دسترسی داشته باشه (مثل income تو مثال بالا). ❓ تمرین: یه تابع خارجی بنویسید که یه عدد بگیره و یه تابع داخلی داشته باشه که مربع اون عدد رو چاپ کنه. تابع خارجی باید مکعب عدد رو برگردونه. تابع رو با دو عدد مختلف تست کنید. 💯 @PythonForYou 🧑‍💻👩‍💻
دامنه متغیرها تو تابع‌ها (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 🧑‍💻👩‍💻