t
ساختارهای داده پایتون
مدرس:
t
مقدمه
2
نصب و راه اندازی
دانلود جدیدترین نسخه پایتون از سایت اصلی پایتون http://www.python.org :
متغیرها
انواع متغیرها: عدد صحیح: Int عدد صحیح طولانی: Long عدد اعشاری: Float عدد مختلط: Complex منطقی: Boolean نام های کلیدی در پایتون که نمی توان از آن ها در نام گذاری استفاده کرد: for – else – continue – import – break – not – rais – return – try – if – elif – in – or – is and – while – print – finally – class – def – assert – del – lambda – as – exec – global – pass – from – except – with – yield – True – False –None
عملگرها
عملگرهای ریاضی (محاسباتی): جمع + تفریق ـ ضرب * تقسیم / تقسیم صحیح // باقیمانده تقسیم ٪ توان **
افزایش ++ کاهش ـ ـ جمع و تخصیص = + تفریق و تخصیص = ـ ضرب و تخصیص = * تقسیم و تخصیص = / باقیمانده تقسیم و تخصیص = ٪
عملگرها
عملگرهای قیاسی: مقایسه در تساوی = = مقایسه در عدم تساوی = ! مقایسه در عدم تساوی <> مقایسه در بزرگتر بودن < مقایسه در کوچکتر بودن > مقایسه در بزرگتر یا مساوی بودن =< مقایسه در کوچکتر یا مساوی بودن =>
عملگرهای منطقی: درست بودن دو عملوند and
درست بودن یکی از عملوندها or
نادرست بودن دو عملوند not
عملگرهای عضوی:
عضو بودن in
عضو نبودن not in
خطاها
Syntax Error خطاهای نحوی (مربوط به نگارش اشتباه) Runtime Error خطای زمان اجرا (مشکل مربوط به اجرای برنامه است) Semantic Error خطای معنایی (هدف مدنظر را به دست نمی آورد)
انواع ساختار داده
8
دنباله یا رشته
رشته ها در واقع دنباله ای از اعداد یا حروف هستند. پایتون به آن Str می گوید. در تعریف رشته یا دنباله از علامت کوتیشن " " در ابتدا و انتهای عبارت استفاده می کنیم. رشته ها تغییر ناپذیر هستند. رشته ها قابلیت فراخوانی به صورت برش رشته ای دارند. واحدهای تشکیل دهنده رشته را کاراکتر می نامند. هر کاراکتر دارای یک اندیس عددی است.
متدهای رشته ها
تبدیل حروف کوچک به حروف بزرگ:
Name.upper()
تبدیل حروف بزرگ به حروف کوچک:
Name.lower()
تبدیل حرف اول به حرف بزرگ (برای تمام کلمات یک جمله):
Name.title()
تبدیل حرف اول به حرف بزرگ (فقط برای اولین کلمه یک جمله):
Name.capitalize()
تعداد دفعات تکرار یک کاراکتر:
Name.count(“x”)
پیدا کردن شماره اندیس یک کاراکتر:
Name.find(“x”)
قرار دادن کاراکتر دلخواه دو طرف یک رشته:
Name.center(n,”x”)
متدهای رشته ها
به دست آوردن طول رشته:
Name.len()
جداسازی و ریختن در لیست:
Name.split(“x”)
جداسازی اول و آخر یک رشته:
Name.strip(“x”)
اتصال با یک کاراکتر خاص:
“x”.join(Name)
جایگزین کردن کاراکترها یا کلمات:
Name.replace(“word1”,”word2”)
برعکس کردن بزرگی و کوچکی حروف:
Name.swapcase()
تشخیص حروف بودن همه کاراکترها:
Name.isalpha()
متدهای رشته ها
تشخیص عدد بودن همه کاراکترها:
Name.isdigit()
تعویض کاراکتر با کاراکتر از پیش تعیین شده (یونیکد):
Name.translate({code1:code2})
به دست آوردن یونیکد هر کاراکتر:
ord(“x”)
آرایه یا لیست
پایتون به آن listمی گوید. در تعریف آرایه یا لیست از علامت براکت [ ] در ابتدا و انتهای عبارت استفاده می کنیم. داده های درون لیست می توانند از جنس رشته (str)، عددصحیح (int) یا عدد اعشاری (float) یا حتی لیست دیگری باشند. لیست ها تغییر پذیر هستند لیست ها قابلیت فراخوانی به صورت برش لیستی دارند. واحدهای تشکیل دهنده لیست ها را نیز کاراکتر یا داده می نامند. هر کاراکتر دارای یک اندیس عددی است.
متدهای لیست ها
اضافه کردن داده جدید به لیست:
Name.append(x)
حذف داده مدنظر از لیست:
Name.remove(x)
نمایش اندیس داده مدنظر در لیست:
Name.index(x)
مرتب سازی داده های درون لیست:
Name.sort()
تعداد دفعات تکرار یک داده در لیست:
Name.count(x)
افزودن لیستی به لیست دیگر:
Name.extend(x)
اضافه کردن داده جدید در شماره اندیس مدنظر:
Name.insert(I,x)
چندتایی مرتب
پایتون به آن tupleمی گوید. در تعریف چندتایی مرتب از علامت پرانتز ( ) در ابتدا و انتهای عبارت استفاده می کنیم. (البته ضروری نیست) تاپل ها داده های چند قسمتی اند و مشابه لیست ها هستند. تاپل ها تغییر ناپذیر هستند. فراخوانی و برش تاپل ها مشابه لیست ها است. پایتون یک تاپل تک عضوی را به صورت عدد صحیح (int) می بیند پس باید حتما بعد از آن کاما بگذاریم. می توان اعضای یک تاپل را نام گذاری کرد.
متدهای چندتایی مرتب
نمایش اندیس داده ی مدنظر در تاپل:
Name.index(x)
تعداد دفعات تکرار داده ی مدنظر در تاپل:
Name.count(x)
دیکشنری
پایتون به آن dictمی گوید. در تعریف دیکشنری از علامت کروشه { } در ابتدا و انتهای عبارت استفاده می کنیم. دیکشنری ها هم جزو داده های چند قسمتی هستند. دیکشنری ها تغییر پذیر هستند. در دیکشنری داده ها اندیس ندارند و ما باید آن ها را اندیس گذاری کنیم. اندیس ها نباید مشابه باشند ولی داده ها می توانند مشابه باشند. چون پایتون دیکشنری ها را بدون اندیس می بیند پس برش در آن تعریف نمی شود.
متدهای دیکشنری
ساخت یک کپی:
Name.copy()
حذف داده های دیکشنری:
Name.clear()
بررسی وجود یا عدم وجود اندیس مدنظر:
Name.has_key(x)
برگرداندن اندیس ها:
Name.keys()
برگرداندن داده ها:
Name.values()
افزودن داده ها به لیستی تاپل ها:
Name.items()
برگرداندن داده ها به دلخواه:
Name.get()
مجموعه
پایتون به آن setمی گوید. در تعریف مجموعه از علامت کروشه { } در ابتدا و انتهای عبارت استفاده می کنیم. مجموعه ها تغییر پذیر هستند. مجموعه ها اندیس ناپذیرند و نمی توان آن ها را اندیس گذاری کرد. چون پایتون مجموعه ها را بدون اندیس می بیند پس برش در آن تعریف نمی شود. نکته: در پایتون یک دستور است پس بهتر است از آن به عنوان نام گذاری مجموعه استفاده نشود.
متدهای مجموعه ها
ساخت یک کپی:
Name.copy()
حذف داده های مجموعه:
Name.clear()
اضافه کردن داده ی مد نظر:
Name.add(x)
حذف داده ی مدنظر:
Name.remove(x)
حذف داده ی مدنظر در صورت وجود:
Name.discard(x)
حذف داده ها در چند مرحله:
Name.pop()
افزودن داده:
Name.update(x)
متدهای مجموعه ها
بررسی داده های بین دو مجموعه:
Name.isdisjoint(x)
بررسی کوچکتر یا مساوی بودن (زیر مجموعه):
Name.issubset(x)
بررسی بزرگتر یا مساوی بودن:
Name.issuperset(x)
اجتماع بین دو مجموعه:
Name.union(x)
اشتراک بین دو مجموعه:
Name.intersection(x)
تفاضل دو مجموعه:
Name.difference(x)
تفاضل متقارن دو مجموعه:
Name.symmetric_difference(x)
با تشکر از توجه شما