مبانی پایتون: متغیرها، توابع، حلقه‌ها و شرط‌ها

فهرست مطالب

“`html





مبانی پایتون: متغیرها، توابع، حلقه‌ها و شرط‌ها


مبانی پایتون: متغیرها، توابع، حلقه‌ها و شرط‌ها

پایتون، زبانی قدرتمند و همه‌کاره، به دلیل خوانایی بالا و سینتکس ساده، به یکی از محبوب‌ترین زبان‌های برنامه‌نویسی در دنیا تبدیل شده است. از توسعه وب و علم داده گرفته تا هوش مصنوعی و اسکریپت‌نویسی سیستم، پایتون کاربردهای فراوانی دارد. در این مقاله، به بررسی عمیق مبانی پایتون، شامل متغیرها، انواع داده، توابع، حلقه‌ها و شرط‌ها می‌پردازیم. هدف ما ارائه یک راهنمای جامع برای برنامه نویسانی است که قصد دارند پایه‌های خود را در پایتون مستحکم کنند و درک عمیق‌تری از این زبان به دست آورند.

1. متغیرها و انواع داده در پایتون

متغیرها در پایتون، نام‌هایی هستند که به مکان‌هایی در حافظه اشاره می‌کنند و برای ذخیره داده‌ها استفاده می‌شوند. بر خلاف بسیاری از زبان‌های دیگر، پایتون نیازی به تعریف صریح نوع متغیر ندارد. نوع متغیر به طور خودکار بر اساس مقدار اختصاص داده شده به آن تعیین می‌شود. این ویژگی، که به عنوان «تایپ پویا» شناخته می‌شود، انعطاف‌پذیری زیادی به پایتون می‌بخشد، اما در عین حال نیازمند توجه بیشتر به نوع داده‌ها در هنگام کدنویسی است.

1.1. انواع داده پایه

پایتون دارای انواع داده پایه متعددی است که عبارتند از:

  • اعداد صحیح (Integers): اعدادی بدون اعشار مانند 10، -5 و 0.
  • اعداد اعشاری (Floating-point numbers): اعدادی با اعشار مانند 3.14، -2.5 و 0.0.
  • رشته‌ها (Strings): دنباله‌ای از کاراکترها که بین علامت‌های نقل قول (تکی یا دوتایی) قرار می‌گیرند مانند "Hello, World!" و 'Python'.
  • بولی (Booleans): مقادیر True یا False که برای نمایش مقادیر منطقی استفاده می‌شوند.

 x = 10  # integer
 y = 3.14  # float
 name = "Alice"  # string
 is_valid = True  # boolean
 

1.2. انواع داده مرکب

علاوه بر انواع داده پایه، پایتون دارای انواع داده مرکب قدرتمندی است که برای ذخیره مجموعه‌ای از داده‌ها استفاده می‌شوند:

  • لیست‌ها (Lists): دنباله‌ای مرتب و قابل تغییر از عناصر که می‌توانند از انواع مختلف باشند.
  • تاپل‌ها (Tuples): دنباله‌ای مرتب و غیرقابل تغییر از عناصر که شبیه لیست‌ها هستند.
  • دیکشنری‌ها (Dictionaries): مجموعه‌ای از جفت‌های کلید-مقدار که برای ذخیره داده‌ها به صورت ساختاریافته استفاده می‌شوند.
  • مجموعه‌ها (Sets): مجموعه‌ای نامرتب از عناصر منحصربه‌فرد.

 my_list = [1, 2, 3, "apple", True]  # list
 my_tuple = (1, 2, 3, "apple", True)  # tuple
 my_dict = {"name": "Bob", "age": 30, "city": "New York"}  # dictionary
 my_set = {1, 2, 3, 4, 5}  # set
 

1.3. تخصیص و انتساب متغیرها

در پایتون، تخصیص یک مقدار به یک متغیر با استفاده از عملگر = انجام می‌شود. پایتون از یک مدل «ارجاعی» برای متغیرها استفاده می‌کند، به این معنی که متغیرها به جای ذخیره مستقیم مقدار، به یک شیء در حافظه اشاره می‌کنند. این مفهوم درک رفتارهای خاصی مانند تغییرپذیری (mutability) انواع داده را ضروری می‌سازد.


 a = 5
 b = a  # b به همان شیء اشاره می‌کند که a به آن اشاره دارد.
 b = 10  # b اکنون به یک شیء جدید با مقدار 10 اشاره می‌کند. a همچنان 5 است.
 

2. توابع در پایتون: سازماندهی و استفاده مجدد از کد

توابع، بلوک‌هایی از کد هستند که برای انجام یک وظیفه خاص طراحی شده‌اند. استفاده از توابع به سازماندهی بهتر کد، جلوگیری از تکرار و استفاده مجدد از کد کمک می‌کند. پایتون دارای توابع داخلی (built-in) متعددی است و همچنین امکان تعریف توابع سفارشی را فراهم می‌کند.

2.1. تعریف توابع

برای تعریف یک تابع در پایتون، از کلمه کلیدی def استفاده می‌شود. سینتکس کلی تعریف تابع به صورت زیر است:


 def function_name(parameters):
  """Optional docstring"""
  # Function body
  return [expression]
 
  • def: کلمه کلیدی برای تعریف تابع.
  • function_name: نام تابع که باید مطابق قراردادهای نام‌گذاری پایتون انتخاب شود.
  • parameters: پارامترهای ورودی تابع که در داخل پرانتز قرار می‌گیرند.
  • """Optional docstring""": رشته مستندات (docstring) که توضیحاتی درباره عملکرد تابع ارائه می‌دهد.
  • # Function body: بدنه تابع که شامل کدهایی است که باید اجرا شوند.
  • return [expression]: دستور return برای بازگرداندن یک مقدار از تابع استفاده می‌شود. اگر دستور return وجود نداشته باشد، تابع مقدار None را برمی‌گرداند.

 def greet(name):
  """This function greets the person passed in as a parameter."""
  print("Hello, " + name + "!")
 
 greet("Alice")  # Output: Hello, Alice!
 

2.2. پارامترها و آرگومان‌ها

پارامترها، متغیرهایی هستند که در تعریف تابع مشخص می‌شوند و آرگومان‌ها، مقادیری هستند که هنگام فراخوانی تابع به پارامترها ارسال می‌شوند. پایتون از انواع مختلفی از پارامترها پشتیبانی می‌کند:

  • پارامترهای موقعیتی (Positional arguments): آرگومان‌هایی که بر اساس موقعیت خود به پارامترها اختصاص داده می‌شوند.
  • پارامترهای کلیدواژه‌ای (Keyword arguments): آرگومان‌هایی که با استفاده از نام پارامتر به آن اختصاص داده می‌شوند.
  • مقادیر پیش‌فرض (Default values): مقادیری که به پارامترها اختصاص داده می‌شوند و در صورت عدم ارائه آرگومان برای آن پارامتر، استفاده می‌شوند.
  • *args و **kwargs: برای ارسال تعداد نامشخصی از آرگومان‌های موقعیتی و کلیدواژه‌ای به تابع استفاده می‌شوند.

 def describe_person(name, age=30, city="Unknown"):
  """Describes a person with their name, age, and city."""
  print(f"Name: {name}, Age: {age}, City: {city}")
 
 describe_person("Charlie")  # Output: Name: Charlie, Age: 30, City: Unknown
 describe_person("David", age=40, city="London")  # Output: Name: David, Age: 40, City: London
 

2.3. محدوده متغیرها (Scope)

محدوده متغیرها به بخشی از کد اشاره دارد که در آن متغیر قابل دسترسی است. پایتون دارای دو نوع محدوده اصلی است:

  • محدوده محلی (Local scope): متغیرهایی که در داخل یک تابع تعریف می‌شوند، فقط در داخل همان تابع قابل دسترسی هستند.
  • محدوده سراسری (Global scope): متغیرهایی که در خارج از هر تابعی تعریف می‌شوند، در کل برنامه قابل دسترسی هستند.

برای تغییر یک متغیر سراسری از داخل یک تابع، باید از کلمه کلیدی global استفاده کرد.


 global_var = 10
 
 def modify_global():
  global global_var
  global_var = 20
 
 modify_global()
 print(global_var)  # Output: 20
 

3. حلقه‌ها در پایتون: تکرار و اجرای مکرر کد

حلقه‌ها در پایتون برای تکرار یک بلوک از کد به تعداد مشخص یا تا زمانی که یک شرط خاص برقرار باشد، استفاده می‌شوند. پایتون دارای دو نوع حلقه اصلی است:

  • حلقه for: برای تکرار بر روی یک دنباله (مانند لیست، تاپل، رشته یا دیکشنری) استفاده می‌شود.
  • حلقه while: برای تکرار یک بلوک از کد تا زمانی که یک شرط خاص برقرار باشد، استفاده می‌شود.

3.1. حلقه for

حلقه for در پایتون برای پیمایش عناصر یک دنباله استفاده می‌شود. سینتکس کلی حلقه for به صورت زیر است:


 for item in sequence:
  # Code to be executed for each item
 

 fruits = ["apple", "banana", "cherry"]
 for fruit in fruits:
  print(fruit)
 # Output:
 # apple
 # banana
 # cherry
 

تابع range() یک دنباله از اعداد ایجاد می‌کند که اغلب در حلقه‌های for برای تکرار به تعداد مشخص استفاده می‌شود.


 for i in range(5):  # Generates numbers from 0 to 4
  print(i)
 # Output:
 # 0
 # 1
 # 2
 # 3
 # 4
 

3.2. حلقه while

حلقه while در پایتون برای تکرار یک بلوک از کد تا زمانی که یک شرط خاص برقرار باشد، استفاده می‌شود. سینتکس کلی حلقه while به صورت زیر است:


 while condition:
  # Code to be executed as long as the condition is true
 

 count = 0
 while count < 5:
  print(count)
  count += 1
 # Output:
 # 0
 # 1
 # 2
 # 3
 # 4
 

3.3. دستورات break و continue

دستور break برای خروج از حلقه به طور کامل و دستور continue برای پرش از تکرار فعلی و رفتن به تکرار بعدی استفاده می‌شوند.


 for i in range(10):
  if i == 5:
  break  # Exit the loop when i is 5
  print(i)
 # Output:
 # 0
 # 1
 # 2
 # 3
 # 4
 
 for i in range(10):
  if i % 2 == 0:
  continue  # Skip even numbers
  print(i)
 # Output:
 # 1
 # 3
 # 5
 # 7
 # 9
 

4. شرط‌ها در پایتون: تصمیم‌گیری و اجرای شرطی کد

عبارات شرطی در پایتون برای اجرای یک بلوک از کد تنها در صورتی که یک شرط خاص برقرار باشد، استفاده می‌شوند. پایتون از دستورات if، elif (مخفف "else if") و else برای ایجاد ساختارهای شرطی استفاده می‌کند.

4.1. دستور if

دستور if ساده‌ترین شکل عبارت شرطی است و برای اجرای یک بلوک از کد در صورت درست بودن یک شرط استفاده می‌شود. سینتکس کلی دستور if به صورت زیر است:


 if condition:
  # Code to be executed if the condition is true
 

 age = 20
 if age >= 18:
  print("You are an adult.")
 # Output: You are an adult.
 

4.2. دستور if-else

دستور if-else برای اجرای یک بلوک از کد در صورت درست بودن شرط و اجرای یک بلوک دیگر از کد در صورت نادرست بودن شرط استفاده می‌شود. سینتکس کلی دستور if-else به صورت زیر است:


 if condition:
  # Code to be executed if the condition is true
 else:
  # Code to be executed if the condition is false
 

 age = 16
 if age >= 18:
  print("You are an adult.")
 else:
  print("You are a minor.")
 # Output: You are a minor.
 

4.3. دستور if-elif-else

دستور if-elif-else برای بررسی چندین شرط و اجرای بلوک کد مربوط به اولین شرطی که درست باشد، استفاده می‌شود. اگر هیچ‌کدام از شرط‌ها درست نباشند، بلوک کد مربوط به else اجرا می‌شود. سینتکس کلی دستور if-elif-else به صورت زیر است:


 if condition1:
  # Code to be executed if condition1 is true
 elif condition2:
  # Code to be executed if condition2 is true
 else:
  # Code to be executed if none of the conditions are true
 

 score = 85
 if score >= 90:
  print("Excellent!")
 elif score >= 80:
  print("Good!")
 elif score >= 70:
  print("Average")
 else:
  print("Needs Improvement")
 # Output: Good!
 

5. عملگرهای منطقی

عملگرهای منطقی برای ترکیب چندین شرط استفاده می‌شوند. پایتون از عملگرهای and، or و not پشتیبانی می‌کند.

  • and: اگر هر دو شرط درست باشند، مقدار True را برمی‌گرداند.
  • or: اگر حداقل یکی از شرط‌ها درست باشد، مقدار True را برمی‌گرداند.
  • not: مقدار شرط را معکوس می‌کند.

 age = 25
 has_license = True
 
 if age >= 18 and has_license:
  print("Can drive")
 else:
  print("Cannot drive")
 #Output: Can drive
 
 is_raining = False
 has_umbrella = True
 
 if is_raining or has_umbrella:
  print("Take protection")
 else:
  print("Enjoy the weather")
 #Output: Take protection
 
 is_adult = age >= 18
 if not is_adult:
  print("Still a minor")
 else:
  print("Adult")
 #Output: Adult
 

6. مثال‌های کاربردی

برای درک بهتر مفاهیم، به چند مثال کاربردی توجه کنید.

6.1. محاسبه فاکتوریل یک عدد

یک تابع برای محاسبه فاکتوریل یک عدد با استفاده از حلقه:


 def factorial(n):
  if n == 0:
  return 1
  else:
  result = 1
  for i in range(1, n + 1):
  result *= i
  return result
 
 print(factorial(5)) #Output: 120
 

6.2. تشخیص عدد اول

تشخیص اینکه یک عدد اول است یا خیر:


 def is_prime(n):
  if n <= 1:
  return False
  for i in range(2, int(n**0.5) + 1):
  if n % i == 0:
  return False
  return True
 
 print(is_prime(17)) #Output: True
 print(is_prime(4)) #Output: False
 

6.3. جستجو در لیست

جستجو برای یک عنصر خاص در یک لیست:


 def search_list(lst, target):
  for item in lst:
  if item == target:
  return True
  return False
 
 my_list = [10, 20, 30, 40, 50]
 print(search_list(my_list, 30)) #Output: True
 print(search_list(my_list, 60)) #Output: False
 

7. نکات پیشرفته و بهترین روش‌ها

برای نوشتن کد پایتون تمیز و کارآمد، رعایت نکات پیشرفته و بهترین روش‌ها ضروری است.

7.1. درک Comprehensionها

List comprehensions، Dictionary comprehensions و Set comprehensions روشی مختصر و کارآمد برای ایجاد لیست‌ها، دیکشنری‌ها و مجموعه‌ها هستند.


 #List comprehension
 squares = [x**2 for x in range(10)]
 print(squares) #Output: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
 
 #Dictionary comprehension
 square_dict = {x: x**2 for x in range(5)}
 print(square_dict) #Output: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
 
 #Set comprehension
 even_numbers = {x for x in range(10) if x % 2 == 0}
 print(even_numbers) #Output: {0, 2, 4, 6, 8}
 

7.2. استفاده از Generators

Generators توابعی هستند که به جای برگرداندن یک لیست کامل در حافظه، یک دنباله از مقادیر را به صورت تدریجی تولید می‌کنند. این روش برای کار با مجموعه‌های داده بزرگ بسیار کارآمد است.


 def even_generator(limit):
  n = 0
  while n <= limit:
  yield n
  n += 2
 
 for num in even_generator(10):
  print(num)
 #Output: 0 2 4 6 8 10
 

7.3. مدیریت خطاها با try-except

برای جلوگیری از کرش کردن برنامه در صورت بروز خطا، از بلاک‌های try-except استفاده کنید.


 try:
  result = 10 / 0
 except ZeroDivisionError:
  print("Cannot divide by zero")
 
 #Output: Cannot divide by zero
 

7.4. استفاده از مستندات (Docstrings)

همیشه برای توابع، کلاس‌ها و ماژول‌های خود مستندات مناسب بنویسید تا خوانایی و نگهداری کد بهبود یابد.


 def add(a, b):
  """
  This function adds two numbers.
  
  :param a: The first number.
  :param b: The second number.
  :return: The sum of a and b.
  """
  return a + b
 

7.5. پیروی از PEP 8

PEP 8 یک راهنمای سبک برای کد پایتون است که شامل قراردادهای نام‌گذاری، تورفتگی‌ها، فضای خالی و سایر جنبه‌های ظاهری کد است. پیروی از PEP 8 باعث می‌شود کد شما خواناتر و سازگارتر با سایر پروژه‌های پایتون باشد.

نتیجه‌گیری

در این مقاله، به بررسی مبانی پایتون شامل متغیرها، انواع داده، توابع، حلقه‌ها و شرط‌ها پرداختیم. درک این مفاهیم، پایه و اساس برنامه نویسی پایتون را تشکیل می‌دهد و برای توسعه برنامه‌های پیچیده‌تر ضروری است. با تمرین و استفاده از این مفاهیم در پروژه‌های عملی، می‌توانید مهارت‌های خود را در پایتون بهبود بخشید و به یک برنامه نویس حرفه‌ای تبدیل شوید. به یاد داشته باشید که پایتون زبانی پویا و در حال تکامل است، بنابراین همیشه به دنبال یادگیری مفاهیم جدید و به‌روزرسانی دانش خود باشید.



```

“تسلط به برنامه‌نویسی پایتون با هوش مصنوعی: آموزش کدنویسی هوشمند با ChatGPT”

قیمت اصلی 2.290.000 ریال بود.قیمت فعلی 1.590.000 ریال است.

"تسلط به برنامه‌نویسی پایتون با هوش مصنوعی: آموزش کدنویسی هوشمند با ChatGPT"

"با شرکت در این دوره جامع و کاربردی، به راحتی مهارت‌های برنامه‌نویسی پایتون را از سطح مبتدی تا پیشرفته با کمک هوش مصنوعی ChatGPT بیاموزید. این دوره، با بیش از 6 ساعت محتوای آموزشی، شما را قادر می‌سازد تا به سرعت الگوریتم‌های پیچیده را درک کرده و اپلیکیشن‌های هوشمند ایجاد کنید. مناسب برای تمامی سطوح با زیرنویس فارسی حرفه‌ای و امکان دانلود و تماشای آنلاین."

ویژگی‌های کلیدی:

بدون نیاز به تجربه قبلی برنامه‌نویسی

زیرنویس فارسی با ترجمه حرفه‌ای

۳۰ ٪ تخفیف ویژه برای دانشجویان و دانش آموزان