دیتابیس Database و مدل Model در Django
دیتابیس Database و مدل Model در جنگو از درس قبل به خاطر دارید که آطلاعات دورهها به صورت ثابت داخل
به زبان ساده، Set مجموعهای از عناصر منحصربهفرد (Unique) است که ترتیب مشخصی ندارد و اجازه ذخیره عناصر تکراری را نمیدهد.
students = {"Ali", "Sara", "Reza"}
print(students)خروجی ممکن است به شکل زیر باشد:
{'Sara', 'Ali', 'Reza'}دقت کنید که ترتیب نمایش عناصر ممکن است در هر بار اجرای برنامه متفاوت باشد، زیرا مجموعهها ترتیب ثابتی ندارند.
مجموعهها چند ویژگی مهم دارند:
به همین دلیل، Set برای حذف دادههای تکراری و مقایسه مجموعهها بسیار کاربردی است.
در پایتون برای ایجاد یک مجموعه از آکولاد ({}) یا تابع set() استفاده میکنیم.
رایجترین روش، استفاده از آکولاد است.
fruits = {"Apple", "Banana", "Orange"}
print(fruits)خروجی:
{'Apple', 'Orange', 'Banana'}گاهی اطلاعات ما در قالب یک لیست قرار دارد، اما میخواهیم تمام مقادیر تکراری را حذف کنیم. در این حالت کافی است از تابع set() استفاده کنیم.
numbers = [10, 20, 30, 20, 40, 10, 50]
unique_numbers = set(numbers)
print(unique_numbers)خروجی:
{40, 10, 50, 20, 30}همانطور که میبینید، اعداد تکراری (10 و 20) فقط یک بار در مجموعه باقی ماندهاند.
هر کاراکتر رشته به یک عضو از مجموعه تبدیل میشود.
text = "python"
letters = set(text)
print(letters)خروجی:
{'t', 'h', 'o', 'n', 'y', 'p'}اگر رشته دارای حروف تکراری باشد، فقط یک نسخه از هر حرف در مجموعه ذخیره میشود.
مثال:
text = "programming"
print(set(text))خروجی (ممکن است ترتیب متفاوت باشد):
{'r', 'i', 'm', 'g', 'a', 'p', 'o', 'n'}حرف g و m چند بار در رشته وجود دارند، اما در مجموعه فقط یک بار ذخیره شدهاند.
تابع set() میتواند تاپل را نیز به مجموعه تبدیل کند.
numbers = (1, 2, 3, 2, 4, 1)
result = set(numbers)
print(result)خروجی:
{1, 2, 3, 4}یکی از اشتباهات رایج برنامهنویسان مبتدی این است که تصور میکنند با نوشتن آکولاد خالی، یک مجموعه ایجاد میشود.
my_set = {}
print(type(my_set))خروجی:
<class 'dict'>در واقع، {} یک دیکشنری خالی ایجاد میکند، نه یک مجموعه. برای ساخت یک مجموعه خالی باید از تابع set() استفاده کنید.
my_set = set()
print(type(my_set))خروجی:
<class 'set'>نکته مهم:
تنها زمانی از{}برای ساخت مجموعه استفاده کنید که حداقل یک عضو داخل آن قرار داشته باشد. برای ساخت مجموعه خالی همیشه باید ازset()استفاده کنید.
یکی از مهمترین ویژگیهای Set این است که اعضای تکراری را بهصورت خودکار حذف میکند.
خروجی:
در پایتون برای اضافه کردن عضو جدید به یک مجموعه از متد add() استفاده میکنیم.
متد add() یک مقدار جدید به مجموعه اضافه میکند.
languages = {"Python", "Java", "C++"}
languages.add("JavaScript")
print(languages)خروجی:
{'Python', 'Java', 'C++', 'JavaScript'}در این مثال، زبان برنامهنویسی JavaScript به مجموعه اضافه شده است.
اگر مقداری که میخواهیم اضافه کنیم، از قبل در مجموعه وجود داشته باشد، اتفاق خاصی نمیافتد.
numbers = {1, 2, 3}
numbers.add(2)
print(numbers)خروجی:
{1, 2, 3}چون Set اجازه ذخیره مقدار تکراری را نمیدهد، عدد 2 دوباره اضافه نمیشود.
اگر بخواهیم چند مقدار را همزمان به یک مجموعه اضافه کنیم، از متد update() استفاده میکنیم.
colors = {"Red", "Blue"}
colors.update(["Green", "Yellow", "Black"])
print(colors)خروجی:
{'Red', 'Blue', 'Green', 'Yellow', 'Black'}تابع update() میتواند چندین مقدار را از یک لیست، تاپل یا مجموعه دیگر دریافت کند.
مثال:
set1 = {1, 2, 3}
set1.update((4, 5, 6))
print(set1)خروجی:
{1, 2, 3, 4, 5, 6}
برای حذف اعضای مجموعه چند روش وجود دارد که هر کدام کاربرد خاصی دارند.
متد remove() یک عضو مشخص را از مجموعه حذف میکند.
fruits = {"Apple", "Banana", "Orange"}
fruits.remove("Banana")
print(fruits)خروجی:
{'Apple', 'Orange'}اما اگر عضوی که میخواهیم حذف کنیم وجود نداشته باشد، برنامه با خطا متوقف میشود.
fruits.remove("Mango")خروجی:
KeyErrorمتد discard() مانند remove() عمل میکند، اما اگر عضو وجود نداشته باشد، خطا ایجاد نمیکند.
fruits = {"Apple", "Banana", "Orange"}
fruits.discard("Mango")
print(fruits)خروجی:
{'Apple', 'Banana', 'Orange'}به همین دلیل در برنامههای واقعی، معمولا discard() انتخاب امنتری است.
pop()متد pop() یک عضو را از مجموعه حذف میکند و همان عضو حذفشده را برمیگرداند. اما یک نکته مهم وجود دارد:
چون Set ترتیب مشخصی ندارد، نمیتوانیم مشخص کنیم کدام عضو حذف میشود.
numbers = {10, 20, 30, 40}
removed = numbers.pop()
print(removed)
print(numbers)خروجی ممکن است مثلا باشد:
10
{20, 30, 40}اما ممکن است در اجرای دیگر عضو دیگری حذف شود. بنابراین اگر میخواهیم یک عضو مشخص را حذف کنیم، بهتر است از remove() یا discard() استفاده کنیم.
clear()اگر بخواهیم تمام اعضای یک مجموعه را حذف کنیم، از متد clear() استفاده میکنیم.
students = {"Ali", "Sara", "Reza"}
students.clear()
print(students)خروجی:
set()بعد از اجرای clear()، مجموعه همچنان وجود دارد اما هیچ عضوی داخل آن نیست.
برای بررسی اینکه آیا یک مقدار داخل مجموعه وجود دارد یا خیر، از عملگر in استفاده میکنیم.
مثال:
languages = {"Python", "Java", "C++"}
print("Python" in languages)خروجی:
Trueچون Python در مجموعه وجود دارد.
مثال :
languages = {"Python", "Java", "C++"}
print("PHP" in languages)خروجی:
Falseچون PHP عضو این مجموعه نیست.
not inبرای بررسی نبودن یک عضو در مجموعه میتوانیم از not in استفاده کنیم.
students = {"Ali", "Sara", "Reza"}
if "Mohammad" not in students:
print("Student not found")خروجی:
Student not foundبرخلاف List، در Set نمیتوانیم با شماره اندیس به اعضا دسترسی داشته باشیم. مثلاً این کد اشتباه است:
خروجی:
زیرا مجموعهها ترتیب و اندیس ندارند.
یکی از ویژگیهای قدرتمند Set در پایتون، امکان انجام عملیات ریاضی روی مجموعهها است. این عملیات زمانی کاربرد دارند که بخواهیم دو گروه از دادهها را با هم مقایسه کنیم. برای مثال:
میتوانیم بررسی کنیم:
عملیات Union تمام اعضای دو مجموعه را ترکیب میکند و اعضای تکراری را فقط یک بار نگه میدارد. برای انجام اجتماع از متد union() یا علامت | استفاده میکنیم.
مثال:
python_students = {"Ali", "Sara", "Reza"}
web_students = {"Sara", "Mina", "Hamed"}
all_students = python_students.union(web_students)
print(all_students)خروجی:
{'Ali', 'Sara', 'Reza', 'Mina', 'Hamed'}دانشآموز Sara در هر دو مجموعه وجود داشت، اما فقط یک بار ذخیره شد.
روش دوم با استفاده از عملگر |:
all_students = python_students | web_students
print(all_students)عملیات Intersection فقط اعضای مشترک بین دو مجموعه را برمیگرداند. برای این کار از متد intersection() یا علامت & استفاده میکنیم.
مثال:
python_students = {"Ali", "Sara", "Reza"}
web_students = {"Sara", "Mina", "Hamed"}
common_students = python_students.intersection(web_students)
print(common_students)خروجی:
{'Sara'}در این مثال فقط Sara در هر دو کلاس حضور دارد.
روش دوم:
common_students = python_students & web_studentsعملیات Difference اعضایی را برمیگرداند که در مجموعه اول وجود دارند اما در مجموعه دوم وجود ندارند. از متد difference() یا علامت - استفاده میکنیم.
مثال:
python_students = {"Ali", "Sara", "Reza"}
web_students = {"Sara", "Mina", "Hamed"}
result = python_students.difference(web_students)
print(result)خروجی:
{'Ali', 'Reza'}یعنی دانشآموزانی که فقط در کلاس پایتون هستند.
اگر ترتیب مجموعهها را تغییر دهیم، نتیجه هم تغییر میکند:
result = web_students - python_students
print(result)خروجی:
{'Mina', 'Hamed'}این عملیات اعضایی را برمیگرداند که فقط در یکی از دو مجموعه وجود دارند، اما اعضای مشترک را حذف میکند. از متد symmetric_difference() یا علامت ^ استفاده میکنیم.
مثال:
python_students = {"Ali", "Sara", "Reza"}
web_students = {"Sara", "Mina", "Hamed"}
result = python_students.symmetric_difference(web_students)
print(result)خروجی:
{'Ali', 'Reza', 'Mina', 'Hamed'}چون Sara در هر دو مجموعه وجود داشت، حذف شد.
اگر بخواهیم تمام اعضای یک مجموعه را یکییکی بررسی کنیم، میتوانیم از حلقه for استفاده کنیم. از آنجا که Set ترتیب مشخصی ندارد، ترتیب نمایش اعضا ممکن است در هر بار اجرای برنامه متفاوت باشد.
مثال:
colors = {"Red", "Blue", "Green", "Yellow"}
for color in colors:
print(color)خروجی:
Green
Red
Yellow
Blueممکن است خروجی در اجرای بعدی با ترتیب دیگری نمایش داده شود.
مانند سایر ساختارهای داده، میتوانیم همراه با حلقه for از شرطها استفاده کنیم.
مثال:
numbers = {5, 10, 15, 20, 25}
for number in numbers:
if number > 15:
print(number)خروجی:
20
25در این مثال فقط اعدادی چاپ میشوند که بزرگتر از ۱۵ هستند.
برای به دست آوردن تعداد اعضای یک مجموعه از تابع len() استفاده میکنیم.
مثال:
students = {"Ali", "Sara", "Reza", "Mina"}
print(len(students))خروجی:
4گاهی نیاز داریم به اعضای مجموعه با استفاده از اندیس دسترسی داشته باشیم. چون Set اندیس ندارد، ابتدا باید آن را به List تبدیل کنیم. برای این کار از تابع list() استفاده میکنیم.
مثال:
numbers = {10, 20, 30, 40}
numbers_list = list(numbers)
print(numbers_list)خروجی:
[40, 10, 20, 30]حالا میتوانیم از اندیس استفاده کنیم:
print(numbers_list[0])خروجی:
40| ویژگی | List | Tuple | Set | Dictionary |
|---|---|---|---|---|
| ترتیب دارد | بله | بله | خیر | بله |
| قابل تغییر است | بله | خیر | بله | بله |
| مقدار تکراری قبول میکند | بله | بله | خیر | کلیدها خیر |
| دسترسی با اندیس | بله | بله | خیر | با کلید |
| کاربرد اصلی | ذخیره لیست اطلاعات | دادههای ثابت | دادههای یکتا و عملیات مجموعهها | ذخیره اطلاعات به صورت کلید-مقدار |
لیست زیر شامل نام کاربران ثبتشده در سایت است.
با استفاده از set() کاربران تکراری را حذف کنید و تعداد کاربران یکتا را نمایش دهید.
users = ["Ali", "Sara", "Ali", "Reza", "Sara", "Mina"]
خروجی باید شامل نامهای بدون تکرار و تعداد آنها باشد.
یک Set از نام کاربران ثبتنامشده ایجاد کنید. سپس یک نام از کاربر دریافت کنید و بررسی کنید که آیا در مجموعه وجود دارد یا خیر.
registered_users = {"ali", "sara", "reza", "mina"}
اگر کاربر وجود داشت عبارت Welcome و در غیر این صورت عبارت User not found چاپ شود.
دو کلاس پایتون و هوش مصنوعی داریم. مشخص کنید چه دانشآموزانی در هر دو کلاس شرکت کردهاند.
python_class = {"Ali", "Sara", "Reza", "Mina"}
ai_class = {"Sara", "Mina", "Hamed"}
از عملیات intersection() یا علامت & استفاده کنید.
دو گروه از دانشآموزان داریم. مشخص کنید چه افرادی فقط در گروه اول هستند.
group1 = {"Ali", "Sara", "Reza", "Mina"}
group2 = {"Sara", "Mina", "Hamed"}
از عملیات تفاضل مجموعهها استفاده کنید.
یک جمله از کاربر دریافت کنید و تعداد کلمات غیرتکراری آن را نمایش دهید.
text = "python is easy and python is powerful"
راهنمایی: متن را با split() به لیست تبدیل کنید و سپس با set() کلمات تکراری را حذف کنید.
بعد از آشنایی با ساختارهای داده در پایتون، حالا زمان یادگیری یکی از مهمترین مفاهیم برنامهنویسی یعنی توابع (Functions) است. توابع به ما کمک میکنند بخشهایی از کد را یکبار نوشته و چندین بار استفاده کنیم. با استفاده از توابع، برنامهها منظمتر، کوتاهتر و قابل نگهداریتر میشوند. در این بخش با نحوه تعریف و استفاده از توابع، ورودیها، خروجیها و کاربردهای آنها در پروژههای واقعی آشنا میشویم.
گام بعدی : توابع در پایتوندیتابیس Database و مدل Model در جنگو از درس قبل به خاطر دارید که آطلاعات دورهها به صورت ثابت داخل
طراحی قالب سایت با HTML، CSS و Tailwind CSS تا اینجا با ساختار اصلی Django، URL، View و Template آشنا
Template و رابط کاربری در Django در سه درس قبلی، با ساخت پروژه، ساختار Django، URL و View آشنا شدیم.
URL و View در جنگو در درسهای قبل با Django آشنا شدیم، محیط مجازی را ساختیم، Django را نصب کردیم
ساختار Project و App در Django در درس قبل با Django آشنا شدیم، محیط مجازی ساختیم، Django را نصب کردیم
شروع کار با Django در دوره آموزش جامع پایتون با مفاهیمی مانند متغیرها، شرطها، حلقهها، توابع، کلاسها، فایلها و کار
عملیات CRUD درSQLite در بخش قبل با مفهوم پایگاه داده، SQLite و نحوه اتصال پایتون به پایگاه داده آشنا شدیم.
اتصال به پایگاه داده (Database) در پایتون وقتی یک برنامه اطلاعاتی را از کاربر دریافت میکند، معمولاً لازم است این
مدیریت خطا (Error Handling) در پایتون در هنگام اجرای برنامه، ممکن است کاربر ورودی نامناسبی وارد کند یا برنامه با
کار با فایل، ماژول، پکیج و محیط مجازی در پایتون در پروژههای واقعی، معمولاً همهی کدها را در یک فایل
کپسولهسازی (Encapsulation) در پایتون فرض کنید کلاسی برای حساب بانکی نوشتهاید. اگر هر کسی بتواند موجودی حساب را مستقیماً تغییر
وراثت و مفاهیم پیشرفته شی گرایی تا اینجا یاد گرفتهاید که چگونه با استفاده از کلاس (Class) و شی (Object)
کلاس و شیء در پایتون (Object-Oriented Programming) تا اینجا با متغیرها، شرطها، حلقهها، توابع و ساختارهای داده در پایتون آشنا
تابع لامبدا (Lambda Function) در پایتون گاهی اوقات فقط به یک تابع خیلی کوچک نیاز داریم؛ تابعی که قرار است
توابع در پایتون اگر هنگام برنامهنویسی مجبور شوید یک قطعه کد را بارها تکرار کنید، برنامه شما طولانی، شلوغ و
مجموعه (Set) در پایتون به زبان ساده، Set مجموعهای از عناصر منحصربهفرد (Unique) است که ترتیب مشخصی ندارد و اجازه
دیکشنری در پایتون تا اینجا با لیست (List) و تاپل (Tuple) آشنا شدیم که هر دو مجموعهای از دادهها را
تاپل (Tuple) در پایتون بعد از آشنایی با لیست (List)، نوبت به یکی دیگر از ساختارهای داده در پایتون یعنی
لیست (List) در پایتون پرکاربردترین ساختار داده تا اینجا یاد گرفتید که هر متغیر فقط یک مقدار را در خود
ساختارهای داده در پایتون در برنامههای واقعی معمولاً با یک داده سروکار نداریم، بلکه باید تعداد زیادی اطلاعات را ذخیره
حلقههای تکرار در پایتون (Python Loops) فرض کنید معلم میخواهد نمرات ۳۰ دانشآموز را از کاربر دریافت کند. اگر حلقه
عملگرهای مقایسهای (Comparison Operators) تا اینجا یاد گرفتیم که با عملگرهای محاسباتی میتوانیم اعداد را با هم جمع، تفریق و…
دریافت ورودی از کاربر در پایتون (Python Input) تا اینجا یاد گرفتیم که چگونه مقدار یک متغیر را خودمان داخل
عملگرهای محاسباتی در پایتون (Arithmetic Operators) تقریباً تمام برنامهها به انجام محاسبات نیاز دارند؛ از جمع و تفریق ساده گرفته
کار با رشتهها در پایتون (Python Strings) مدیریت و پردازش متنها در برنامهها در دنیای برنامهنویسی، اطلاعات همیشه عدد و
متغیرها در پایتون (Python Variables) اولین قدم برای ذخیره و پردازش اطلاعات تصور کنید یک برنامه مینویسید که قرار است
شروع برنامه نویسی با پایتون ساخت اولین پروژه (Hello World) فهرست مطالب بعد از نصب Python چه کاری انجام دهیم؟
آموزش نصب پایتون و ابزارهای موردنیاز (راهنمای کامل برای ویندوز) اگر تصمیم گرفتهاید برنامهنویسی را یاد بگیرید، احتمالاً نام زبان
الگوهای کندل استیک پیشرفته: راهنمای جامع برای معاملهگران حرفهای الگو های کندل استیک پیشرفته (یا به بیان دیگر الگوهای شمعی
آیلتس جنرال یا آکادمیک؟ کدام را باید انتخاب کنیم؟ آیا میدانید که انتخاب اشتباه بین آیلتس آکادمیک و جنرال میتواند
دانلود رایگان نمونه سوالات آزمون PTE جنرال اگر تصمیم گرفتهاید با هدف مهاجرت به یک کشور انگلیسی زبان، در آزمون
معرفی آزمون های زبان انگلیسی معتبر در ایران| کدام یک بهتر است؟ اگه قصد ادامه تحصیل یا مهاجرت داشته باشید،
بهترین روشهای آمادگی برای آزمون تافل چگونه برای آزمون تافل آماده شویم؟ آیا شما هم قصد دارید برای کسب نمره
چگونه در خارج از کشور برای آزمون آیلتس ثبت نام کنیم؟ اگر قصد مهاجرت تحصیلی یا کاری دارید، احتمالاً نام
آزمون GRE مناسب چه رشتههایی است؟ اگر قصد ادامه تحصیل در مقاطع کارشناسی ارشد یا دکترا در دانشگاههای بینالمللی را
بهترین نمونه سوالات اسپیکینگ تافل هوم ادیشن آزمون تافل هوم ادیشن این روزها یکی از پرطرفدارترین گزینهها برای سنجش مهارت
نحوه ثبت نام در آزمون دولینگو در ایران به صورت کامل نحوه ثبت نام در آزمون دولینگو در ایران چگونه
هزینه آزمون GRE در ایران چقدر است؟ اگر قصد مهاجرت تحصیلی دارید، احتمالاً نام آزمون GRE به گوشتان خورده است.
راهنمای کامل ثبتنام و پرداخت هزینه آزمون PTE در ترکیه برای متقاضیان ایرانی آزمون PTE (Pearson Test of English) یکی از
ووچر آزمون چیست و چگونه میتوان آن را تهیه کرد؟ ثبتنام در آزمونهای بینالمللی مانند TOEFL، GRE، PTE، GMAT، IELTS
بهترین تکنیک های لیسنینگ آیلتس برای کسب نمره بالا آزمون آیلتس (IELTS) یکی از معتبرترین آزمونهای ارزیابی مهارت زبان انگلیسی
آزمون پلاس مرجع آموزش برنامهنویسی، هوش مصنوعی، شبکه، نمونه سؤالات کنکورهای کامپیوتر، آزمونهای زبان دکتری و مدارک بینالمللی فناوری اطلاعات است. با ارائه آموزشهای تخصصی، منابع آموزشی و راهنمای آزمونها، به دانشجویان و متخصصان کمک میکنیم تا مهارتهای خود را توسعه داده و در مسیر موفقیت تحصیلی و شغلی گام بردارند.