وبلاگ
مبانی پایتون: متغیرها، توابع، حلقهها و شرطها
فهرست مطالب
“تسلط به برنامهنویسی پایتون با هوش مصنوعی: آموزش کدنویسی هوشمند با ChatGPT”
"تسلط به برنامهنویسی پایتون با هوش مصنوعی: آموزش کدنویسی هوشمند با ChatGPT"
"با شرکت در این دوره جامع و کاربردی، به راحتی مهارتهای برنامهنویسی پایتون را از سطح مبتدی تا پیشرفته با کمک هوش مصنوعی ChatGPT بیاموزید. این دوره، با بیش از 6 ساعت محتوای آموزشی، شما را قادر میسازد تا به سرعت الگوریتمهای پیچیده را درک کرده و اپلیکیشنهای هوشمند ایجاد کنید. مناسب برای تمامی سطوح با زیرنویس فارسی حرفهای و امکان دانلود و تماشای آنلاین."
ویژگیهای کلیدی:
بدون نیاز به تجربه قبلی برنامهنویسی
زیرنویس فارسی با ترجمه حرفهای
۳۰ ٪ تخفیف ویژه برای دانشجویان و دانش آموزان
0 تا 100 عطرسازی + (30 فرمولاسیون اختصاصی حامی صنعت)
دوره فوق فشرده مکالمه زبان انگلیسی (ویژه بزرگسالان)
شمع سازی و عودسازی با محوریت رایحه درمانی
صابون سازی (دستساز و صنعتی)
صفر تا صد طراحی دارو
متخصص طب سنتی و گیاهان دارویی
متخصص کنترل کیفی شرکت دارویی
“`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”
"تسلط به برنامهنویسی پایتون با هوش مصنوعی: آموزش کدنویسی هوشمند با ChatGPT"
"با شرکت در این دوره جامع و کاربردی، به راحتی مهارتهای برنامهنویسی پایتون را از سطح مبتدی تا پیشرفته با کمک هوش مصنوعی ChatGPT بیاموزید. این دوره، با بیش از 6 ساعت محتوای آموزشی، شما را قادر میسازد تا به سرعت الگوریتمهای پیچیده را درک کرده و اپلیکیشنهای هوشمند ایجاد کنید. مناسب برای تمامی سطوح با زیرنویس فارسی حرفهای و امکان دانلود و تماشای آنلاین."
ویژگیهای کلیدی:
بدون نیاز به تجربه قبلی برنامهنویسی
زیرنویس فارسی با ترجمه حرفهای
۳۰ ٪ تخفیف ویژه برای دانشجویان و دانش آموزان