همراه با مثالهای عملی و نکات کلیدی برای برنامهنویسی حرفهای
در مسیر یادگیری برنامهنویسی، فقط دیدن فیلم کافی نیست. باید هر روز تمرین کنید، تصویر ذهنی از کدنویسی بسازید و ذهن خود را برای حل مسئله تربیت کنید.
برای نوشتن کدهای پایتون میتوانید از محیطهای مختلفی استفاده کنید:
Pydroid3 – مناسب برای برنامهنویسی پایتون در موبایلVS Code – محبوب، سبک و با افزونههای عالیAnaconda – مناسب برای پروژههای سنگین و کتابخانههای علمیبرای تعریف تابع از کلمه کلیدی def استفاده میکنیم. ساختار کلی تابع به این صورت است:
def python():
print("python is the very best")
python()
نکته مهم: اگر فقط تابع را تعریف کنید ولی صدا نزنید، هیچ چیزی اجرا نمیشود. برای اجرا باید اسم تابع را بنویسید.
def python():
print("python is the very best")
python()
python()
python()
با استفاده از پارامترها میتوانیم به تابع ورودی بدهیم. مثال:
def python(a):
print(f"{a} is the best")
python("palangi")
Docstring برای توضیح کارکرد تابع استفاده میشود. برخلاف کامنت (#)، این توضیحات به کاربر نیز نمایش داده میشود.
def python(a):
"""in tabe be shoma salam mikonad"""
print(f"hi {a}")
python("palangi")
print و returnprint – مقدار را روی صفحه نمایش میدهد (نمایش مستقیم).return – مقدار را برمیگرداند، ولی نمایش نمیدهد. قابل ذخیره در متغیر است.def hello():
return "hi"
result = hello()
print(result) # حالا نمایش داده میشود
انواع ارگومان: ضروری، کلمه کلیدی، پیشفرض، دلخواه
def main(name, age, lang):
print(f"hello {name}")
print(f"you are {age}")
print(f"and i know {lang}")
main(name="yasin", age=21, lang="english")
نکته مهم: متغیرهایی که مقدار پیشفرض میگیرند باید آخر لیست پارامترها نوشته شوند.
def main(name, lang, age=21):
print(f"hello {name}")
print(f"you are {age}")
print(f"and i know {lang}")
main("yasin", "english")
*args مقادیر اضافی را به صورت تاپل (tuple) ذخیره میکند. تاپل غیرقابل تغییر است: (434,43,3,5,321)
**kwargs مقادیر کلید-مقداری را به صورت دیکشنری (dictionary) ذخیره میکند: {'age':3, 'name':'yas'}
def main(*args, **kwargs):
print(args)
print(kwargs)
main(10, 15, 20, 25, 30, name="yasin", age=21)
a = 30
def main():
print(a)
main()
def main():
a = 30
print(a)
main()
توابعی که داخل خودشان، خودشان را صدا میزنند. مصرف حافظه بالایی دارند ولی برای برخی مسائل (مثل فاکتوریل) بسیار مناسبند.
def main(num):
if num > 0:
print(num)
main(num - 1)
main(10)
def fact(num):
if num == 1:
return 1
else:
return num * fact(num - 1)
print(fact(5)) # خروجی: 120
با استفاده از lambda میتوان توابع کوچک و بینام در یک خط نوشت.
def main(a, b):
return a + b
print(main(10, 10))
main = lambda a, b: a + b
print(main(10, 10))
lambda خیلی کوتاهتر و برای عملیات ساده عالی است.def ساخته میشود و برای اجرا باید صدا زده شود.return مقدار را برمیگردانیم، با print نمایش میدهیم.*args برای دریافت چند مقدار بدون کلید و **kwargs برای دریافت مقادیر کلید-مقداری مناسب است.lambda برای عملیات سریع و تکخطی مفیدند.