آموزش جامع عملگرهای تخصیص در پایتون
🎯 اهداف یادگیری
- درک مفهوم عملگر تخصیص پایه (=) و کاربرد آن
- شناخت انواع عملگرهای تخصیص ترکیبی
- یادگیری تخصیص چندگانه به متغیرها
- آشنایی با تخصیص به ساختارهای داده
- یادگیری تکنیکهای حرفهای تخصیص مقدار
📌 مقدمهای بر عملگرهای تخصیص
عملگرهای تخصیص برای اختصاص دادن مقادیر به متغیرها استفاده میشوند. سادهترین عملگر تخصیص، علامت مساوی (=) است که مقدار سمت راست را به متغیر سمت چپ اختصاص میدهد.
📌 عملگر تخصیص پایه (=)
اساسیترین عملگر تخصیص که برای اختصاص مقدار به متغیرها استفاده میشود:
python
# تخصیص مقدار ساده به متغیرهاx = 10name = "پایتون"is_valid = Trueprint(x) # خروجی: 10print(name) # خروجی: پایتونprint(is_valid) # خروجی: True# تخصیص نتیجه یک محاسبهresult = 5 + 3 * 2print(result) # خروجی: 11 (با توجه به اولویت عملگرها)
📌 عملگرهای تخصیص ترکیبی
پایتون عملگرهای تخصیص ترکیبی ارائه میدهد که عمل محاسبه و تخصیص را همزمان انجام میدهند:
python
# عملگر += (افزایش و تخصیص)x = 5x += 3 # معادل x = x + 3print(x) # خروجی: 8# عملگر -= (کاهش و تخصیص)y = 10y -= 4 # معادل y = y - 4print(y) # خروجی: 6# عملگر *= (ضرب و تخصیص)z = 3z *= 5 # معادل z = z * 5print(z) # خروجی: 15# عملگر /= (تقسیم و تخصیص)a = 20a /= 4 # معادل a = a / 4print(a) # خروجی: 5.0 (تقسیم معمولی همیشه float برمیگرداند)# عملگر //= (تقسیم صحیح و تخصیص)b = 17b //= 5 # معادل b = b // 5print(b) # خروجی: 3# عملگر %= (باقیمانده و تخصیص)c = 17c %= 5 # معادل c = c % 5print(c) # خروجی: 2# عملگر **= (توان و تخصیص)d = 2d **= 3 # معادل d = d ** 3print(d) # خروجی: 8
جدول عملگرهای تخصیص ترکیبی:
عملگر | توضیح | مثال | معادل |
---|---|---|---|
+= | افزایش و تخصیص | x += 3 | x = x + 3 |
-= | کاهش و تخصیص | x -= 3 | x = x - 3 |
*= | ضرب و تخصیص | x *= 3 | x = x * 3 |
/= | تقسیم و تخصیص | x /= 3 | x = x / 3 |
//= | تقسیم صحیح و تخصیص | x //= 3 | x = x // 3 |
%= | باقیمانده و تخصیص | x %= 3 | x = x % 3 |
**= | توان و تخصیص | x **= 3 | x = x ** 3 |
📌 تخصیص چندگانه
پایتون امکان تخصیص مقادیر به چندین متغیر را در یک خط فراهم میکند:
python
# تخصیص چندگانه به متغیرهاa, b, c = 5, 10, 15print(a, b, c) # خروجی: 5 10 15# تعویض مقادیر دو متغیر بدون متغیر موقتx, y = 10, 20print("قبل از تعویض:", x, y) # خروجی: 10 20x, y = y, xprint("بعد از تعویض:", x, y) # خروجی: 20 10# تخصیص یک مقدار به چندین متغیرp = q = r = 100print(p, q, r) # خروجی: 100 100 100
نکات مهم در تخصیص چندگانه:
- تعداد متغیرها و مقادیر باید برابر باشد در غیر این صورت خطا رخ میدهد
- تخصیص زنجیرهای (p = q = r = 100) برای اختصاص یک مقدار به چند متغیر مفید است
- تعویض مقادیر بدون نیاز به متغیر موقت امکانپذیر است
📌 تخصیص به ساختارهای داده
عملگرهای تخصیص با لیستها، تاپلها و دیگر ساختارهای داده نیز کار میکنند:
python
# تخصیص به عناصر لیستmy_list = [1, 2, 3]my_list[1] = 20 # تغییر عنصر دومprint(my_list) # خروجی: [1, 20, 3]# تخصیص ترکیبی با لیستهاnumbers = [10, 20, 30]numbers[0] += 5 # افزایش عنصر اولprint(numbers) # خروجی: [15, 20, 30]# باز کردن بسته (unpacking) لیست و تخصیصdata = [1, 2, 3]x, y, z = dataprint(x, y, z) # خروجی: 1 2 3# باز کردن بسته تاپلperson = ("John", 25, "Engineer")name, age, job = personprint(name, age, job) # خروجی: John 25 Engineer
📌 تکنیکهای حرفهای تخصیص
برخی تکنیکهای پیشرفتهتر برای تخصیص مقادیر در پایتون:
python
# تخصیص شرطی با عبارت سهتاییscore = 85result = "قبول" if score >= 50 else "رد"print(result) # خروجی: قبول# تخصیص با عملگر Walrus (:=) در پایتون ۳.۸ به بعد# این عملگر همزمان مقداردهی و برگرداندن مقدار را انجام میدهدnumbers = [1, 2, 3, 4, 5]if (n := len(numbers)) > 3: print(f"لیست طولانی است: {n} عنصر") # خروجی: لیست طولانی است: 5 عنصر# تخصیص با استفاده از توابعx = abs(-10) # قدر مطلقy = round(3.14159, 2) # گرد کردن به دو رقم اعشارprint(x, y) # خروجی: 10 3.14
نکات مهم در تخصیص حرفهای:
- عبارت سهتایی: برای تخصیص شرطی مختصر و مفید است
- عملگر Walrus (:=): فقط در پایتون ۳.۸ و بالاتر موجود است
- تخصیص با توابع: نتیجه توابع را میتوان مستقیماً به متغیرها اختصاص داد
📌 خطاهای رایج در تخصیص
آشنایی با خطاهای رایج به شما کمک میکند از آنها جلوگیری کنید:
python
# خطا: تعداد متغیرها و مقادیر نامتناسب# a, b = 1, 2, 3 # ValueError: too many values to unpack# a, b, c = 1, 2 # ValueError: not enough values to unpack# راه حل: استفاده از * برای مقادیر اضافیa, b, *rest = 1, 2, 3, 4, 5print(a, b, rest) # خروجی: 1 2 [3, 4, 5]# خطا: تخصیص به مقدار ثابت# 5 = x # SyntaxError: cannot assign to literal# خطا: تخصیص به عبارت# x + 1 = 5 # SyntaxError: cannot assign to expression# توجه: تخصیص ترکیبی روی متغیر تعریف نشده# x += 5 # NameError: name 'x' is not defined# باید ابتدا متغیر تعریف شود:x = 10x += 5 # حالا درست کار میکند
📌 تمرینهای عملی
حالا نوبت شماست! کدهای زیر را بررسی کنید و نتیجه را پیشبینی کنید:
python
# تمرین ۱x = 5x += 3x *= 2print(x)# تمرین ۲a, b, c = 10, 20, 30a, b = b, aprint(a, b, c)# تمرین ۳numbers = [1, 2, 3]numbers[1] = 99numbers += [4]print(numbers)