شروع کار با Django
شروع کار با Django در دوره آموزش جامع پایتون با مفاهیمی مانند متغیرها، شرطها، حلقهها، توابع، کلاسها، فایلها و کار
در بخش قبل با مفهوم پایگاه داده، SQLite و نحوه اتصال پایتون به پایگاه داده آشنا شدیم. در این بخش، وارد عملیات اصلی کار با دادهها میشویم و یاد میگیریم چگونه اطلاعات را اضافه، مشاهده، ویرایش و حذف کنیم. در ادامه نیز با جستوجو، مرتبسازی و مدیریت بهتر دادهها آشنا خواهیم شد.
حالا که پایگاه داده و جدول students را ایجاد کردهایم، وقت آن است که اطلاعات را داخل جدول ذخیره کنیم. برای افزودن رکورد جدید به جدول در SQL از دستور INSERT INTO استفاده میکنیم. ساختار کلی آن به این شکل است:
INSERT INTO table_name (column1, column2, column3)
VALUES (value1, value2, value3);برای مثال، اگر بخواهیم یک دانشآموز به جدول students اضافه کنیم:
INSERT INTO students (id, name, age, grade)
VALUES (1, 'Ali', 16, 18.5);اما چون در پایتون با SQLite کار میکنیم، این دستور را با execute() اجرا میکنیم.
import sqlite3
connection = sqlite3.connect("school.db")
cursor = connection.cursor()
cursor.execute("""
INSERT INTO students (id, name, age, grade)
VALUES (1, 'Ali', 16, 18.5)
""")
connection.commit()
connection.close()بعد از اجرای برنامه، یک رکورد جدید در جدول students ذخیره میشود. جدول ما اکنون چیزی شبیه این خواهد بود:
| id | name | age | grade |
|---|---|---|---|
| 1 | Ali | 16 | 18.5 |
میتوانیم به ازاء هر رکورد یک بار از دستور INSERT استفاده کنیم:
import sqlite3
connection = sqlite3.connect("school.db")
cursor = connection.cursor()
cursor.execute("""
INSERT INTO students (id, name, age, grade)
VALUES (1, 'Ali', 16, 18.5)
""")
cursor.execute("""
INSERT INTO students (id, name, age, grade)
VALUES (2, 'Sara', 17, 19.2)
""")
cursor.execute("""
INSERT INTO students (id, name, age, grade)
VALUES (3, 'Reza', 16, 17.8)
""")
connection.commit()
connection.close()حالا جدول شامل سه رکورد خواهد بود:
| id | name | age | grade |
|---|---|---|---|
| 1 | Ali | 16 | 18.5 |
| 2 | Sara | 17 | 19.2 |
| 3 | Reza | 16 | 17.8 |
حالا اگر بخواهیم اطلاعات را از کاربر دریافت کنیم، نمیتوانیم مقدارها را مستقیماً داخل رشته SQL قرار دهیم. برای این کار از پارامترها استفاده میکنیم.
فرض کنید میخواهیم نام، سن و معدل دانشآموز را از کاربر دریافت کنیم:
import sqlite3
name = input("نام دانشآموز: ")
age = int(input("سن: "))
grade = float(input("معدل: "))
connection = sqlite3.connect("school.db")
cursor = connection.cursor()
cursor.execute("""
INSERT INTO students (name, age, grade)
VALUES (?, ?, ?)
""", (name, age, grade))
connection.commit()
connection.close()در حالت علامتهای ? جای مقادیر واقعی را مشخص میکنند:
VALUES (?, ?, ?)و مقادیر موردنظر را بهصورت یک تاپل به ()execute میدهیم:
(name, age, grade)پایتون مقدارها را بهترتیب در جای ? قرار میدهد. مثلاً اگر کاربر وارد کند:
نام دانشآموز: Mina
سن: 17
معدل: 19.5دستور اجراشده عملاً اطلاعاتی مشابه این را ذخیره خواهد کرد:
Mina | 17 | 19.5استفاده از پارامترها روش درست و امن برای قرار دادن دادههای کاربر در دستورات SQL است و از ساختن مستقیم رشتههای SQL با ورودی کاربر جلوگیری میکند. بنابراین بهتر است هیچوقت چنین کاری نکنیم:
cursor.execute(
f"INSERT INTO students (name, age) VALUES ('{name}', {age})"
)و بهجای آن از پارامترها استفاده کنیم:
cursor.execute(
"INSERT INTO students (name, age) VALUES (?, ?)",
(name, age)
)idدر جدول فعلی، id را خودمان وارد میکنیم:
1
2
3اما در برنامههای واقعی معمولاً بهتر است شماره شناسه هر رکورد بهصورت خودکار ایجاد شود. برای این کار بعداً هنگام طراحی جدول از ویژگیهایی مانند:
INTEGER PRIMARY KEY AUTOINCREMENTاستفاده خواهیم کرد. در نتیجه دیگر لازم نیست هنگام ثبت دانشآموز، id را خودمان وارد کنیم. فعلاً برای اینکه مفهوم INSERT را ساده یاد بگیریم، به همین صورت که گفتیم، عمل میکنیم.
تا اینجا یاد گرفتیم چگونه اطلاعات را در پایگاه داده ذخیره کنیم. اما ذخیره کردن اطلاعات بهتنهایی کافی نیست؛ برنامه باید بتواند اطلاعات ذخیرهشده را بخواند و نمایش دهد. برای دریافت اطلاعات از یک جدول در SQL از دستور SELECT استفاده میکنیم. سادهترین شکل آن چنین است:
SELECT * FROM students;علامت * یعنی همه ستونها را انتخاب کن. برای اجرای این دستور در پایتون:
import sqlite3
connection = sqlite3.connect("school.db")
cursor = connection.cursor()
cursor.execute("SELECT * FROM students")
rows = cursor.fetchall()
for row in rows:
print(row)
connection.close()اگر جدول ما شامل این اطلاعات باشد:
| id | name | age | grade |
|---|---|---|---|
| 1 | Ali | 16 | 18.5 |
| 2 | Sara | 17 | 19.2 |
| 3 | Reza | 16 | 17.8 |
خروجی برنامه تقریباً به این شکل خواهد بود:
(1, 'Ali', 16, 18.5)
(2, 'Sara', 17, 19.2)
(3, 'Reza', 16, 17.8)fetchall()در مثال بالا از این دستور استفاده کردیم:
rows = cursor.fetchall()متد fetchall() تمام رکوردهایی را که توسط دستور SELECT پیدا شدهاند، دریافت میکند. نتیجه معمولاً به شکل از تاپلها برمیگردد. برای مثال:
[
(1, 'Ali', 16, 18.5),
(2, 'Sara', 17, 19.2),
(3, 'Reza', 16, 17.8)
]به همین دلیل میتوانیم با یک حلقه for روی آنها حرکت کنیم:
for row in rows:
print(row)میتوانیم بهجای چاپ کل تاپل، هر مقدار را جداگانه نمایش دهیم.
import sqlite3
connection = sqlite3.connect("school.db")
cursor = connection.cursor()
cursor.execute("SELECT * FROM students")
rows = cursor.fetchall()
for row in rows:
print("شناسه:", row[0])
print("نام:", row[1])
print("سن:", row[2])
print("معدل:", row[3])
print("----------------")
connection.close()خروجی:
شناسه: 1
نام: Ali
سن: 16
معدل: 18.5
----------------
شناسه: 2
نام: Sara
سن: 17
معدل: 19.2
----------------
شناسه: 3
نام: Reza
سن: 16
معدل: 17.8
----------------در حالت row[0] شناسه را نشان میدهد. row[1] نام را نشان میدهد. row[2] سن را نشان میدهد. و row[3] معدل را نشان میدهد.
لازم نیست همیشه تمام ستونهای جدول را دریافت کنیم. مثلاً اگر فقط نام و معدل دانشآموزان را بخواهیم:
import sqlite3
connection = sqlite3.connect("school.db")
cursor = connection.cursor()
cursor.execute("SELECT name, grade FROM students")
rows = cursor.fetchall()
for row in rows:
print("نام:", row[0], "| معدل:", row[1])
connection.close()خروجی:
نام: Ali | معدل: 18.5
نام: Sara | معدل: 19.2
نام: Reza | معدل: 17.8بنابراین:
SELECT * FROM studentsیعنی همه ستونها را دریافت کن. اما:
SELECT name, grade FROM studentsیعنی فقط ستونهای name و grade را دریافت کن.
fetchoneگاهی نمیخواهیم تمام رکوردها را دریافت کنیم و فقط به اولین رکورد نیاز داریم. در این حالت میتوانیم از ()fetchone استفاده کنیم:
import sqlite3
connection = sqlite3.connect("school.db")
cursor = connection.cursor()
cursor.execute("SELECT * FROM students")
row = cursor.fetchone()
print(row)
connection.close()اگر جدول شامل سه دانشآموز باشد، خروجی فقط اولین رکورد خواهد بود:
(1, 'Ali', 16, 18.5)تا اینجا با SELECT یاد گرفتیم که اطلاعات جدول را دریافت کنیم. اما در برنامههای واقعی معمولاً نمیخواهیم همه اطلاعات را نمایش دهیم. مثلاً ممکن است بخواهیم فقط دانشآموزان بالای 18 سال را پیدا کنیم. یا اینکه فقط دانشآموزی با نام مشخص را پیدا کنیم. یا حتی فقط دانشآموزانی با معدل بالاتر از 18 را نمایش دهیم. برای این کار از دستور WHERE استفاده میکنیم.
ساختار کلی:
SELECT column1, column2
FROM table_name
WHERE condition;فرض کنید میخواهیم فقط دانشآموزانی را پیدا کنیم که معدل آنها بیشتر از 18 است:
import sqlite3
connection = sqlite3.connect("school.db")
cursor = connection.cursor()
cursor.execute("""
SELECT * FROM students
WHERE grade > 18
""")
students = cursor.fetchall()
for student in students:
print(student)
connection.close()اگر اطلاعات جدول به این باشد:
| id | name | age | grade |
|---|---|---|---|
| 1 | Ali | 16 | 18.5 |
| 2 | Sara | 17 | 19.2 |
| 3 | Reza | 16 | 17.8 |
| 4 | Mina | 18 | 15.5 |
خروجی چنین میشود:
(1, 'Ali', 16, 18.5)
(2, 'Sara', 17, 19.2)زیرا فقط معدلهای بزرگتر از 18 انتخاب شدهاند.
WHEREاگر مقدار موردنظر را از کاربر دریافت کنیم، باید مانند INSERT از ? استفاده کنیم. مثلاً کاربر یک معدل وارد میکند و برنامه دانشآموزانی را نشان میدهد که معدلشان بیشتر از آن مقدار است:
import sqlite3
grade = float(input("معدل موردنظر را وارد کنید: "))
connection = sqlite3.connect("school.db")
cursor = connection.cursor()
cursor.execute("""
SELECT * FROM students
WHERE grade > ?
""", (grade,))
students = cursor.fetchall()
for student in students:
print(student)
connection.close()اگر کاربر وارد کند:
معدل موردنظر را وارد کنید: 18فقط دانشآموزانی نمایش داده میشوند که معدل آنها بیشتر از 18 است.
حتی وقتی فقط یک پارامتر داریم، باید آن را به شکل یک تاپل به ()execute بدهیم:
(grade,)ویرگول بعد از grade مهم است. چون در پایتون همین ویرگول مشخص میکند که این یک تاپل تکعضوی است.
فرض کنید میخواهیم دانشآموزی با نام مشخص را پیدا کنیم:
import sqlite3
name = input("نام دانشآموز را وارد کنید: ")
connection = sqlite3.connect("school.db")
cursor = connection.cursor()
cursor.execute("""
SELECT * FROM students
WHERE name = ?
""", (name,))
students = cursor.fetchall()
for student in students:
print(student)
connection.close()اگر کاربر وارد کند:
نام دانشآموز را وارد کنید: Saraبرنامه رکورد مربوط به Sara را پیدا میکند.
در WHERE میتوانیم از عملگرهای مقایسهای استفاده کنیم. جهت یادآوری عملگرهای مقایسهای را در جدول زیر آوردهایم:
| عملگر | معنی |
|---|---|
= | مساوی |
!= | نامساوی |
> | بزرگتر |
< | کوچکتر |
>= | بزرگتر یا مساوی |
<= | کوچکتر یا مساوی |
مثلاً:
WHERE age >= 17دانشآموزانی را پیدا میکند که حداقل 17 سال دارند.
یا:
WHERE grade <= 15دانشآموزانی را پیدا میکند که معدل آنها حداکثر 15 است.
استفاده از AND
گاهی میخواهیم چند شرط را همزمان بررسی کنیم. مثلاً دانشآموزانی را پیدا کنیم که سن آنها حداقل 17 سال باشد. و در عین حال معدل آنها بیشتر از 18 باشد. برای این کار از AND استفاده میکنیم:
import sqlite3
connection = sqlite3.connect("school.db")
cursor = connection.cursor()
cursor.execute("""
SELECT * FROM students
WHERE age >= ? AND grade > ?
""", (17, 18))
students = cursor.fetchall()
for student in students:
print(student)
connection.close()در اینجا هر دو شرط باید همزمان برقرار باشند.
استفاده از OR
اگر بخواهیم برقرار بودن حداقل یکی از دو شرط کافی باشد، از OR استفاده میکنیم. مثلاً:
import sqlite3
connection = sqlite3.connect("school.db")
cursor = connection.cursor()
cursor.execute("""
SELECT * FROM students
WHERE age >= ? OR grade > ?
""", (18, 19))
students = cursor.fetchall()
for student in students:
print(student)
connection.close()در این حالت دانشآموز در صورتی نمایش داده میشود که:
سن او حداقل 18 باشد یا معدلش بیشتر از 19 باشد.
برنامهای بنویسیم که از کاربر یک حداقل معدل بگیرد و دانشآموزان واجد شرایط را نمایش دهد:
import sqlite3
min_grade = float(input("حداقل معدل را وارد کنید: "))
connection = sqlite3.connect("school.db")
cursor = connection.cursor()
cursor.execute("""
SELECT name, age, grade
FROM students
WHERE grade >= ?
""", (min_grade,))
students = cursor.fetchall()
if students:
print("\nدانشآموزان واجد شرایط:")
for student in students:
print(
f"نام: {student[0]} | "
f"سن: {student[1]} | "
f"معدل: {student[2]}"
)
else:
print("دانشآموزی پیدا نشد.")
connection.close()تا اینجا یاد گرفتیم چگونه اطلاعات را اضافه و جستوجو کنیم. اما در یک برنامه واقعی ممکن است اطلاعات یک رکورد تغییر کند. برای مثال معدل دانشآموز تغییر کند. یا اینکه شماره تماس کاربر عوض شود. سن یک فرد بهروزرسانی شود. و یا نام یک محصول تغییر کند. برای تغییر اطلاعات موجود در پایگاه داده از دستور UPDATE استفاده میکنیم.
ساختار کلی:
UPDATE table_name
SET column = value
WHERE condition;فرض کنید معدل Ali از 18.5 به 19 تغییر کرده است:
import sqlite3
connection = sqlite3.connect("school.db")
cursor = connection.cursor()
cursor.execute("""
UPDATE students
SET grade = ?
WHERE name = ?
""", (19, "Ali"))
connection.commit()
connection.close()در این حالت این خط:
SET grade = ?مشخص میکند که مقدار ستون grade باید تغییر کند. و این خط :
WHERE name = ?مشخص میکند که این تغییر برای کدام دانشآموز انجام شود.
حالا به این قسمت دقت کنید:
UPDATE students
SET grade = 19
WHERE name = 'Ali';یعنی فقط معدل دانشآموزی که نامش Ali است تغییر کند. اما اگر WHERE را حذف کنیم، معدل تمام دانشآموزان به 19 تغییر خواهد کرد!
میتوانیم مقدار جدید را از کاربر دریافت کنیم:
import sqlite3
name = input("نام دانشآموز: ")
new_grade = float(input("معدل جدید: "))
connection = sqlite3.connect("school.db")
cursor = connection.cursor()
cursor.execute("""
UPDATE students
SET grade = ?
WHERE name = ?
""", (new_grade, name))
connection.commit()
connection.close()
print("اطلاعات با موفقیت بهروزرسانی شد.")مثلاً اگر کاربر وارد کند:
نام دانشآموز: Sara
معدل جدید: 19.8معدل Sara در پایگاه داده به 19.8 تغییر میکند.
با UPDATE میتوانیم چند ستون را همزمان تغییر دهیم. مثلاً نام و سن یک دانشآموز را تغییر دهیم:
import sqlite3
connection = sqlite3.connect("school.db")
cursor = connection.cursor()
cursor.execute("""
UPDATE students
SET name = ?, age = ?
WHERE id = ?
""", ("Mohammad", 18, 2))
connection.commit()
connection.close()تا اینجا یاد گرفتیم چگونه اطلاعات را به پایگاه داده اضافه کنیم، آنها را جستوجو کنیم و اطلاعات موجود را تغییر دهیم. حالا میخواهیم یاد بگیریم چگونه یک رکورد را از پایگاه داده حذف کنیم. برای حذف اطلاعات از دستور DELETE استفاده میکنیم.
ساختار کلی:
DELETE FROM table_name
WHERE condition;برای مثال، اگر بخواهیم دانشآموزی با شناسه 3 را حذف کنیم:
DELETE FROM students
WHERE id = 3;در پایتون، این دستور را با execute() اجرا میکنیم.
import sqlite3
connection = sqlite3.connect("school.db")
cursor = connection.cursor()
cursor.execute("""
DELETE FROM students
WHERE id = ?
""", (3,))
connection.commit()
connection.close()در این مثال، رکوردی که مقدار id آن برابر با 3 است، از جدول حذف میشود.
اگر WHERE را حذف کنیم، تمام رکوردهای جدول حذف میشوند. بنابراین هنگام استفاده از DELETE باید با دقت شرط موردنظر را مشخص کنیم.
در یک برنامه واقعی میتوانیم شناسه دانشآموزی که باید حذف شود را از کاربر دریافت کنیم:
import sqlite3
student_id = int(input("شناسه دانشآموز را وارد کنید: "))
connection = sqlite3.connect("school.db")
cursor = connection.cursor()
cursor.execute("""
DELETE FROM students
WHERE id = ?
""", (student_id,))
connection.commit()
connection.close()
print("عملیات حذف انجام شد.")میتوانیم بهجای شناسه، از نام نیز استفاده کنیم. اما حذف بر اساس id معمولاً روش مطمئنتری است. زیرا ممکن است چند دانشآموز نام یکسان داشته باشند.
گاهی اطلاعات موجود در پایگاه داده را میخواهیم بر اساس یک ستون خاص مرتب کنیم. برای مثال، میتوانیم دانشآموزان را بر اساس معدل از کمترین به بیشترین مرتب کنیم. برای مرتبسازی در SQL از دستور ORDER BY استفاده میکنیم.
import sqlite3
connection = sqlite3.connect("school.db")
cursor = connection.cursor()
cursor.execute("""
SELECT * FROM students
ORDER BY grade ASC
""")
students = cursor.fetchall()
for student in students:
print(student)
connection.close()در اینجا:
ORDER BY grade ASCیعنی اطلاعات را بر اساس ستون grade بهصورت صعودی مرتب کن. ASC مخفف Ascending است.
مثلاً:
15.5
17.8
18.5
19.2اما اگر بخواهیم معدلها از بیشترین به کمترین مرتب شوند، از DESC استفاده میکنیم:
cursor.execute("""
SELECT * FROM students
ORDER BY grade DESC
""")DESC مخفف Descending است. نتیجه:
19.2
18.5
17.8
15.5LIMITگاهی تعداد رکوردهای موجود زیاد است و نمیخواهیم همه آنها را نمایش دهیم. مثلاً میخواهیم فقط سه دانشآموز با بالاترین معدل را نمایش دهیم. میتوانیم ORDER BY و LIMIT را با هم استفاده کنیم:
import sqlite3
connection = sqlite3.connect("school.db")
cursor = connection.cursor()
cursor.execute("""
SELECT * FROM students
ORDER BY grade DESC
LIMIT 3
""")
students = cursor.fetchall()
for student in students:
print(student)
connection.close()در اینجا:
ORDER BY grade DESCدانشآموزان را از بیشترین معدل به کمترین مرتب میکند.
و این خط:
LIMIT 3فقط سه رکورد اول را برمیگرداند. پس این دستور:
SELECT * FROM students
ORDER BY grade DESC
LIMIT 3;یعنی همه دانشآموزان را بر اساس معدل از بیشترین به کمترین مرتب کن و فقط سه نفر اول را نمایش بده.
این برنامه امکان ثبت، نمایش، جستوجو، ویرایش و حذف دانشآموزان را فراهم میکند.
import sqlite3
# اتصال به پایگاه داده
connection = sqlite3.connect("school.db")
cursor = connection.cursor()
# ایجاد جدول
cursor.execute("""
CREATE TABLE IF NOT EXISTS students (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
age INTEGER,
grade REAL
)
""")
connection.commit()
while True:
print("\n===== سیستم مدیریت دانشآموزان =====")
print("1. افزودن دانشآموز")
print("2. نمایش همه دانشآموزان")
print("3. جستوجوی دانشآموز")
print("4. ویرایش معدل")
print("5. حذف دانشآموز")
print("6. خروج")
choice = input("انتخاب شما: ")
# افزودن دانشآموز
if choice == "1":
name = input("نام دانشآموز: ")
age = int(input("سن: "))
grade = float(input("معدل: "))
cursor.execute("""
INSERT INTO students (name, age, grade)
VALUES (?, ?, ?)
""", (name, age, grade))
connection.commit()
print("دانشآموز با موفقیت ثبت شد.")
# نمایش همه دانشآموزان
elif choice == "2":
cursor.execute("""
SELECT * FROM students
ORDER BY id
""")
students = cursor.fetchall()
if students:
print("\n--- لیست دانشآموزان ---")
for student in students:
print(
f"شناسه: {student[0]} | "
f"نام: {student[1]} | "
f"سن: {student[2]} | "
f"معدل: {student[3]}"
)
else:
print("هیچ دانشآموزی ثبت نشده است.")
# جستوجوی دانشآموز
elif choice == "3":
name = input("نام دانشآموز را وارد کنید: ")
cursor.execute("""
SELECT * FROM students
WHERE name = ?
""", (name,))
students = cursor.fetchall()
if students:
for student in students:
print(
f"شناسه: {student[0]} | "
f"نام: {student[1]} | "
f"سن: {student[2]} | "
f"معدل: {student[3]}"
)
else:
print("دانشآموز پیدا نشد.")
# ویرایش معدل
elif choice == "4":
student_id = int(input("شناسه دانشآموز: "))
new_grade = float(input("معدل جدید: "))
cursor.execute("""
UPDATE students
SET grade = ?
WHERE id = ?
""", (new_grade, student_id))
connection.commit()
if cursor.rowcount > 0:
print("معدل با موفقیت تغییر کرد.")
else:
print("دانشآموز پیدا نشد.")
# حذف دانشآموز
elif choice == "5":
student_id = int(input("شناسه دانشآموز: "))
cursor.execute("""
DELETE FROM students
WHERE id = ?
""", (student_id,))
connection.commit()
if cursor.rowcount > 0:
print("دانشآموز با موفقیت حذف شد.")
else:
print("دانشآموز پیدا نشد.")
# خروج
elif choice == "6":
print("برنامه به پایان رسید.")
break
else:
print("گزینه نامعتبر است.")
# بستن اتصال
connection.close()
نام شماره تلفن ایمیلبرنامه باید امکان افزودن مخاطب، نمایش مخاطبین، جستوجو بر اساس نام و حذف مخاطب را داشته باشد.
نام محصول قیمت تعداد موجودیباشد. برنامه باید بتواند محصول جدید اضافه کند، محصولات را نمایش دهد، قیمت یک محصول را تغییر دهد و محصولی را حذف کند. سپس محصولات را بر اساس قیمت از بیشترین به کمترین مرتب کنید.
نام فیلم ژانر امتیازباشد. امکان افزودن، نمایش، جستوجو و حذف فیلمها را ایجاد کنید. سپس فقط فیلمهایی را نمایش دهید که امتیاز آنها بیشتر از 8 است.
عنوان نویسنده سال انتشاردارد. برنامه باید امکان ثبت کتاب، نمایش کتابها، جستوجو بر اساس نویسنده و حذف کتاب را داشته باشد. سپس کتابها را بر اساس سال انتشار از جدیدترین به قدیمیترین نمایش دهید.
عنوان کار وضعیت انجامشدن (انجام شده یا انجام نشده)باشد. برنامه باید بتواند کار جدید اضافه کند، تمام کارها را نمایش دهد، وضعیت یک کار را تغییر دهد و یک کار را حذف کند. سپس فقط کارهای انجامنشده را نمایش دهید.
نام صاحب حساب شماره حساب موجودیبرنامه باید امکان افزودن حساب، نمایش حسابها، تغییر موجودی و حذف حساب را داشته باشد. سپس حسابهایی را نمایش دهید که موجودی آنها بیشتر از یک مقدار مشخص است.
با یادگیری مباحث این دوره، شما با مهمترین مفاهیم و ابزارهای موردنیاز برای شروع برنامهنویسی با پایتون آشنا شدید. اگر میخواهید مسیر خود را در توسعه وب ادامه دهید، دوره آموزش Django میتواند انتخاب مناسبی باشد و اگر به هوش مصنوعی و تحلیل داده علاقهمند هستید، پیشنهاد میکنیم یادگیری Machine Learning را آغاز کنید.
ورود به آموزش فریمورک جنگو ورود به آموزش ماشین لرنینگشروع کار با 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) یکی از معتبرترین آزمونهای ارزیابی مهارت زبان انگلیسی
آزمون پلاس مرجع آموزش برنامهنویسی، هوش مصنوعی، شبکه، نمونه سؤالات کنکورهای کامپیوتر، آزمونهای زبان دکتری و مدارک بینالمللی فناوری اطلاعات است. با ارائه آموزشهای تخصصی، منابع آموزشی و راهنمای آزمونها، به دانشجویان و متخصصان کمک میکنیم تا مهارتهای خود را توسعه داده و در مسیر موفقیت تحصیلی و شغلی گام بردارند.