بنیان هر برنامه پایتون به درک نحوه ذخیره، نمایش و دستکاری دادهها بستگی دارد. در این مقاله، به بررسی انواع داده در پایتون میپردازیم، که بلوکهای سازنده اساسی هستند و نوع اطلاعاتی که متغیرهای شما میتوانند نگه دارند را تعریف میکنند. از اعداد گرفته تا متن و حتی مجموعههای داده، این مقاله رایجترین انواع داده را با مثالهای واضح بررسی میکند و به شما درک محکمی از چگونگی ساختاردهی مؤثر کد پایتون ارائه میدهد.
انواع داده در پایتون چیست؟
در پایتون، انواع داده به طبقهبندی اشیاء داده بر اساس ویژگیها و عملیات آنها اشاره دارد. آنها نوع مقادیری که متغیرها میتوانند نگه دارند و نوع عملیاتهایی که میتوان روی آنها انجام داد را تعریف میکنند. پایتون از انواع دادههای محبوبی مانند رشتهها، اعداد و بولین پشتیبانی میکند. بیایید این انواع داده را با مثالهایی دقیقتر بررسی کنیم:
نوع داده رشتهای (String) در پایتون
رشتهها در پایتون انواع داده اساسی هستند که برای نمایش دنبالهای از کاراکترها استفاده میشوند. آنها چندمنظوره هستند و بهطور گسترده برای ذخیره و دستکاری دادههای متنی استفاده میشوند. میتوانید رشتهها را با استفاده از نقلقولهای تکی (”)، نقلقولهای دوتایی (“”) یا نقلقولهای سهگانه (”’ یا “””) ایجاد کنید.
در زیر مثالی از یک رشته در پایتون آورده شده است:
# Create strings using different quotesmessage1 = ‘Hello, world!’ # Single quotesmessage2 = “This is a string with double quotes.”message3 = “”“This string spans multiple lines using triple quotes.”“”# Print on separate linesprint(“Messages:”, message1, message2, message3, sep=“\n”) # Access characters using indexfirst_letter = message1[۰] # first_letter will be ‘H’last_word = message2[-۴:] # last_word will be “quotes.” (slice up to, but not including, index -۴)print(“First letter:”, first_letter)print(“Last word:”, last_word)# String Slicing and Concatenationgreeting = message1[:۵] # greeting will be “Hello”place = “world” #place will be “world”full_message = greeting + “, “ + place + “!”print(“Full message:”, full_message)# String methods – upper and lower caseuppercase_message = message1.upper() # uppercase_message will be “HELLO, WORLD!”lowercase_message = message2.lower()print(“Uppercase:”, uppercase_message)print(“Lowercase:”, lowercase_message)# Find and replacereplaced_message = message3.replace(“string”, “sentence”) # Replace first occurrenceprint(“Replaced string:”, replaced_message)# Formatted string (f-string)name = “Bob”age = ۲۵greeting_fstring = f“Hi, {name}. You are {age} years old.”print(greeting_fstring)
نوع داده عددی (Numerical) در پایتون
انواع داده عددی در پایتون برای نمایش مقادیر عددی و انجام محاسبات استفاده میشوند. در ادامه به سه نوع اصلی داده عددی پرداخته شده است:
- اعداد صحیح (int): اعداد صحیح، اعداد کامل (مثبت، منفی یا صفر) را نمایش میدهند. در پایتون، اعداد صحیح معمولاً دقت نامحدودی دارند، به این معنی که میتوانند اعداد کامل بزرگ یا کوچک را ذخیره کنند.
age = 30 population = 1234567
- اعداد اعشاری (float): اعداد اعشاری اعداد واقعی با نقطه اعشار را نمایش میدهند. محدوده اعداد اعشاری تقریباً از ۳.4E-38 تا ۳.4E+38 است.
- اعداد مختلط (complex): اعداد مختلط مقادیری با بخش واقعی و خیالی را نشان میدهند. بخش خیالی با حرف j و بخش واقعی با یک عدد مشخص میشود.
نوع داده بولین (Boolean) در پایتون
نوع داده بولین مقادیر منطقی را نمایش میدهد، بهطور خاص True یا False. این نوع داده برای تصمیمگیری و کنترل جریان برنامه بر اساس شرایط خاص اساسی است.
در زیر مثالی از نوع داده بولین آورده شده است:
is_loggedIn = True # Assigning True to a variableage = 25is_adult = age >= ۱۸ # Assigning True/False based on a comparisonif is_loggedIn: print(“Welcome back!”) # Code executes if is_loggedIn is Trueif is_adult: print(“You are eligible to vote.”)else: print(“You are not yet eligible to vote.”) # Code executes based on is_adult value
با این حال، علاوه بر این انواع داده، پایتون همچنین از انواع داده تغییرپذیر (mutable) مانند دیکشنریها، مجموعهها و لیستها و انواع داده تغییرناپذیر (immutable) مانند تاپلها پشتیبانی میکند. بخش زیر توضیحات مفصلی درباره این انواع داده با مثالها ارائه میدهد.
انواع داده تغییرپذیر (Mutable)
انواع داده تغییرپذیر در پایتون آنهایی هستند که مقادیر داده آنها پس از ایجاد میتوانند تغییر کنند. میتوانید عناصر را در ساختار داده اضافه، تغییر یا حذف کنید. انواع داده تغییرپذیر به سه بخش تقسیم میشوند:
- دیکشنریها (Dictionaries):
دیکشنری در پایتون مجموعهای از عناصر است که اقلام را در قالب کلید-مقدار ذخیره میکند. در اینجا، کلید یک شناسه منحصربهفرد برای مقدار مرتبط با آن است، در حالی که مقدار میتواند هر نوع دادهای باشد که میخواهید در دیکشنری ذخیره کنید. دو روش رایج برای ایجاد دیکشنری استفاده از {} با کاما جدا شده یا استفاده از تابع dict() است.
مثال زیر عملیات مختلف دیکشنری را نشان میدهد:
# Create a dictionary to store student informationstudent = { “name”: “Alice”, “age”: ۱۸, “course”: “Computer Science”, “grades”: [۸۵, ۹۰, ۷۸] # List as a value}# Accessing values using keysname = student[“name”]age = student[“age”]print(f“Student Name: {name}”)print(f“Student Age: {age}”)# Modifying a valuestudent[“course”] = “Data Science” # Change course# Adding a new key-value pairstudent[“scholarship”] = True# Iterating through key-value pairsfor key, value in student.items(): print(f“{key}: {value}”)# Checking if a key existsif “age” in student: print(“Age key exists in the dictionary”)# Accessing a non-existent key (safer method)grade = student.get(“grade”, “Not Found”) # Returns “Not Found” if key doesn‘t exist#Assuming grades is a listprint(f”Average Grade: {sum(student[‘grades‘]) / len(student[‘grades‘])}”)
- مجموعهها (Sets):
مجموعهها در پایتون مجموعهای بدون ترتیب از عناصر دادهای منحصربهفرد هستند. میتوانید مجموعه کلی عناصر را در یک مجموعه تغییر دهید، اما نمیتوانید اقلام جداگانه ذخیرهشده در آن را تغییر دهید. بهعنوان مثال، اگر رشته “apple” را به یک مجموعه اضافه کنید، نمیتوانید بعداً آن را در مجموعه به “orange” تغییر دهید.
مثال زیر ایجاد، تغییر، بررسی عضویت و یافتن اشتراک با مجموعههای دیگر را نشان میدهد:
# Create a set of fruitsfruits = {“apple”, “banana”, “cherry”}# Print the set (order may differ each time)print(“Original fruits:”, fruits)# Check if an element exists (membership checking)if “mango” in fruits: print(“Mango is in the set”)else: print(“Mango is not in the set”)# Add a new elementfruits.add(“mango”)print(“Fruits after adding mango:”, fruits)# Remove an elementfruits.remove(“cherry”)print(“Fruits after removing cherry:”, fruits)# Find the intersection with another set (common elements)vegetables = {“potato”, “tomato”, “carrot”}common_items = fruits.intersection(vegetables)print(“Common items between fruits and vegetables:”, common_items)
- لیستها (Lists):
لیستها در پایتون برای ذخیره مجموعهای از اقلام به ترتیب خاص مناسب هستند. میتوانید به این عناصر بر اساس موقعیت (اندیس) آنها در لیست دسترسی پیدا کنید. لیستها ناهمگن هستند، زیرا میتوانند انواع داده مختلف (مانند رشتهها، اعداد یا حتی لیستهای دیگر) را در یک لیست نگه دارند.
مثال زیر ایجاد و تغییر در یک لیست را نشان میدهد:
# Create a list of numbersnumbers = [۱, ۵, ۸, ۲]# Print the listprint(“Original numbers:”, numbers)# Access an element using indexsecond_number = numbers[۱] # second_number will be ۵print(“Second element:”, second_number)# Add an element to the endnumbers.append(۱۰)print(“Numbers after adding 10:”, numbers)# Insert an element at a specific indexnumbers.insert(۲, ۳) # Insert ۳ at index ۲print(“Numbers after inserting 3:”, numbers)# Remove the first occurrence of an elementnumbers.remove(۲)print(“Numbers after removing first 2:”, numbers)# Remove and get the last elementlast_item = numbers.pop()print(“List after popping:”, numbers)print(“Popped item:”, last_item) # last_item will be ۱۰# Sort the list in ascending ordernumbers.sort()print(“Numbers sorted in ascending order:”, numbers)# Reverse the order of elementsnumbers.reverse()print(“Numbers in reversed order:”, numbers)
انواع داده تغییرناپذیر (Immutable)
انواع داده تغییرناپذیر آنهایی هستند که عناصرشان پس از ایجاد نمیتوانند تغییر کنند. هر تلاش برای تغییر یک شیء تغییرناپذیر همیشه یک شیء جدید ایجاد میکند.
بهعنوان مثال، در پایتون، وقتی مینویسید X = 5، سپس X = X + 1، شما مقدار اصلی را هنگام افزودن مقدار جدید به متغیر X تغییر نمیدهید. در عوض، یک مقدار جدید ایجاد کرده و آن را به متغیر اضافه میکنید.
تاپلها یک نوع داده تغییرناپذیر رایج در پایتون هستند.
تاپلها (Tuples) تاپل یک مجموعه مرتب از اقلام داده است که پس از ایجاد نمیتوانند تغییر کنند. میتوان آن را با پرانتز و کاما بین اقلام تعریف کرد. مثال زیر نحوه کار با تاپلها را با توجه به ماهیت مرتب و تغییرناپذیر آنها نشان میدهد:
# Create a tuple of colorscolors = (“red”, “green”, “blue”)# Print the tupleprint(“Colors:”, colors)# Access an element using indexfirst_color = colors[۰] # first_color will be “red”print(“First color:”, first_color)# Trying to modify a tuple element (results in an error)# colors[۱] = “yellow” # This will cause an error# You can create a new tuple with modificationsmodified_colors = colors + (“yellow”,) # Notice the comma after “yellow” for a single-element tupleprint(“Modified colors:”, modified_colors)# Slicing works with tuples for extracting a portionsummer_colors = colors[۰:۲] # summer_colors will be (“red”, “green”)print(“Summer colors:”, summer_colors)# Looping through elementsfor color in colors: print(“Color:”, color)
چگونه نوع داده را در پایتون بررسی کنیم؟
اکنون که درک اولیهای از انواع داده دارید، بیایید روشهای مختلف بررسی نوع داده یک شیء در پایتون را بررسی کنیم.
روش ۱: استفاده از تابع type()
تابع type() در پایتون یک تابع داخلی است که به شما امکان میدهد نوع کلاس متغیر دادهشده بهعنوان ورودی را پیدا کنید. باید نام متغیر را داخل تابع type() قرار دهید، که نوع داده را خروجی میدهد.
مثال:
a = 60 b = “Hello” c = 72.34 d = [4, 5, 6] print(type(a)) # Output: print(type(b)) # Output: print(type(c)) # Output: print(type(d)) # Output:
روش ۲: استفاده از تابع isinstance()
تابع isinstance() در پایتون بررسی میکند که آیا یک شیء متعلق به یک نوع داده یا کلاس خاص است. این تابع یک مقدار بولین، True یا False، را بر اساس اینکه شیء با نوع مشخصشده مطابقت دارد یا خیر، برمیگرداند.
مثال:
a = ۹۷b = ۲۲.۶۵c = “Python”print(isinstance(a, int)) # Output: True print(isinstance(b, float)) # Output: True print(isinstance(c, str)) # Output: True
روش ۳: استفاده از ویژگی __class__
در پایتون، ویژگی __class__ اطلاعاتی درباره نوع کلاس یک شیء ارائه میدهد. کد نمونه زیر نشان میدهد چگونه از ویژگی __class__ برای بهدست آوردن نوع یک متغیر استفاده کنید:
a = 25 print(a.__class__) # b = “Data” print(b.__class__) # c = 83.45 print(c.__class__) # Output
نتیجهگیری
درک انواع داده برای نوشتن کد پایتون مؤثر اساسی است. با استفاده از نوع داده مناسب برای متغیرهای خود، یکپارچگی داده را تضمین میکنید و عملیات صحیح روی دادههای خود را امکانپذیر میسازید. پایتون انواع داده داخلی متنوعی، از جمله انواع تغییرپذیر و تغییرناپذیر، را ارائه میدهد تا نیازهای مختلف را برآورده کند.
