دیتابیس Database و مدل Model در Django
دیتابیس Database و مدل Model در جنگو از درس قبل به خاطر دارید که آطلاعات دورهها به صورت ثابت داخل
تا اینجا یاد گرفتید که هر متغیر فقط یک مقدار را در خود نگه میدارد. اما در برنامههای واقعی معمولاً لازم است چندین مقدار مرتبط را کنار هم ذخیره کنیم. مثلاً لیست دانشآموزان، نمرات یک کلاس، رنگها یا شمارههای تلفن.
در پایتون برای این کار از لیست (List) استفاده میکنیم. لیست مجموعهای از دادهها است که به ترتیب در کنار هم قرار میگیرند و هر عضو دارای شماره (اندیس) مخصوص به خود است.
یکی از مهمترین ویژگیهای لیست این است که بعد از ایجاد نیز میتوان آن را تغییر داد؛ یعنی میتوان اعضای جدید اضافه کرد، اعضا را حذف کرد یا مقدار آنها را تغییر داد.
سادهترین روش ایجاد لیست استفاده از کروشه ([]) است.
colors = ["red", "blue", "black", "orange", "green"]
students = ["ali", "nami", "ayda", "yekta"]
scores = [18.5, 19, 18, 16, 17]در مثال بالا سه لیست مختلف ایجاد کردهایم. هر لیست میتواند شامل رشته، عدد یا هر نوع داده دیگری باشد.
برخلاف بسیاری از زبانهای برنامهنویسی، در پایتون لازم نیست همه اعضای لیست از یک نوع باشند.
personal_information = ["Ali", 19, 1.75, False]در این مثال یک رشته، یک عدد صحیح، یک عدد اعشاری و یک مقدار بولین در کنار هم قرار گرفتهاند. البته در برنامههای واقعی بهتر است اعضای یک لیست تا حد امکان از یک نوع باشند تا خوانایی برنامه بیشتر شود.
گاهی اوقات به جای استفاده از کروشه، از تابع list() استفاده میکنیم.
days = list(("saturday", "monday", "wednesday"))همچنین میتوان با استفاده از range() لیستی از اعداد ایجاد کرد.
numbers = list(range(10))خروجی:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]اگر بخواهیم یک مقدار چندین بار تکرار شود، میتوانیم از عملگر * استفاده کنیم.
zeros = [0] * 20در این مثال لیستی شامل ۲۰ عدد صفر ساخته میشود.
برای به دست آوردن تعداد اعضای یک لیست از تابع len() استفاده میکنیم.
print(len(zeros)هر عضو یک شماره یا اندیس (Index) دارد که از صفر شروع میشود.
print(colors[0])
print(colors[1])همانند رشتهها میتوان بخشی از لیست را استخراج کرد.
print(colors[1:3])
print(colors[:3])
print(colors[3:])خروجی این دستورات یک لیست جدید خواهد بود.
گاهی نمیدانیم لیست چند عضو دارد. در این حالت اندیسهای منفی بسیار کاربردی هستند.
print(colors[-1])
print(colors[-2])عدد -1 همیشه آخرین عضو لیست را برمیگرداند.
برای مشاهده تمام اعضا:
print(colors[:])برای نمایش یک در میان اعضا:
print(colors[::2])برای نمایش لیست به صورت برعکس:
print(colors[::-1])توجه کنید که این دستور فقط ترتیب نمایش را برعکس میکند و خود لیست تغییر نمیکند.
از آنجایی که لیست Mutable (قابل تغییر) است، میتوان مقدار اعضای آن را تغییر داد.
colors[2] = "white"colors.append("black")این دستور فقط یک عضو به انتهای لیست اضافه میکند.
colors.extend(["pink", "yellow"])یا
colors += ["brown", "violet"]هر دو دستور چند عضو را به انتهای لیست اضافه میکنند.
نکته مهم:
append() فقط یک عضو اضافه میکند، اما extend() تمام اعضای یک لیست دیگر را به لیست فعلی اضافه میکند.
colors.insert(2, "gray")
حذف آخرین عضو:
colors.pop()حذف یک عضو مشخص:
colors.remove("white")حذف چند عضو با استفاده از del
del colors[2:4]colors.clear()توجه کنید که بعد از اجرای clear() خود لیست حذف نمیشود؛ فقط اعضای آن پاک میشوند.
گاهی لازم است فقط بررسی کنیم که آیا یک مقدار داخل لیست وجود دارد یا خیر. برای این کار از عملگر in استفاده میکنیم.
if "blue" in colors:
print("وجود دارد")اگر عضو مورد نظر در لیست باشد، نتیجه True و در غیر این صورت False خواهد بود. همچنین اگر بخواهیم بررسی کنیم که یک مقدار در لیست وجود ندارد، از عملگر not in استفاده میکنیم.
if "purple" not in colors:
print("وجود ندارد")این عملگرها معمولاً قبل از جستجو یا حذف یک عضو استفاده میشوند تا از بروز خطا جلوگیری شود.
ابتدا بررسی میکنیم که آیا عضو مورد نظر وجود دارد یا خیر.
if "gray" in colors:سپس میتوانیم شماره اولین محل قرارگیری آن را پیدا کنیم.
colors.index("gray")اگر یک عضو چند بار تکرار شده باشد، تعداد آن را میتوان با دستور زیر به دست آورد.
colors.count("gray")
برای پردازش تمام اعضا معمولاً از حلقه for استفاده میکنیم.
for color in colors:
print(color)یا مثلاً دو حرف اول هر رنگ را نمایش دهیم.
for color in colors:
print(color[:2])اگر علاوه بر مقدار عضو، شماره جایگاه (ایندکس) آن را نیز بخواهیم از enumerate() استفاده میکنیم.
for index, name in enumerate(colors):
print(index, name)
مرتبسازی صعودی:
colors.sort()مرتبسازی نزولی:
colors.sort(reverse=True)مرتبسازی بر اساس طول رشته:
colors.sort(key=len)مرتبسازی بدون توجه به حروف بزرگ و کوچک:
colors.sort(key=str.lower)sorted() استفاده میکنیم.new_colors = sorted(colors)در این روش، لیست اصلی بدون تغییر باقی میماند و یک لیست مرتبشده جدید ساخته میشود.
در بخش قبل یاد گرفتید که با استفاده از [::-1] میتوان لیست را به صورت برعکس نمایش داد، اما خود لیست تغییری نمیکرد. اگر بخواهیم ترتیب اعضای خود لیست برای همیشه برعکس شود، از متد reverse() استفاده میکنیم.
colors.reverse()
print(colors)تفاوت این دو روش را به خاطر بسپارید:
colors[::-1] یک لیست جدید با ترتیب برعکس ایجاد میکند و لیست اصلی تغییر نمیکند.colors.reverse() ترتیب اعضای خود لیست اصلی را برعکس میکند.برای ساخت یک نسخه مستقل از لیست میتوان از روشهای زیر استفاده کرد.
colors1 = colors.copy()
colors2 = list(colors)
colors3 = colors[:]اگر بعداً لیست اصلی تغییر کند، نسخههای کپی شده تغییر نخواهند کرد.
در این درس با لیست (List) به عنوان مهمترین و پرکاربردترین ساختار داده در پایتون آشنا شدید. یاد گرفتید چگونه لیست ایجاد کنید، به اعضای آن دسترسی داشته باشید، اعضای جدید اضافه کنید، آنها را حذف کنید، جستجو انجام دهید، لیست را مرتب کنید و در نهایت از آن کپی بگیرید. تسلط بر لیستها پایه بسیاری از برنامههای پایتون و حتی کتابخانههایی مانند NumPy و Pandas است؛ بنابراین ارزش دارد زمان کافی برای تمرین این مبحث بگذارید.
لیست زیر را در نظر بگیرید.
scores = [18, 15, 20, 17, 19]
بدون استفاده از تابع max()، با استفاده از حلقه for بزرگترین نمره را پیدا کرده و نمایش دهید.
لیست زیر را در نظر بگیرید.
colors = ["red", "blue", "red", "green", "blue", "yellow"]
یک لیست جدید بسازید که فقط رنگهای غیرتکراری را در خود نگه دارد.
راهنمایی: از عملگر in استفاده کنید.
لیست زیر را در نظر بگیرید.
scores = [8, 12, 19, 10, 17, 9, 15]
با استفاده از حلقه for، تعداد نمرات بزرگتر یا مساوی ۱۰ را محاسبه و چاپ کنید.
لیست زیر را در نظر بگیرید.
students = ["Mohammad", "Ali", "Nima", "Ava", "Yekta"]
بدون استفاده از تابع min()، کوتاهترین نام را پیدا کرده و نمایش دهید.
راهنمایی: از تابع len() استفاده کنید.
لیست زیر را در نظر بگیرید.
numbers = [1, 2, 3, 4, 5, 6]
بدون استفاده از متد reverse() و بدون استفاده از [::-1]، یک لیست جدید بسازید که اعضای آن برعکس باشند.
لیست زیر را در نظر بگیرید.
colors = ["red", "gray", "blue", "gray", "green", "gray"]
با استفاده از حلقه for و تابع enumerate() شماره تمام خانههایی را که مقدار آنها "gray" است، نمایش دهید.
بدون اینکه اعداد را مستقیماً بنویسید، با استفاده از range() و حلقه for لیستی بسازید که شامل تمام اعداد زوج بین ۰ تا ۲۰ باشد.
ابتدا یک لیست خالی به نام shopping_list ایجاد کنید.
سپس با استفاده از append() موارد زیر را به ترتیب به آن اضافه کنید:
سپس مراحل زیر را انجام دهید:
تا اینجا با لیست (List) آشنا شدید؛ ساختاری که میتوان اعضای آن را بهراحتی تغییر داد. اما گاهی لازم است مجموعهای از دادهها را ذخیره کنیم که پس از ایجاد، نباید تغییر کنند. در این مواقع از تاپل (Tuple) استفاده میکنیم. در درس بعد یاد میگیریم تاپل چیست، چه تفاوتی با لیست دارد و در چه شرایطی استفاده از آن انتخاب بهتری است.
گام بعدی : تاپل در پایتوندیتابیس 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) یکی از معتبرترین آزمونهای ارزیابی مهارت زبان انگلیسی
آزمون پلاس مرجع آموزش برنامهنویسی، هوش مصنوعی، شبکه، نمونه سؤالات کنکورهای کامپیوتر، آزمونهای زبان دکتری و مدارک بینالمللی فناوری اطلاعات است. با ارائه آموزشهای تخصصی، منابع آموزشی و راهنمای آزمونها، به دانشجویان و متخصصان کمک میکنیم تا مهارتهای خود را توسعه داده و در مسیر موفقیت تحصیلی و شغلی گام بردارند.