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

نوع‌های داده‌ای پایتون در یک نگاه

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

  • اعداد صحیح (Integer): نمایانگر اعداد بدون اعشار مانند ۱، ۲، ۳ و غیره است.
  • اعداد اعشاری (Float): نمایانگر اعداد با اعشار مانند ۳.۱۴، ۲.۷ و غیره است.
  • رشته‌ها (String): نمایانگر متن و کاراکترها است. رشته‌ها در پایتون بین نقل قول‌های تکی یا دوتایی قرار می‌گیرند، مانند "سلام" یا 'Hello'.
  • لیست‌ها (List): نمایانگر مجموعه‌ای از اشیاء است. اشیاء درون لیست می‌توانند هر نوع داده‌ای باشند و با استفاده از براکت‌های مربعی [] ایجاد می‌شوند.
  • تاپل‌ها (Tuple): شبیه به لیست‌ها هستند، اما غیرقابل تغییر هستند. یعنی بعد از ایجاد تاپل، مقادیر آن قابل تغییر نیستند. تاپل‌ها با استفاده از پرانتز () ایجاد می‌شوند.
  • دیکشنری‌ها (Dictionary): نمایانگر مجموعه‌ای از جفت‌های کلید-مقدار است. هر عضو در دیکشنری یک کلید و یک مقدار دارد. دیکشنری‌ها با استفاده از براکت‌های آکولاد {} ایجاد می‌شوند.
  • مجموعه‌ها (Set): نمایانگر مجموعه‌ای از عناصر منحصر به فرد است. عناصر در مجموعه ترتیب خاصی ندارند و توسط براکت‌های آکولاد {} ایجاد می‌شوند.
  • بولین (Boolean): نمایانگر صحت یا عدم صحت یک عبارت است. مقادیر ممکن برای بولین True و False هستند.

موارد یاد شده تنها برخی از انواع داده‌های معمول در پایتون هستند. پایتون اجازه می‌دهد تا نوع داده‌های سفارشی نیز تعریف شوند و مورد استفاده قرار گیرند.

تاپل (Tuple) در پایتون چیست؟

تاپل (Tuple) در پایتون یک نوع داده است که مجموعه‌ای از اشیاء (مقادیر) را نگهداری می‌کند. تاپل‌ها شبیه به لیست‌ها هستند، با این تفاوت که تاپل‌ها غیرقابل تغییر هستند، یعنی پس از ایجاد تاپل، مقادیر آن قابل تغییر نیستند. تاپل‌ها با استفاده از پرانتزها ()ایجاد می‌شوند. مقادیر درون تاپل با استفاده از کاما (,) جدا می‌شوند. به عنوان مثال، درست کردن یک تاپل به نام "person" که شامل نام و سن فردی است، به صورت زیر انجام می‌شود:

person = ("John", 30)

در این مثال، تاپل "person" دارای دو عنصر است: "John" و ۳۰. مقادیر درون تاپل می‌توانند هر نوع داده‌ای باشند، مانند اعداد، رشته‌ها، لیست‌ها و غیره. تاپل‌ها می‌توانند به عنوان آرگومان‌ها به توابع پاس داده شوند و نیز می‌توانند به عنوان مقدار خروجی یک تابع برگردانده شوند. همچنین، می‌توان تاپل‌ها را با استفاده از عملگرهای اندیسی (indexing) و برش (slicing) مورد استفاده قرار داد تا به عناصر خاص تاپل دسترسی پیدا کرد. مثال‌هایی از تاپل‌ها به شرح زیر هستند:

# تاپل شامل مختصات یک نقطه در صفحه

point = (3, 4) 

# تاپل شامل رنگ‌های مختلف

colors = ("red", "green", "blue") 

# تاپل شامل نام، سن و لیست رشته‌ها برای دانشجو

student = ("Alice", 20, ["Math", "Physics"])

تاپل‌ها برای ذخیره‌سازی داده‌هایی که نباید تغییر کنند، مفید هستند. به دلیل عدم تغییرپذیری، تاپل‌ها در برخی موارد سریع‌تر از لیست‌ها عمل می‌کنند و همچنین از امکاناتی مانند استفاده از تاپل‌ها به عنوان کلید در دیکشنری‌ها بهره می‌برند.

ایجاد تاپل با داده‌های متفاوت

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

my_tuple = (10, "Hello", True)

در این مثال، my_tuple یک تاپل است که شامل یک عدد صحیح ۱۰، رشته "Hello" و مقدار بولین True است. همچنین، می‌توانید تاپل‌های دیگری با داده‌های متفاوت ایجاد کنید. به عنوان مثال:

mixed_tuple = ("apple", 3.14, [1, 2, 3], ("a", "b", "c"))

در این مثال، mixed_tuple یک تاپل است که شامل یک رشته "apple"، یک عدد اعشاری 3.14، یک لیست [1, 2, 3] و یک تاپل ("a", "b", "c") است. می‌توانید به عناصر تاپل با استفاده از عملگرهای اندیسی دسترسی پیدا کنید. به عنوان مثال:

# نمایش عنصر اول تاپل (عدد صحیح ۱۰)

print(my_tuple[0]) 

# نمایش عنصر دوم تاپل

print(my_tuple[1])  (

  # نمایش عنصر سوم تاپل (مقدار بولین)

print(my_tuple[2])

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

دسترسی به تاپل‌ها

برای دسترسی به عناصر تاپل‌ها در پایتون، می‌توانید از عملگرهای اندیسی (indexing) استفاده کنید. عنصر اول تاپل اندیس صفر است و عناصر بعدی به ترتیب در اندیس‌های بعدی قرار می‌گیرند. برای دسترسی به یک عنصر خاص از تاپل، از نام تاپل و اندیس مربوطه استفاده می‌کنید. به عنوان مثال، فرض کنید تاپلی به نام my_tuple داریم که شامل اعداد 10، 20 و 30 است. می‌توانیم به این عناصر به صورت زیر دسترسی پیدا کنیم:

my_tuple = (10, 20, 30)

# نمایش عنصر اول تاپل (عدد ۱۰)

print(my_tuple[0]) 

# نمایش عنصر دوم تاپل (عدد ۲۰)

print(my_tuple[1]) 

# نمایش عنصر سوم تاپل (عدد ۳۰)

print(my_tuple[2]) 

خروجی

10

20

30

همچنین، می‌توانید از عملگرهای برش (slicing) نیز برای دسترسی به زیرمجموعه‌ای از عناصر تاپل استفاده کنید. برش به شما امکان می‌دهد یک بخش از تاپل را انتخاب کنید. برای مثال:

my_tuple = (10, 20, 30, 40, 50)

# برش از اندیس ۱ تا ۳ (عناصر دوم تا چهارم تاپل)

print(my_tuple[1:4]) 

# برش از ابتدا تا اندیس ۲ (عناصر اول تا سوم تاپل)

print(my_tuple[:3])

# برش از اندیس ۲ تا انتها (عناصر سوم تا انتهای تاپل)  

print(my_tuple[2:])  

خروجی:

(20, 30, 40)

(10, 20, 30)

(30, 40, 50)

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

چسباندن تاپل‌ها به هم

برای چسباندن (ترکیب) دو تاپل به هم، می‌توانید از عملگر '+' استفاده کنید. با استفاده از این عملگر، دو تاپل را به هم الحاق (concatenate) می‌کنید و یک تاپل جدید را ایجاد می‌کنید. به عنوان مثال، فرض کنید دو تاپل به نام‌های tuple1 و tuple2 داریم. می‌توانیم این دو تاپل را به صورت زیر به هم چسبانیم:

tuple1 = (1, 2, 3)

tuple2 = (4, 5, 6)

combined_tuple = tuple1 + tuple2

print(combined_tuple)

خروجی:

(1, 2, 3, 4, 5, 6)

در این مثال، دو تاپل tuple1 و tuple2 را با عملگر '+' چسبانده و یک تاپل جدید به نام combined_tuple ایجاد کردیم. تاپل جدید شامل عناصر هر دو تاپل اولیه است. شما می‌توانید بیش از دو تاپل را به هم چسبانید. به عنوان مثال:

tuple1 = (1, 2, 3)

tuple2 = (4, 5, 6)

tuple3 = (7, 8, 9)

combined_tuple = tuple1 + tuple2 + tuple3

print(combined_tuple)

خروجی

(1, 2, 3, 4, 5, 6, 7, 8, 9)

در این مثال، سه تاپل tuple1، tuple2 و tuple3 را با عملگر '+' چسباندیم و یک تاپل جدید به نام combined_tuple ایجاد کردیم که شامل عناصر همه سه تاپل است.

برش زدن (Slicing) یک تاپل

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

my_tuple[start:end:step]

start: اندیس ابتدایی برش (شامل می‌شود).

end: اندیس پایانی برش (نشانگر اولین عنصری است که در برش قرار نمی‌گیرد).

step: قدم گام برش (مقدار پیش‌فرض ۱ است و به معنای برش پیوسته است).

به عنوان مثال، فرض کنید یک تاپل به نام my_tuple داریم که شامل اعداد 1 تا 5 است. می‌توانیم با استفاده از برش، زیرمجموعه‌های مختلفی از این تاپل را انتخاب کنیم:

my_tuple =(1, 2, 3, 4, 5)

# برش از اندیس ۱ تا ۳ (عناصر دوم تا چهارم تاپل)

print(my_tuple[1:4])

# برش از ابتدا تا اندیس ۲ (عناصر اول تا سوم تاپل)

print(my_tuple[:3])

# برش از اندیس ۲ تا انتها (عناصر سوم تا انتهای تاپل)  

print(my_tuple[2:])

# برش با گام ۲ (عناصر اول، سوم و پنجم تاپل)  

print(my_tuple[::2]) 

خروجی

(2, 3, 4)

(1, 2, 3)

(3, 4, 5)

(1, 3, 5)

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

حذف تاپل

در پایتون، تاپل‌ها یک نوع داده غیرقابل تغییر (immutable) هستند، به این معنی که شما نمی‌توانید عناصر تاپل را به صورت مستقیم تغییر دهید یا تاپل را حذف کنید. با این حال، شما می‌توانید به جای حذف تاپل، از تکنیک‌هایی مانند تغییر اندازه تاپل یا ایجاد یک تاپل جدید بدون عنصر مورد نظر استفاده کنید. در ادامه چند روش برای حذف عنصر یا تاپل را بررسی می‌کنیم:

تغییر اندازه تاپل

یک روش برای حذف عنصر از تاپل، تغییر اندازه تاپل با استفاده از تابع del است. با استفاده از این تکنیک، شما می‌توانید تاپل را با حذف یک یا چند عنصر از آن به روز کنید. به عنوان مثال:

my_tuple = (1, 2, 3, 4, 5)

  # برش از اندیس ۱ تا ۳ (عناصر دوم تا چهارم تاپل)

print(my_tuple[1:4])

# برش از ابتدا تا اندیس ۲ (عناصر اول تا سوم تاپل)

print(my_tuple[:3])  

# برش از اندیس ۲ تا انتها (عناصر سوم تا انتهای تاپل)

print(my_tuple[2:])  

# برش با گام ۲ (عناصر اول، سوم و پنجم تاپل)

print(my_tuple[::2]) 

خروجی:

(1, 2, 4, 5)

در این مثال، تاپل my_tuple را به یک لیست تبدیل کرده، عنصر با اندیس ۲ را حذف کرده و سپس لیست را به تاپل updated_tuple تبدیل کرده‌ایم.

ایجاد تاپل جدید

روش دیگری برای حذف یک تاپل، ایجاد یک تاپل جدید بدون عنصر مورد نظر است. شما می‌توانید تاپل جدیدی با عناصری که می‌خواهید حفظ شود ایجاد کنید. به عنوان مثال:

my_tuple = (1, 2, 3, 4, 5)

# ایجاد تاپل جدید بدون عنصر با اندیس ۲

new_tuple = my_tuple[:2] + my_tuple[3:]

print(new_tuple)

خروجی:

(1, 2, 4, 5)

در این مثال، تاپل my_tuple را به دو بخش تقسیم کرده و سپس عنصر با اندیس ۲ را حذف کرده‌ایم. در نهایت، تاپل جدید new_tuple را با اندازه کوچکتر بدون عنصر مورد نظر ایجاد کردیم. توجه داشته باشید که در هر دو روش فوق، تاپل اصلی بدون تغییر باقی می‌ماند و نسخه‌ی جدید تاپل بدون عنصر مورد نظر ایجاد می‌شود.

مجموعه‌ها (Sets) در پایتون

در پایتون، مجموعه‌ها (sets) یک نوع داده است که مجموعه‌ای از عناصر منحصر به فرد را نگهداری می‌کند. مجموعه‌ها در پایتون بدون ترتیب است و عناصر تکراری در آن‌ها مجاز نیستند. مجموعه‌ها از نظر علائم نگارشی در پایتون با استفاده از آکولادهای منحنی ({}) تعریف می‌شوند. برای ایجاد یک مجموعه، می‌توانید از تابع set استفاده کنید و عناصر را درون آن قرار دهید. به عنوان مثال:

my_set = set()  # ایجاد یک مجموعه خالی

my_set = {1, 2, 3, 4, 5}  # ایجاد یک مجموعه با عناصر ۱ تا ۵

همچنین می‌توانید یک لیست، تاپل یا رشته را به یک مجموعه تبدیل کنید با استفاده از تابع set()، به عنوان مثال:

my_list = [1, 2, 2, 3, 4, 4, 5]

my_set = set(my_list)  # تبدیل لیست به مجموعه (حذف عناصر تکراری)

print(my_set)  # {1, 2, 3, 4, 5}

در مجموعه‌ها، شما می‌توانید عملیات‌های مختلفی مانند اضافه کردن عنصر، حذف عنصر، انجام عملیات مجموع، اشتراک، تفاضل و تقاطع را انجام دهید. به عنوان مثال:

my_set = {1, 2, 3, 4, 5}

# اضافه کردن عنصر به مجموعه

my_set.add(6)

print(my_set)  # {1, 2, 3, 4, 5, 6}

# حذف عنصر از مجموعه

my_set.remove(3)

print(my_set)  # {1, 2, 4, 5, 6}

# مجموع دو مجموعه

other_set = {4, 5, 6, 7}

union_set = my_set.union(other_set)

print(union_set)  # {1, 2, 4, 5, 6, 7}

# اشتراک دو مجموعه

intersection_set = my_set.intersection(other_set)

print(intersection_set)  # {4, 5, 6}

# تفاضل دو مجموعه

difference_set = my_set.difference(other_set)

print(difference_set)  # {1, 2}

# تقاطع مجموعه‌ها

symmetric_difference_set = my_set.symmetric_difference(other_set)

print(symmetric_difference_set)  # {1, 2, 6, 7}

توجه داشته باشید که مجموعه‌ها در پایتون ترتیب را حفظ نمی‌کنند و عملیات‌هایی مانند برش (slicing) در مجموعه‌ها معنا ندارند، زیرا مجموعه‌ها به ترتبه ترتیب آمدن عناصر در آن توجه نمی‌کنند. همچنین، مجموعه‌ها داده‌ها را به صورت منحصر به فرد نگهداری می‌کنند، بنابراین اگر یک عنصر تکراری به مجموعه اضافه شود، تنها یک نسخه از آن در مجموعه باقی می‌ماند.

دیکشنری‌ها (Dictionary) در پایتون

در پایتون، دیکشنری‌ها (dictionaries) یک نوع داده هستند که امکان نگهداری داده‌ها به صورت جفت‌های کلید-مقدار را فراهم می‌کنند. در دیکشنری‌ها، داده‌ها بر اساس یک کلید منحصر به فرد نگهداری می‌شوند و می‌توانید با استفاده از کلید، به مقدار مربوطه دسترسی پیدا کنید. دیکشنری‌ها در پایتون با استفاده از آکولادهای فرانگولی ({}) تعریف می‌شوند و هر جفت کلید-مقدار با استفاده از علامت تساوی (:) جدا می‌شوند. برای ایجاد یک دیکشنری، می‌توانید از آکولادهای فرانگولی استفاده کنید و جفت‌های کلید-مقدار را درون آن قرار دهید. به عنوان مثال:

my_dict = {}  # ایجاد یک دیکشنری خالی

my_dict = {'کلید۱': 'مقدار۱', 'کلید۲': 'مقدار۲', 'کلید۳': 'مقدار۳'}  # ایجاد یک دیکشنری با جفت‌های کلید-مقدار

همچنین می‌توانید از تابع dict() برای ایجاد یک دیکشنری استفاده کنید، به عنوان مثال:

my_dict = dict()  # ایجاد یک دیکشنری خالی

my_dict = dict(کلید۱='مقدار۱', کلید۲='مقدار۲', کلید۳='مقدار۳')  # ایجاد یک دیکشنری با جفت‌های کلید-مقدار

برای دسترسی به مقدار مربوط به یک کلید در دیکشنری، می‌توانید از کلید مورد نظر استفاده کنید. به عنوان مثال:

my_dict = {'نام': حمیدرضا, 'سن': 36, 'شغل': 'برنامه‌نویس'}

name = my_dict['نام']

print(name)  # حمیدرضا

age = my_dict['سن']

print(age)  # 25

در صورتی که کلید مورد نظر در دیکشنری وجود نداشته باشد، خطای KeyError رخ می‌دهد. برای جلوگیری از رخداد این خطا، می‌توانید از تابع get() استفاده کنید. این تابع مقدار مربوط به یک کلید را بازگردانده و در صورتی که کلید وجود نداشته باشد، یک مقدار پیش‌فرض (به‌طور پیش‌فرض None) را بازگردانده می‌کند. به عنوان مثال:

my_dict = {'نام': حمیدرضا, 'سن': 36, 'شغل': 'برنامه‌نویس'}

name = my_dict.get('نام')

print(name)  # حمیدرضا

age = my_dict.get('سن')

print(age)  # 25

salary = my_dict.get('حقوق')

print(salary)  # None

salary = my_dict.get('حقوق', 0)  # 0 به عنوان مقدار پیش‌فرض

print(salary)  # 0

شما می‌توانید عملیات‌های مختلفی روی دیکشنری‌ها انجام دهید، مانند اضافه کردن یک جفت کلید-مقدار جدید، حذف یک جفت کلید-مقدار، تغییر مقدار یک کلید، دسترسی به کلید‌ها یا مقادیر به صورت جداگانه و غیره. به عنوان مثال:

my_dict = {'نام': حمیدرضا, 'سن': 36, 'شغل': 'برنامه‌نویس'}

# اضافه کردن یک جفت کلید-مقدار جدید

my_dict['آدرس'] = 'تهران'

# حذف یک جفت کلید-مقدار

del my_dict['سن']

# تغییر مقدار یک کلید

my_dict['شغل'] = 'مدیر پروژه'

# دسترسی به کلید‌ها

keys = my_dict.keys()

print(keys)  # dict_keys(['نام', 'شغل', 'آدرس'])

# دسترسی به مقادیر

values = my_dict.values()

print(values)  # dict_values([حمید, 'مدیر پروژه', 'تهران'])

# دسترسی به جفت‌های کلید-مقدار

items = my_dict.items()

print(items)  # dict_items([('نام', حمید), ('شغل', 'مدیر پروژه'), ('آدرس', 'تهران')])

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

دیکشنری تودرتو

در پایتون، می‌توانید دیکشنری‌های تودرتو (nested dictionaries) را ایجاد کنید، به این معنی که مقادیر دیکشنری نیز می‌توانند دیکشنری باشند. این امکان به شما اجازه می‌دهد تا ساختارهای پیچیده‌تری را با استفاده از دیکشنری‌ها ایجاد کنید. برای ایجاد یک دیکشنری تودرتو، می‌توانید دیکشنری‌های دیگر را به عنوان مقادیر داخلی یک دیکشنری استفاده کنید. به عنوان مثال:

my_dict = {

    'اطلاعات فرد': {

        'نام': حمیدرضا,

        'سن': 36,

        'شغل': 'برنامه‌نویس'

    },

    'آدرس': {

        'استان': 'تهران',

        'شهر': 'تهران',

        'کدپستی': '12345'

    }

}

در این مثال، دیکشنری my_dict دو کلید دارد: 'اطلاعات فرد' و 'آدرس'. هر یک از این کلیدها به یک دیکشنری دیگر با جفت‌های کلید-مقدار مربوطه اشاره می‌کند. برای دسترسی به مقادیر در دیکشنری تودرتو، می‌توانید از یک زنجیره از کلیدها استفاده کنید. به عنوان مثال:

name = my_dict['اطلاعات فرد']['نام']

print(name)  # حمیدرضا

city = my_dict['آدرس']['شهر']

print(city)  # تهران

همچنین، می‌توانید عملیات‌های مشابهی بر روی دیکشنری‌های تودرتو انجام دهید، مانند اضافه کردن یک جفت کلید-مقدار جدید، حذف یک جفت کلید-مقدار، تغییر مقدار یک کلید در دیکشنری داخلی و غیره. به عنوان مثال:

# اضافه کردن یک جفت کلید-مقدار جدید به دیکشنری داخلی

my_dict['اطلاعات فرد']['جنسیت'] = 'مرد'

# حذف یک جفت کلید-مقدار از دیکشنری داخلی

del my_dict['آدرس']['کدپستی']

# تغییر مقدار یک کلید در دیکشنری داخلی

my_dict['اطلاعات فرد']['سن'] = 36

در این مثال، مقدار 'جنسیت' به دیکشنری داخلی 'اطلاعات فرد' اضافه شده است، جفت کلید-مقدار مربوط به 'کدپستی' از دیکشنری داخلی 'آدرس' حذف شده است و مقدار کلید 'سن' در دیکشنری داخلی 'اطلاعات فرد' تغیرتغییر کرده و به 36 تغییر یافته است. با استفاده از دیکشنری تودرتو، می‌توانید ساختارهای پیچیده‌تری را در پایتون ایجاد کنید و به آسانی به مقادیر دلخواه دسترسی پیدا کنید.

ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را می‌توانید از کتابخانه‌های عمومی سراسر کشور و نیز از دکه‌های روزنامه‌فروشی تهیه نمائید.

ثبت اشتراک نسخه کاغذی ماهنامه شبکه     
ثبت اشتراک نسخه آنلاین

 

کتاب الکترونیک +Network راهنمای شبکه‌ها

  • برای دانلود تنها کتاب کامل ترجمه فارسی +Network  اینجا  کلیک کنید.

کتاب الکترونیک دوره مقدماتی آموزش پایتون

  • اگر قصد یادگیری برنامه‌نویسی را دارید ولی هیچ پیش‌زمینه‌ای ندارید اینجا کلیک کنید.

ایسوس

نظر شما چیست؟