Python Coding Academy
135 subscribers
7 photos
3 files
4 links
🐍 Learn Python. Build Skills. Create the Future.

📚 Python lessons from beginner to advanced
💻 Clear explanations & real-world examples
🚀 Learn to code. Learn to build.
Download Telegram
Channel created
🐍 آموزش Python — از صفر تا حرفه‌ای | پست ۱
سلام! 👋
قراره توی این کانال پایتون رو از صفر شروع کنیم و قدم‌به‌قدم جلو بریم؛ حتی اگر تا حالا یک خط کد هم ننوشتی.
در این دوره با هم یاد می‌گیریم:
🔹 مبانی و اصول برنامه‌نویسی
🔹 متغیرها و انواع داده
🔹 شرط‌ها و حلقه‌ها
🔹 List، Tuple، Set و Dictionary
🔹 توابع و ماژول‌ها
🔹 کار با فایل‌ها
🔹 مدیریت خطاها
🔹 برنامه‌نویسی شیءگرا (OOP)
🔹 کتابخانه‌های کاربردی Python
🔹 و در نهایت ساخت پروژه‌های واقعی 🚀
بعد از یادگیری مبانی، می‌تونیم وارد مسیرهای تخصصی مثل:
🤖 هوش مصنوعی و Machine Learning
🌐 طراحی وب
📊 تحلیل داده
⚙️ اتوماسیون
🤖 رباتیک
بشیم.
قانون این دوره:
فقط آموزش‌ها رو نخون؛ کدها رو خودت اجرا کن و تمرین‌ها رو انجام بده.
📌 از پست بعدی، نصب Python و آماده‌سازی محیط برنامه‌نویسی رو شروع می‌کنیم.

پست ۱ از دوره Python

https://t.me/PythonCodingAcademy
20👍1
🐍 آموزش Python — پست ۲
نصب Python و آماده‌سازی محیط برنامه‌نویسی
قبل از اینکه اولین کدمون رو بنویسیم، باید Python رو روی کامپیوتر نصب کنیم.
1️⃣ دانلود Python
به سایت رسمی Python برو و آخرین نسخه پایدار Python 3 رو دانلود کن.
هنگام نصب، حتماً این گزینه رو فعال کن:
✅ Add Python to PATH
بعد روی:
Install Now
کلیک کن.
2️⃣ بررسی نصب Python
بعد از نصب، CMD یا Terminal رو باز کن و بنویس:
python --version

اگر نصب درست انجام شده باشه، چیزی شبیه این می‌بینی:
Python 3.x.x

3️⃣ اجرای Python
حالا داخل CMD بنویس:
python

اگر علامت زیر رو دیدی:
>>>

یعنی Python آماده استفاده است. 🎉
برای خروج هم می‌تونی بنویسی:
exit()

⚠️ اگر python شناخته نشد
اگر با خطایی مثل:
'python' is not recognized...

مواجه شدی، احتمالاً Python به PATH اضافه نشده یا نصب به‌درستی انجام نشده.
📌 تمرین پست ۲:
Python رو نصب کن و دستور زیر رو اجرا کن:
python --version

اگر نسخه Python نمایش داده شد، آماده‌ایم برای اولین کد! 🚀
پست ۲ از دوره Python
👍1
🐍 آموزش Python — پست ۳
نصب VS Code و ساخت اولین فایل Python
حالا که Python رو نصب کردیم، به یک محیط مناسب برای نوشتن کد نیاز داریم.
یکی از بهترین گزینه‌ها برای شروع، Visual Studio Code (VS Code) هست.
1️⃣ نصب VS Code
VS Code رو دانلود و نصب کنید.
بعد از نصب، برنامه رو باز کنید.
2️⃣ نصب افزونه Python
از قسمت Extensions در سمت چپ VS Code، عبارت زیر رو جستجو کنید:
Python

افزونه Python که توسط Microsoft منتشر شده رو نصب کنید.
3️⃣ ساخت پوشه پروژه
یک پوشه برای تمرین‌های دوره بسازید؛ مثلاً:
Python-Course

بعد در VS Code:
File → Open Folder
و پوشه Python-Course رو انتخاب کنید.
4️⃣ ساخت اولین فایل Python
داخل VS Code یک فایل جدید بسازید و اسمش رو بگذارید:
main.py

پسوند .py یعنی این فایل، یک فایل Python است.
داخل فایل بنویسید:
print("Hello Python!")

5️⃣ اجرای برنامه ▶️
روی دکمه Run در VS Code کلیک کنید.
اگر همه‌چیز درست باشد، در قسمت Terminal می‌بینید:
Hello Python!

🎉 تبریک! اولین برنامه Python خودت رو اجرا کردی.
📌 تمرین
یک فایل به نام main.py بساز و برنامه‌ای بنویس که این متن رو نمایش بده:
I am learning Python!

در پست بعدی، بالاخره وارد اولین کدنویسی واقعی Python می‌شیم و با تابع print() آشنا می‌شیم.
پست ۳ از دوره Python
👍1
🐍 آموزش Python — پست ۴
تابع print()؛ اولین ابزار ما در Python
در پست قبلی اولین برنامه‌مون رو اجرا کردیم:
print("Hello Python!")

اما print() دقیقاً چه کاری انجام می‌ده؟
🔹 print() چیست؟
print() یکی از ساده‌ترین و پرکاربردترین توابع داخلی Python است.
از آن برای نمایش اطلاعات در خروجی برنامه استفاده می‌کنیم.
مثلاً:
print("Hello World")

خروجی:
Hello World

🔹 نمایش چند متن
می‌تونیم چند بار از print() استفاده کنیم:
print("Hello")
print("I am learning Python")
print("Let's code!")

خروجی:
Hello
I am learning Python
Let's code!

هر print() به‌صورت پیش‌فرض در یک خط جدید نمایش داده می‌شود.
🔹 چاپ عدد
برای چاپ عدد نیازی به " " نداریم:
print(10)
print(25)
print(3.14)

خروجی:
10
25
3.14

اما این دو با هم فرق دارند:
print(10)
print("10")

اولی یک عدد است و دومی یک رشته (String).
در پست‌های بعدی دقیق‌تر با انواع داده‌ها آشنا می‌شیم.
🔹 انجام محاسبات داخل print()
یکی از قابلیت‌های جالب اینه که می‌تونیم محاسبات رو مستقیماً داخل print() انجام بدیم:
print(10 + 5)
print(20 - 8)
print(6 * 7)
print(10 / 2)

خروجی:
15
12
42
5.0

یعنی Python قبل از نمایش نتیجه، محاسبه رو انجام می‌ده.
🧠 نکته مهم
در Python حروف بزرگ و کوچک با هم فرق دارند.
این درست است:
print("Hello")

ولی این:
Print("Hello")

در Python صحیح نیست و باعث خطا می‌شود.
📌 تمرین
برنامه‌ای بنویس که خروجی زیر را نمایش دهد:
My name is Ali
I am learning Python
10 + 20 = 30

برای خط آخر می‌تونی از محاسبه استفاده کنی:
print(10 + 20)

سعی کن خودت برنامه رو بنویسی و اجراش کنی. 💻
پست ۴ از دوره Python
👍1
🐍 آموزش Python — پست ۵
متغیرها (Variables)؛ نگهداری اطلاعات در Python
تا اینجا با print() آشنا شدیم و می‌تونیم اطلاعات رو نمایش بدیم.
اما اگر بخوایم یک مقدار رو ذخیره کنیم و بعداً ازش استفاده کنیم، چی؟
اینجاست که متغیرها وارد می‌شن. 👇
🔹 متغیر چیست؟
متغیر مثل یک جعبه برای نگهداری اطلاعات است.
مثلاً:
name = "Ali"
age = 20

اینجا:
name نام متغیر است.
"Ali" مقداری است که داخل آن ذخیره شده.
age یک متغیر دیگر است.
20 مقدار آن است.
حالا می‌تونیم از متغیرها استفاده کنیم:
name = "Ali"
age = 20

print(name)
print(age)

خروجی:
Ali
20

🔹 متغیر می‌تواند تغییر کند
یکی از ویژگی‌های متغیر این است که مقدارش می‌تواند تغییر کند:
score = 10

print(score)

score = 20

print(score)

خروجی:
10
20

یعنی مقدار score از 10 به 20 تغییر کرده.
🔹 انواع مختلف اطلاعات
متغیرها می‌توانند انواع مختلفی از داده‌ها را نگهداری کنند:
name = "Ali"
age = 20
height = 1.75
is_student = True

در این مثال:
name        → متن
age → عدد صحیح
height → عدد اعشاری
is_student → درست/غلط

در پست‌های بعدی هرکدام از این نوع داده‌ها را دقیق‌تر بررسی می‌کنیم.
🔹 چند متغیر در یک برنامه
مثلاً:
name = "Ali"
age = 20
city = "Baku"

print(name)
print(age)
print(city)

خروجی:
Ali
20
Baku

⚠️ یک اشتباه رایج
این درست است:
name = "Ali"

اما این اشتباه است:
2name = "Ali"

نام متغیر نباید با عدد شروع شود.
همچنین بهتر است برای نام‌گذاری از اسم‌های واضح استفاده کنیم:
student_name = "Ali"
student_age = 20

به‌جای:
x = "Ali"
y = 20

📌 تمرین
برنامه‌ای بنویس که اطلاعات زیر را داخل متغیرها ذخیره کند:
نام
سن
شهر
رشته مورد علاقه

سپس با استفاده از print() همه آن‌ها را نمایش بده.
مثلاً:
name = "Ali"
age = 20

print(name)
print(age)

پست ۵ از دوره Python 🐍
👍1
🐍 آموزش جامع Python — پست ۶
متغیرها در Python؛ قوانین نام‌گذاری و نحوه کار با آن‌ها
در پست قبلی با مفهوم متغیر آشنا شدیم. حالا می‌خواهیم دقیق‌تر بررسی کنیم که متغیرها در Python چگونه ساخته می‌شوند، چه قوانینی برای نام‌گذاری دارند و چطور می‌توانیم مقدار آن‌ها را تغییر دهیم.
🔹 ساخت متغیر در Python
برای ساخت متغیر نیازی به تعریف نوع آن نداریم.
name = "Ali"
age = 20
height = 1.75

Python خودش از روی مقدار، نوع داده را تشخیص می‌دهد.
print(name)
print(age)
print(height)

🔹 علامت = چیست؟
در Python علامت = برای انتساب (Assignment) استفاده می‌شود.
age = 20

یعنی مقدار 20 را به متغیر age نسبت بده.
این با مساوی ریاضی متفاوت است.
مثلاً:
x = 10
x = x + 5

در خط دوم ابتدا مقدار فعلی x یعنی 10 گرفته می‌شود و 5 به آن اضافه می‌شود؛ سپس نتیجه دوباره داخل x قرار می‌گیرد.
پس:
x = 15

🔹 تغییر مقدار متغیر
مقدار یک متغیر می‌تواند در طول اجرای برنامه تغییر کند:
score = 10

print(score)

score = 25

print(score)

خروجی:
10
25

🔹 یک متغیر، چند مقدار مختلف
حتی نوع داده متغیر هم می‌تواند در طول اجرای برنامه تغییر کند:
value = 10
print(value)

value = "Python"
print(value)

خروجی:
10
Python

این ویژگی به Dynamic Typing در Python مربوط است.
البته در برنامه‌های حرفه‌ای بهتر است نوع داده‌ها را با منطق مشخص و قابل‌فهم مدیریت کنیم.
🔹 چند انتساب همزمان
Python اجازه می‌دهد چند متغیر را در یک خط مقداردهی کنیم:
name, age, city = "Ali", 20, "Baku"

print(name)
print(age)
print(city)

همچنین می‌توان یک مقدار را به چند متغیر اختصاص داد:
x = y = z = 0

در این حالت هر سه متغیر مقدار 0 دارند.
🔹 قوانین نام‌گذاری متغیرها
نام متغیر در Python باید قوانین مشخصی را رعایت کند.
قانون ۱ — نباید با عدد شروع شود
❌ اشتباه:
2name = "Ali"

✅ درست:
name2 = "Ali"

قانون ۲ — فقط از حروف، اعداد و _ استفاده کنید
✅ درست:
student_name = "Ali"
age2 = 20

❌ اشتباه:
student-name = "Ali"

قانون ۳ — فاصله مجاز نیست
❌ اشتباه:
student name = "Ali"

✅ درست:
student_name = "Ali"

قانون ۴ — Python به حروف بزرگ و کوچک حساس است
این دو متغیر متفاوت هستند:
name = "Ali"
Name = "Reza"

بنابراین:
print(name)

و:
print(Name)

دو نتیجه متفاوت دارند.
قانون ۵ — از کلمات رزروشده Python استفاده نکنید
کلماتی مثل:
if
else
for
while
class
def
return
True
False
None

معنای خاصی در Python دارند و نمی‌توان آن‌ها را به‌عنوان نام متغیر معمولی استفاده کرد.
🔹 نام خوب برای متغیر چیست؟
نام متغیر باید تا حد امکان معنی‌دار باشد.
❌ نام نامناسب:
x = "Ali"
y = 20
z = 1.75

✅ نام بهتر:
name = "Ali"
age = 20
height = 1.75

برای نام‌های چندکلمه‌ای معمولاً از snake_case استفاده می‌کنیم:
first_name = "Ali"
student_age = 20
phone_number = "09123456789"

🔹 بررسی نوع داده با type()
می‌توانیم نوع مقدار یک متغیر را بررسی کنیم:
name = "Ali"
age = 20
height = 1.75
is_student = True

print(type(name))
print(type(age))
print(type(height))
print(type(is_student))

خروجی:
<class 'str'>
<class 'int'>
<class 'float'>
<class 'bool'>

در پست‌های بعدی هرکدام از این Data Typeها را به‌صورت کامل بررسی می‌کنیم.
🧠 نکته مهم
در Python متغیر را بهتر است فقط یک «جعبه» در نظر نگیریم؛ دقیق‌تر این است که بگوییم نام متغیر به یک Object در حافظه اشاره می‌کند.
فعلاً همین مدل ساده را در ذهن داشته باشید؛ مفهوم Object و Reference را در مباحث پیشرفته‌تر دقیق‌تر بررسی خواهیم کرد.
🎯 تمرین
برنامه‌ای بنویس که اطلاعات زیر را در متغیرها ذخیره کند:
نام
سن
قد
شهر
دانش‌آموز بودن

سپس:
همه اطلاعات را با print() نمایش بده.
نوع هر متغیر را با type() بررسی کن.
مقدار سن را تغییر بده.
دوباره سن را چاپ کن.
مثلاً:
name = "Ali"
age = 20

print(name)
print(age)

age = 21

print(age)

پست ۶ از دوره جامع Python
👍1
🐍 آموزش جامع Python — پست ۷
انواع داده‌ها (Data Types) در Python
در برنامه‌نویسی، اطلاعاتی که با آن‌ها کار می‌کنیم انواع مختلفی دارند.
مثلاً:
name = "Ali"
age = 20
height = 1.75
is_student = True

این چهار مقدار از انواع داده متفاوتی هستند.
Python به‌صورت خودکار نوع داده را تشخیص می‌دهد.
🔹 ۱. عدد صحیح — int
برای اعداد صحیح از نوع int استفاده می‌شود.
مثلاً:
age = 20
score = 95
temperature = -5

این اعداد int هستند:
print(type(age))

خروجی:
<class 'int'>

اعداد صحیح می‌توانند مثبت، منفی یا صفر باشند.
🔹 ۲. عدد اعشاری — float
برای اعداد دارای بخش اعشاری از float استفاده می‌کنیم:
height = 1.75
price = 99.99
temperature = -2.5

بررسی نوع:
print(type(height))

خروجی:
<class 'float'>

حتی اگر نتیجه یک محاسبه اعشاری باشد، Python آن را به‌صورت float نگهداری می‌کند:
result = 10 / 2

print(result)
print(type(result))

خروجی:
5.0
<class 'float'>

🔹 ۳. رشته — str
هر متنی که داخل کوتیشن قرار بگیرد، معمولاً یک str است.
name = "Ali"
city = "Baku"
message = "Hello Python"

هم از کوتیشن دوتایی و هم از کوتیشن تکی می‌توان استفاده کرد:
name = "Ali"
name = 'Ali'

نوع داده:
print(type(name))

خروجی:
<class 'str'>

حتی اگر داخل کوتیشن عدد بنویسیم، آن مقدار رشته است:
x = "100"

print(type(x))

خروجی:
<class 'str'>

پس این دو با هم تفاوت دارند:
x = 100
y = "100"

x یک int است، اما y یک str.
🔹 ۴. مقدار منطقی — bool
نوع bool فقط دو مقدار دارد:
True
False

مثلاً:
is_student = True
has_car = False

بررسی نوع:
print(type(is_student))

خروجی:
<class 'bool'>

این نوع داده در شرط‌ها بسیار مهم است و در ادامه دوره مفصل با آن کار خواهیم کرد.
⚠️ دقت کنید:
True
False

باید با حرف اول بزرگ نوشته شوند.
این اشتباه است:
true
false

🔹 ۵. مقدار تهی — None
Python یک مقدار ویژه به نام None دارد.
None معمولاً برای نشان دادن نبودن یک مقدار استفاده می‌شود.
مثلاً:
result = None

print(result)
print(type(result))

خروجی:
None
<class 'NoneType'>

None با 0 یا False یا رشته خالی یکی نیست.
مثلاً:
x = None
y = 0
z = False
text = ""

این‌ها از نظر نوع و مفهوم متفاوت هستند.
🔹 بررسی چند نوع داده با هم
name = "Ali"
age = 20
height = 1.75
is_student = True
result = None

print(type(name))
print(type(age))
print(type(height))
print(type(is_student))
print(type(result))

خروجی:
<class 'str'>
<class 'int'>
<class 'float'>
<class 'bool'>
<class 'NoneType'>

🔹 یک نکته مهم درباره Python
Python یک زبان Dynamically Typed است.
یعنی لازم نیست هنگام ساخت متغیر، نوع آن را مشخص کنیم:
age = 20

Python خودش متوجه می‌شود که age به یک مقدار int اشاره می‌کند.
بعداً حتی می‌توانیم مقدار دیگری به آن نسبت دهیم:
age = 20
age = "Twenty"

حالا:
print(type(age))

نتیجه:
<class 'str'>

البته در پروژه‌های واقعی بهتر است نوع داده‌ها را آگاهانه و منطقی مدیریت کنیم.
🧠 خلاصه مهم
نوع
نام
مثال
عدد صحیح
int
20
عدد اعشاری
float
3.14
متن
str
"Python"
منطقی
bool
True
مقدار تهی
NoneType
None
🎯 تمرین
کد زیر را اجرا کن:
name = "Ali"
age = 20
height = 1.75
is_student = True
favorite_language = None

سپس برای هر پنج متغیر:
مقدار را چاپ کن.
نوع داده را با type() چاپ کن.
مثلاً:
print(name)
print(type(name))

⭐️ چالش
حدس بزن خروجی این کد چیست:
x = 10
y = "10"

print(x + 5)
print(y + "5")

قبل از اجرای برنامه خودت جواب را حدس بزن.
پست ۷ از دوره جامع Python 🐍
👍1
🐍 آموزش Python — پست ۸
اعداد صحیح در Python | int
در پست قبلی گفتیم Python چند نوع داده اصلی دارد.
امروز می‌خواهیم با یکی از مهم‌ترین آن‌ها یعنی int آشنا شویم.
🔹 int چیست؟
int مخفف Integer است و برای نگهداری اعداد صحیح استفاده می‌شود.
مثال:
age = 20
score = 95
temperature = -5
number = 0

همه این‌ها از نوع int هستند.
🔹 بررسی نوع داده
با تابع type() می‌توانیم نوع یک مقدار را بررسی کنیم:
age = 20

print(type(age))

خروجی:
<class 'int'>

🔹 اعداد مثبت، منفی و صفر
هر سه مورد می‌توانند int باشند:
positive = 10
negative = -10
zero = 0

🔹 محاسبات با اعداد صحیح
می‌توانیم روی int عملیات ریاضی انجام دهیم:
a = 10
b = 3

print(a + b)
print(a - b)
print(a * b)

خروجی:
13
7
30

اما تقسیم / یک نکته مهم دارد:
print(10 / 2)

خروجی:
5.0

یعنی نتیجه تقسیم معمولی با / از نوع float است، حتی اگر جواب از نظر ریاضی عدد صحیح باشد.
🔹 تقسیم صحیح //
اگر بخواهیم قسمت اعشاری نتیجه تقسیم حذف شود، از // استفاده می‌کنیم:
print(10 // 3)

خروجی:
3

🔹 باقی‌مانده %
عملگر % باقی‌مانده تقسیم را به ما می‌دهد:
print(10 % 3)

خروجی:
1

چون:
10 ÷ 3 = 3
باقی‌مانده = 1

این عملگر بعداً برای تشخیص زوج و فرد بودن اعداد خیلی کاربردی خواهد بود.
🔹 توان **
برای محاسبه توان:
print(2 ** 3)

خروجی:
8

چون:
2 × 2 × 2 = 8

🔹 اعداد خیلی بزرگ
Python محدودیت معمول زبان‌های برنامه‌نویسی برای اندازه int ندارد و می‌تواند اعداد صحیح بسیار بزرگ را مدیریت کند:
number = 123456789012345678901234567890

print(number)

🧠 نکته مهم
این دو مقدار یکی نیستند:
age = 20
age = "20"

اولی:
int

است و دومی:
str

چون "20" داخل کوتیشن قرار گرفته و به‌عنوان متن در نظر گرفته می‌شود.
🎯 تمرین
کد زیر را اجرا کن:
a = 17
b = 5

print(a + b)
print(a - b)
print(a * b)
print(a / b)
print(a // b)
print(a % b)
print(a ** 2)

بعد سعی کن قبل از اجرای برنامه حدس بزنی خروجی هر خط چه خواهد بود.
پست ۸ از دوره جامع Python 🐍
👍1
🐍 آموزش جامع Python — پست ۹
اعداد اعشاری در Python | float
در پست قبل با int آشنا شدیم.
حالا می‌رسیم به float؛ یعنی اعداد اعشاری.
🔹 float چیست؟
برای نگهداری اعداد اعشاری از float استفاده می‌کنیم:
height = 1.75
price = 99.99
temperature = -2.5
pi = 3.14

بررسی نوع:
number = 3.14

print(type(number))

خروجی:
<class 'float'>

🔹 int و float
این دو با هم متفاوت‌اند:
x = 10
y = 10.0

x از نوع int است و y از نوع float.
🔹 محاسبات با float
a = 10.5
b = 2.5

print(a + b)
print(a - b)
print(a * b)
print(a / b)

🔹 تبدیل int به float
با float():
x = 10

y = float(x)

print(y)
print(type(y))

خروجی:
10.0
<class 'float'>

🔹 تبدیل float به int
x = 10.8

print(int(x))

خروجی:
10

⚠️ int() عدد را گرد نمی‌کند؛ قسمت اعشاری را حذف می‌کند.
print(int(9.9))   # 9
print(int(9.1)) # 9

🔹 گرد کردن اعداد اعشاری
برای گرد کردن عدد می‌توانیم از تابع round() استفاده کنیم.
number = 3.7

print(round(number))

خروجی:
4

مثال دیگر:
number = 3.2

print(round(number))

خروجی:
3

🔹 مشخص کردن تعداد رقم اعشار
می‌توانیم مشخص کنیم چند رقم اعشار باقی بماند:
number = 3.141592

print(round(number, 2))

خروجی:
3.14

مثلاً:
number = 12.56789

print(round(number, 1))
print(round(number, 2))
print(round(number, 3))

خروجی:
12.6
12.57
12.568

عدد دوم در round() مشخص می‌کند چند رقم بعد از اعشار نگه داشته شود.
⚠️ یک نکته مهم
round() همیشه به شکل ساده «۵ به بالا» عمل نمی‌کند.
Python در مواردی از Round Half to Even استفاده می‌کند:
print(round(2.5))
print(round(3.5))

خروجی:
2
4

این رفتار به نحوه گرد کردن مقادیر دقیقاً در نیمه مربوط است و در محاسبات حساس باید آن را در نظر گرفت.
🔹 مشکل معروف float
ممکن است در بعضی محاسبات نتیجه‌ای مثل این ببینیم:
print(0.1 + 0.2)

خروجی ممکن است:
0.30000000000000004

باشد.
این به نحوه نمایش اعداد اعشاری در کامپیوتر مربوط است و در آینده هنگام کار با محاسبات دقیق‌تر دوباره به آن برمی‌گردیم.
🎯 تمرین
عدد زیر را در نظر بگیر:
number = 18.76392

خروجی‌های زیر را بساز:
19
18.8
18.76
18.764

💡 راهنمایی:
برای گرد کردن از round() استفاده کن.
پست ۹ از دوره جامع Python 🐍
👍1
🐍 آموزش جامع Python — پست ۱۰
رشته‌ها در Python | str
در پست‌های قبل با اعداد صحیح (int) و اعشاری (float) آشنا شدیم.
حالا می‌رسیم به یکی از پرکاربردترین نوع‌های داده در Python:
str
🔹 str چیست؟
str مخفف String است و برای نگهداری متن و رشته‌ای از کاراکترها استفاده می‌شود.
مثلاً:
name = "Ali"
city = "Tehran"
message = "Hello Python!"

تمام این مقادیر از نوع str هستند.
🔹 ساخت رشته
برای ساختن رشته می‌توانیم از کوتیشن تکی یا دوتایی استفاده کنیم:
name = "Ali"
city = 'Tehran'

هر دو صحیح هستند.
print(name)
print(city)

خروجی:
Ali
Tehran

🔹 متن و عدد با هم فرق دارند
این دو مقدار را ببین:
x = 10
y = "10"

نوع x:
int

نوع y:
str

حتی اگر داخل رشته فقط عدد نوشته شده باشد، Python آن را متن در نظر می‌گیرد.
مثلاً:
print(x + 5)

خروجی:
15

اما:
print(y + "5")

خروجی:
105

چون اینجا Python دو رشته را به هم متصل می‌کند.
🔹 بررسی نوع رشته
با type() می‌توانیم نوع داده را بررسی کنیم:
text = "Hello"

print(type(text))

خروجی:
<class 'str'>

🔹 اتصال رشته‌ها
می‌توانیم چند رشته را با + به هم متصل کنیم:
first_name = "Ali"
last_name = "Ahmadi"

full_name = first_name + " " + last_name

print(full_name)

خروجی:
Ali Ahmadi

⚠️ توجه کن که برای ایجاد فاصله باید " " را خودمان اضافه کنیم.
🔹 تکرار رشته
با * می‌توانیم یک رشته را چند بار تکرار کنیم:
text = "Hi "

print(text * 3)

خروجی:
Hi Hi Hi

🔹 رشته خالی
یک رشته می‌تواند هیچ کاراکتری نداشته باشد:
text = ""

print(text)
print(type(text))

خروجی:
<class 'str'>

این مقدار با None که در آینده یاد می‌گیریم متفاوت است.
🔹 چند خط متن
برای ذخیره متن چندخطی می‌توانیم از سه کوتیشن استفاده کنیم:
message = """Hello
Welcome to Python
Let's learn programming!"""

print(message)

خروجی:
Hello
Welcome to Python
Let's learn programming!

⚠️ یک اشتباه رایج
این کد:
age = 20

print("Age: " + age)

خطا می‌دهد، چون نمی‌توان str و int را مستقیماً با + به هم متصل کرد.
برای تبدیل عدد به رشته می‌توانیم از str() استفاده کنیم:
age = 20

print("Age: " + str(age))

خروجی:
Age: 20

در آینده روش بهتر و حرفه‌ای‌تر یعنی f-string را هم یاد می‌گیریم.
🎯 تمرین
برنامه‌ای بنویس که اطلاعات زیر را داخل متغیرها قرار دهد:
name = "..."
country = "..."
language = "Python"

سپس خروجی‌ای شبیه این ایجاد کن:
My name is Ali
I live in Azerbaijan
I am learning Python

پست ۱۰ از دوره جامع Python 🐍
👍1
🐍 آموزش جامع Python — پست ۱۱
دسترسی به کاراکترهای رشته | Indexing
در پست قبل با str و رشته‌ها آشنا شدیم.
حالا می‌خواهیم یاد بگیریم چطور به حروف و کاراکترهای یک رشته به‌صورت جداگانه دسترسی پیدا کنیم.
به این کار می‌گوییم:
Indexing
🔹 Index چیست؟
فرض کن این رشته را داریم:
text = "Python"

هر کاراکتر یک شماره یا Index دارد.
P  y  t  h  o  n
0 1 2 3 4 5

⚠️ نکته مهم:
در Python شماره‌گذاری از 0 شروع می‌شود، نه 1.
🔹 دسترسی به یک کاراکتر
برای دسترسی به یک کاراکتر از [] استفاده می‌کنیم:
text = "Python"

print(text[0])
print(text[1])
print(text[2])

خروجی:
P
y
t

مثلاً:
print(text[4])

خروجی:
o

🔹 Index منفی
Python اجازه می‌دهد از انتهای رشته هم به کاراکترها دسترسی داشته باشیم.
P   y   t   h   o   n
-6 -5 -4 -3 -2 -1

مثلاً:
text = "Python"

print(text[-1])
print(text[-2])

خروجی:
n
o

پس:
-1 یعنی آخرین کاراکتر.
-2 یعنی یکی مانده به آخر.
🔹 طول رشته با len()
برای فهمیدن تعداد کاراکترهای یک رشته از len() استفاده می‌کنیم:
text = "Python"

print(len(text))

خروجی:
6

چون Python شامل ۶ کاراکتر است.
🔹 ارتباط len() و Index
اگر طول رشته ۶ باشد، Indexهای مثبت از 0 تا 5 هستند:
P  y  t  h  o  n
0 1 2 3 4 5

بنابراین این کد:
text = "Python"

print(text[5])

درست است و خروجی:
n

اما:
print(text[6])

خطا می‌دهد.
چون Index شماره ۶ وجود ندارد.
🔹 Index خارج از محدوده
اگر Index‌ای وارد کنیم که وجود نداشته باشد، Python خطای:
IndexError

می‌دهد.
مثلاً:
text = "Python"

print(text[10])

🔹 یک نکته مهم درباره رشته‌ها
رشته‌ها در Python قابل تغییر مستقیم نیستند.
مثلاً این کد صحیح نیست:
text = "Python"

text[0] = "J"

چون نمی‌توانیم یک کاراکتر رشته را مستقیماً تغییر دهیم.
بعداً یاد می‌گیریم چطور با ساختن یک رشته جدید این کار را انجام دهیم.
🎯 تمرین
کد زیر را اجرا کن:
word = "Programming"

print(word[0])
print(word[3])
print(word[-1])
print(word[-3])
print(len(word))

قبل از اجرای برنامه، خودت حدس بزن خروجی هر خط چیست.
🧠 چالش
رشته زیر را در نظر بگیر:
language = "Python"

بدون اجرای کد بگو خروجی این دستورات چیست:
print(language[0])
print(language[2])
print(language[-1])
print(language[-4])

پست ۱۱ از دوره جامع Python 🐍
👍1
🐍 آموزش جامع Python — پست ۱۲
برش رشته‌ها | Slicing
در پست قبل با Indexing آشنا شدیم.
حالا با Slicing می‌توانیم بخشی از یک رشته را جدا کنیم.
🔹 ساختار
text[start:end]

start = نقطه شروع
end = نقطه پایان، اما خودش شامل نمی‌شود.
مثلاً:
text = "Python"

print(text[0:3])

خروجی:
Pyt

چون Indexهای 0، 1 و 2 انتخاب می‌شوند.
🔹 حذف start یا end
از ابتدای رشته:
print(text[:3])

خروجی:
Pyt

تا انتهای رشته:
print(text[2:])

خروجی:
thon

کل رشته:
print(text[:])

🔹 Index منفی
print(text[-3:])

خروجی:
hon

سه کاراکتر آخر را می‌گیرد.
🔹 step
ساختار کامل:
text[start:end:step]

مثلاً:
text = "Python"

print(text[::2])

خروجی:
Pto

یعنی با فاصله‌ی ۲ حرکت کن.
🔹 برعکس کردن رشته
یکی از کاربردهای مهم step:
print(text[::-1])

خروجی:
nohtyP

یعنی رشته از آخر به اول خوانده می‌شود.
⚠️ نکته مهم
در:
text[1:4]

Index شماره 4 شامل نمی‌شود.
همچنین : با , فرق دارد:
text[1:4]       # Slicing
print("A", "B") # جدا کردن آرگومان‌ها

🎯 تمرین
خروجی این کدها را قبل از اجرا حدس بزن:
text = "Programming"

print(text[:4])
print(text[3:7])
print(text[-3:])
print(text[::2])
print(text[::-1])

پست ۱۲ از دوره جامع Python 🐍
👍1
🐍 آموزش جامع Python — پست ۱۳
متدهای رشته | String Methods
در Python رشته‌ها متدهای زیادی دارند که برای کار با متن استفاده می‌شوند.
ساختار کلی:
text.method()

🔹 upper()
تمام حروف را بزرگ می‌کند:
text = "hello python"

print(text.upper())

خروجی:
HELLO PYTHON

🔹 lower()
تمام حروف را کوچک می‌کند:
text = "HELLO PYTHON"

print(text.lower())

خروجی:
hello python

🔹 capitalize()
فقط اولین حرف متن را بزرگ می‌کند:
text = "hello python"

print(text.capitalize())

خروجی:
Hello python

🔹 title()
حرف اول هر کلمه را بزرگ می‌کند:
text = "hello python world"

print(text.title())

خروجی:
Hello Python World

⚠️ نکته مهم
این متدها رشته‌ی اصلی را تغییر نمی‌دهند؛ بلکه یک رشته‌ی جدید برمی‌گردانند.
مثلاً:
text = "hello"

text.upper()

print(text)

خروجی:
hello

اگر نتیجه را ذخیره کنیم:
text = text.upper()

print(text)

خروجی:
HELLO

🎯 تمرین
خروجی کد زیر را حدس بزن:
text = "python programming"

print(text.upper())
print(text.lower())
print(text.capitalize())
print(text.title())

پست ۱۳ از دوره جامع Python 🐍
👍1
🐍 آموزش جامع Python — پست ۱۴
حذف فاصله‌های اضافی از متن | strip()
یکی از کارهای رایج هنگام کار با متن، حذف فاصله‌های اضافی از ابتدا و انتهای رشته است.
برای این کار از strip() استفاده می‌کنیم.
🔹 strip()
text = "   Hello Python   "

print(text.strip())

خروجی:
Hello Python

فاصله‌های ابتدا و انتها حذف شدند.
🔹 lstrip()
فقط فاصله‌های ابتدا را حذف می‌کند:
text = "   Hello Python   "

print(text.lstrip())

خروجی:
Hello Python   

🔹 rstrip()
فقط فاصله‌های انتها را حذف می‌کند:
text = "   Hello Python   "

print(text.rstrip())

خروجی:
   Hello Python

⚠️ نکته مهم
این متدها متن اصلی را تغییر نمی‌دهند:
text = "   Hello   "

text.strip()

print(text)

هنوز فاصله‌ها وجود دارند.
اگر می‌خواهیم نتیجه ذخیره شود:
text = text.strip()

🎯 تمرین
خروجی را حدس بزن:
text = "   Python   "

print(text.strip())
print(text.lstrip())
print(text.rstrip())

پست ۱۴ از دوره جامع Python 🐍
👍1
🐍 آموزش جامع Python — پست ۱۵
جایگزین کردن متن | replace()
گاهی می‌خواهیم بخشی از یک رشته را با متن دیگری جایگزین کنیم.
برای این کار از replace() استفاده می‌کنیم.
🔹 ساختار
text.replace(old, new)

old = متن قبلی
new = متن جدید
مثال:
text = "I like Java"

print(text.replace("Java", "Python"))

خروجی:
I like Python

🔹 ذخیره نتیجه
replace() رشته اصلی را تغییر نمی‌دهد:
text = "Hello World"

text.replace("World", "Python")

print(text)

خروجی:
Hello World

اگر می‌خواهیم تغییر ذخیره شود:
text = text.replace("World", "Python")

print(text)

خروجی:
Hello Python

🔹 جایگزینی همه موارد
اگر متن چند بار تکرار شده باشد، replace() به‌صورت پیش‌فرض همه موارد را جایگزین می‌کند:
text = "cat cat cat"

print(text.replace("cat", "dog"))

خروجی:
dog dog dog

🔹 محدود کردن تعداد جایگزینی
می‌توانیم مشخص کنیم چند بار جایگزینی انجام شود:
text = "cat cat cat"

print(text.replace("cat", "dog", 2))

خروجی:
dog dog cat

عدد 2 یعنی حداکثر دو جایگزینی.
🎯 تمرین
کد زیر را طوری تغییر بده که Python به JavaScript تبدیل شود:
text = "I am learning Python"

# کدت را اینجا بنویس

پست ۱۵ از دوره جامع Python 🐍
👍1
🐍 آموزش جامع Python — پست ۱۶
پیدا کردن متن داخل رشته | find() و count()
در این پست یاد می‌گیریم چطور یک متن را داخل رشته پیدا کنیم یا تعداد تکرار آن را بشماریم.
🔹 find()
find() موقعیت اولین مورد پیدا‌شده را برمی‌گرداند:
text = "I love Python"

print(text.find("Python"))

خروجی:
7

اگر متن پیدا نشود:
print(text.find("Java"))

خروجی:
-1

یعنی پیدا نشده است.
🔹 count()
با count() تعداد تکرار یک متن را پیدا می‌کنیم:
text = "Python is great, Python is easy"

print(text.count("Python"))

خروجی:
2

⚠️ حروف بزرگ و کوچک مهم هستند
Python بین حروف بزرگ و کوچک تفاوت قائل می‌شود.
مثلاً:
text = "Python Python"

print(text.find("python"))
print(text.find("Python"))

خروجی:
-1
0

چون:
Python ≠ python

همین موضوع برای count() هم وجود دارد:
text = "Python python PYTHON"

print(text.count("Python"))
print(text.count("python"))
print(text.count("PYTHON"))

خروجی:
1
1
1

🔹 ترکیب با lower()
اگر بخواهیم بدون توجه به بزرگ یا کوچک بودن حروف جستجو کنیم، می‌توانیم متن را با lower() به حروف کوچک تبدیل کنیم:
text = "I Love Python"

print(text.lower().find("python"))

خروجی:
7

🎯 تمرین
خروجی کد زیر را حدس بزن:
text = "Python Python python"

print(text.count("Python"))
print(text.count("python"))
print(text.find("Python"))
print(text.find("python"))

پست ۱۶ از دوره جامع Python 🐍
👍1
🐍 آموزش جامع Python — پست ۱۷
بررسی وجود متن در رشته | in و not in
گاهی نمی‌خواهیم بدانیم متن دقیقاً در چه Indexای قرار دارد؛ فقط می‌خواهیم بدانیم وجود دارد یا نه.
برای این کار از in و not in استفاده می‌کنیم.
🔹 in
اگر متن وجود داشته باشد، نتیجه True است:
text = "I love Python"

print("Python" in text)

خروجی:
True

اگر وجود نداشته باشد:
print("Java" in text)

خروجی:
False

🔹 not in
برای بررسی اینکه متن وجود ندارد:
text = "I love Python"

print("Java" not in text)

خروجی:
True

⚠️ حروف بزرگ و کوچک مهم هستند
in و not in هم به بزرگ و کوچک بودن حروف حساس‌اند:
text = "Python"

print("Python" in text)
print("python" in text)

خروجی:
True
False

اگر بخواهیم حساسیت به حروف را از بین ببریم:
text = "Python"

print("python" in text.lower())

خروجی:
True

🔹 تفاوت با find()
find() موقعیت را برمی‌گرداند:
text.find("Python")

اما in فقط می‌گوید وجود دارد یا نه:
"Python" in text

یعنی نتیجه in همیشه True یا False است.
🎯 تمرین
خروجی را حدس بزن:
text = "I am learning Python"

print("Python" in text)
print("Java" in text)
print("python" in text)
print("Java" not in text)

پست ۱۷ از دوره جامع Python 🐍
👍1
🐍 آموزش جامع Python — پست ۱۸
بررسی شروع و پایان رشته | startswith() و endswith()
گاهی می‌خواهیم بدانیم یک رشته با متن خاصی شروع یا تمام می‌شود.
🔹 startswith()
بررسی می‌کند رشته با متن مشخص‌شده شروع شده یا نه:
text = "Python Programming"

print(text.startswith("Python"))
print(text.startswith("Java"))

خروجی:
True
False

🔹 endswith()
بررسی می‌کند رشته با متن مشخص‌شده تمام شده یا نه:
text = "Python Programming"

print(text.endswith("Programming"))
print(text.endswith("Python"))

خروجی:
True
False

⚠️ حروف بزرگ و کوچک مهم هستند
text = "Python"

print(text.startswith("Python"))
print(text.startswith("python"))

خروجی:
True
False

برای نادیده‌گرفتن حروف بزرگ و کوچک می‌توانیم از lower() استفاده کنیم:
print(text.lower().startswith("python"))

خروجی:
True

🔹 کاربرد واقعی
مثلاً بررسی کنیم نام یک فایل با .py تمام می‌شود:
filename = "main.py"

print(filename.endswith(".py"))

خروجی:
True

🎯 تمرین
خروجی را حدس بزن:
text = "Hello Python"

print(text.startswith("Hello"))
print(text.startswith("hello"))
print(text.endswith("Python"))
print(text.endswith("Java"))

پست ۱۸ از دوره جامع Python 🐍
👍1
🐍 آموزش جامع Python — پست ۱۹
جدا کردن متن با split()
متد split() یک رشته را بر اساس یک جداکننده به چند قسمت تقسیم می‌کند.
نتیجه‌ی split() یک لیست است.
🔹 استفاده ساده
text = "I love Python"

words = text.split()

print(words)

خروجی:
['I', 'love', 'Python']

وقتی چیزی داخل split() ننویسیم، Python به‌صورت پیش‌فرض بر اساس فاصله‌ها متن را جدا می‌کند.
🔹 جدا کردن با یک کاراکتر مشخص
مثلاً:
text = "apple,banana,orange"

fruits = text.split(",")

print(fruits)

خروجی:
['apple', 'banana', 'orange']

اینجا , جداکننده است.
🔹 جدا کردن بر اساس -
date = "2026-09-02"

print(date.split("-"))

خروجی:
['2026', '09', '02']

⚠️ نکته
split() رشته‌ی اصلی را تغییر نمی‌دهد:
text = "Hello Python"

text.split()

print(text)

خروجی:
Hello Python

اگر نتیجه را لازم داریم، باید آن را ذخیره کنیم:
words = text.split()

🎯 تمرین
خروجی را حدس بزن:
text = "Python is easy to learn"

print(text.split())

و این یکی:
data = "Ali,20,Azerbaijan"

print(data.split(","))

پست ۱۹ از دوره جامع Python 🐍
👍1