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
🐍 آموزش جامع 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
🐍 آموزش جامع Python — پست ۲۰
چسباندن رشته‌ها با join()
در پست قبل یاد گرفتیم با split() یک رشته را به چند بخش تقسیم کنیم.
حالا با join() برعکس عمل می‌کنیم و چند رشته را به هم می‌چسبانیم.
🔹 استفاده ساده
words = ["I", "love", "Python"]

text = " ".join(words)

print(text)

خروجی:
I love Python

اینجا " " مشخص می‌کند بین کلمات فاصله قرار بگیرد.
🔹 استفاده با -
numbers = ["2026", "09", "02"]

date = "-".join(numbers)

print(date)

خروجی:
2026-09-02

🔹 بدون جداکننده
letters = ["P", "y", "t", "h", "o", "n"]

word = "".join(letters)

print(word)

خروجی:
Python

⚠️ نکته مهم
اعضای لیست باید رشته (str) باشند.
این کد خطا می‌دهد:
numbers = [1, 2, 3]

print("-".join(numbers))

چون 1، 2 و 3 عدد هستند، نه رشته.
راه‌حل:
numbers = ["1", "2", "3"]

print("-".join(numbers))

🎯 تمرین
خروجی را حدس بزن:
words = ["Python", "is", "easy"]

print(" ".join(words))

حالا این را امتحان کن:
words = ["Python", "Java", "C++"]

print(", ".join(words))

پست ۲۰ از دوره جامع Python 🐍
👍1
🐍 آموزش جامع Python — پست ۲۱
بررسی محتوای رشته | isdigit()، isalpha() و isalnum()
گاهی می‌خواهیم بدانیم یک رشته فقط شامل عدد، حروف یا ترکیبی از آن‌ها است.
برای این کار چند متد کاربردی داریم.
🔹 isdigit()
بررسی می‌کند تمام کاراکترهای رشته عددی باشند:
text = "12345"

print(text.isdigit())

خروجی:
True

اما:
text = "123a"

print(text.isdigit())

خروجی:
False

🔹 isalpha()
بررسی می‌کند تمام کاراکترها حرف باشند:
text = "Python"

print(text.isalpha())

خروجی:
True

اما فاصله باعث می‌شود False شود:
text = "Hello World"

print(text.isalpha())

خروجی:
False

🔹 isalnum()
بررسی می‌کند تمام کاراکترها حرف یا عدد باشند:
text = "Python123"

print(text.isalnum())

خروجی:
True

اما:
text = "Python_123"

print(text.isalnum())

خروجی:
False

چون _ نه حرف است و نه عدد.
⚠️ نکته مهم
این متدها فقط روی str کار می‌کنند:
number = 123

print(number.isdigit())

این کد خطا می‌دهد؛ چون number یک int است.
در صورت نیاز:
number = "123"

print(number.isdigit())

🎯 تمرین
خروجی هر خط را حدس بزن:
print("123".isdigit())
print("Python".isalpha())
print("Python123".isalnum())
print("Python 123".isalnum())
print("123abc".isdigit())

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

print(text.isspace())

خروجی:
True

اما:
text = "Hello"

print(text.isspace())

خروجی:
False

🔹 رشته خالی
رشته‌ی خالی "" هیچ کاراکتری ندارد:
print("".isspace())

خروجی:
False

پس:
"   "  → True
"" → False

🔹 تفاوت isspace() و strip()
این دو متد کاربرد متفاوتی دارند:
isspace() → بررسی می‌کند
text = "   "

print(text.isspace())

خروجی:
True

strip() → فاصله‌های ابتدا و انتهای رشته را حذف می‌کند
text = "   Hello Python   "

print(text.strip())

خروجی:
Hello Python

⚠️ نکته مهم
strip() فقط بررسی نمی‌کند؛ یک رشته جدید برمی‌گرداند.
text = "   Hello   "

text.strip()

print(text)

هنوز خروجی:
   Hello   

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

print(text)

خروجی:
Hello

🎯 کاربرد واقعی
مثلاً برای بررسی ورودی کاربر:
username = "   "

if username.isspace():
print("Username cannot be only spaces")

و برای حذف فاصله‌های اضافی ابتدا و انتها:
username = "   Ali   "

username = username.strip()

print(username)

خروجی:
Ali

🧠 خلاصه
isspace() → آیا همه کاراکترها فاصله‌ای هستند؟
strip() → فاصله‌های ابتدا و انتها را حذف می‌کند.

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

print(text.isspace())
print(text.strip())
print(text)

پست ۲۲ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۲۳
قرار دادن متغیر داخل متن | f-string
گاهی می‌خواهیم مقدار یک متغیر را داخل یک متن نمایش دهیم.
برای این کار یکی از بهترین روش‌ها f-string است.
🔹 روش ساده
name = "Ali"
age = 20

print(f"My name is {name}")
print(f"I am {age} years old")

خروجی:
My name is Ali
I am 20 years old

حرف f قبل از رشته قرار می‌گیرد:
f"..."

و متغیر را داخل {} می‌نویسیم.
🔹 چند متغیر
name = "Ali"
age = 20
city = "Baku"

print(f"{name} is {age} years old and lives in {city}.")

خروجی:
Ali is 20 years old and lives in Baku.

🔹 قرار دادن محاسبه داخل {}
داخل {} فقط متغیر نیست؛ می‌توانیم عبارت هم بنویسیم:
age = 20

print(f"Next year I will be {age + 1}.")

خروجی:
Next year I will be 21.

⚠️ نکته مهم
برای f-string باید f را قبل از رشته بنویسیم:
name = "Ali"

print(f"Hello {name}")

اگر f را ننویسیم:
print("Hello {name}")

خروجی:
Hello {name}

🎯 تمرین
خروجی را حدس بزن:
name = "Sara"
age = 18

print(f"My name is {name}.")
print(f"Next year I will be {age + 1}.")

پست ۲۳ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۲۴
قالب‌بندی عددها با f-string
در پست قبل یاد گرفتیم متغیرها را با f-string داخل متن قرار دهیم.
حالا می‌توانیم نحوه نمایش عددها را کنترل کنیم.
🔹 تعداد رقم اعشار
price = 19.9876

print(f"{price:.2f}")

خروجی:
19.99

ساختار:
{متغیر:.2f}

2f یعنی عدد هنگام نمایش با ۲ رقم اعشار نشان داده شود.
🔹 جداکننده هزارگان
number = 1000000

print(f"{number:,}")

خروجی:
1,000,000

, فقط نحوه نمایش عدد را تغییر می‌دهد.
🔥 مقدار واقعی ≠ نمایش
این نکته بسیار مهم است:
price = 19.9876

print(f"{price:.2f}")
print(price)

خروجی:
19.99
19.9876

یعنی:
مقدار واقعی → 19.9876
نمایش با قالب → 19.99

f-string مقدار متغیر را تغییر نمی‌دهد؛ فقط مشخص می‌کند مقدار چطور نمایش داده شود.
🔹 یک مثال واضح‌تر
number = 1234567.891

print(f"{number:,.2f}")
print(number)

خروجی:
1,234,567.89
1234567.891

پس:
1,234,567.89 فقط شکل نمایش است.
مقدار واقعی همچنان:
1234567.891
است.
⚠️ اگر واقعاً بخواهیم مقدار را تغییر دهیم
باید نتیجه را در یک متغیر ذخیره کنیم:
price = 19.9876

price = round(price, 2)

print(price)

خروجی:
19.99

اینجا دیگر مقدار price تغییر کرده است.
🧠 خلاصه
f"{price:.2f}"  → فقط نمایش را قالب‌بندی می‌کند
round(price, 2) → مقدار جدید تولید می‌کند

🎯 تمرین
خروجی را حدس بزن:
number = 1234.5678

print(f"{number:.2f}")
print(number)

number = round(number, 2)

print(number)

به تفاوت خروجی‌های قبل و بعد از round() دقت کن.
پست ۲۴ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۲۵
گرفتن ورودی از کاربر | input()
تا اینجا اطلاعات را خودمان داخل برنامه می‌نوشتیم.
با input() می‌توانیم از کاربر ورودی بگیریم.
🔹 استفاده ساده
name = input("Enter your name: ")

print(name)

مثلاً اگر کاربر بنویسد:
Ali

خروجی:
Ali

🔹 ذخیره ورودی در متغیر
مقدار برگشتی input() را می‌توانیم داخل متغیر ذخیره کنیم:
name = input("Name: ")
age = input("Age: ")

print(name)
print(age)

⚠️ نکته بسیار مهم
خروجی input() همیشه از نوع str است.
حتی اگر کاربر عدد وارد کند:
age = input("Age: ")

print(type(age))

اگر کاربر 20 وارد کند، خروجی:
<class 'str'>

یعنی 20 در اینجا رشته است، نه int.
🔹 مشکل محاسبه با input()
age = input("Age: ")

print(age + 1)

این کد خطا می‌دهد، چون age رشته است.
برای تبدیل به عدد، در پست بعد با int() و float() کار می‌کنیم.
🎯 تمرین
برنامه‌ای بنویس که:
نام کاربر را بگیرد.
سن کاربر را بگیرد.
هر دو را با print() نمایش دهد.
نوع age را با type() بررسی کند.
پست ۲۵ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۲۶
تبدیل نوع داده‌ها | int() و float()
در پست قبل دیدیم که input() همیشه یک str برمی‌گرداند.
حالا یاد می‌گیریم چطور آن را به عدد تبدیل کنیم.
🔹 تبدیل به int
age = input("Age: ")

age = int(age)

print(age)
print(type(age))

اگر کاربر 20 وارد کند:
20
<class 'int'>

🔹 تبدیل به float
برای اعداد اعشاری از float() استفاده می‌کنیم:
price = input("Price: ")

price = float(price)

print(price)
print(type(price))

اگر کاربر 19.99 وارد کند:
19.99
<class 'float'>

🔹 تبدیل مستقیم
می‌توانیم تبدیل را همان موقع دریافت ورودی انجام دهیم:
age = int(input("Age: "))
price = float(input("Price: "))

⚠️ ورودی باید قابل تبدیل باشد
این کد خطا می‌دهد:
age = int("hello")

چون "hello" یک عدد صحیح نیست.
همچنین:
number = int("10.5")

خطا می‌دهد؛ چون "10.5" یک عدد اعشاری متنی است.
برای آن باید از float() استفاده کنیم:
number = float("10.5")

🔹 یک مثال واقعی
age = int(input("Age: "))

print(f"Next year you will be {age + 1}.")

اگر کاربر 20 وارد کند:
Next year you will be 21.

🧠 خلاصه
input()       → str
int("20") → 20
float("20.5") → 20.5

🎯 تمرین
برنامه‌ای بنویس که قیمت و تعداد را از کاربر بگیرد و قیمت کل را محاسبه کند:
price = float(input("Price: "))
count = int(input("Count: "))

total = price * count

print(total)

پست ۲۶ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۲۷
تبدیل انواع داده‌ها | str()، int() و float()
تا اینجا با int() و float() آشنا شدیم.
حالا هر سه تبدیل مهم را کنار هم می‌بینیم.
🔹 تبدیل به str
با str() یک مقدار را به رشته تبدیل می‌کنیم:
number = 100

text = str(number)

print(text)
print(type(text))

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

🔹 تبدیل به int
text = "25"

number = int(text)

print(number)
print(type(number))

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

🔹 تبدیل به float
text = "25.5"

number = float(text)

print(number)
print(type(number))

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

⚠️ تبدیل همیشه ممکن نیست
مثلاً:
int("hello")

خطا می‌دهد؛ چون "hello" عدد نیست.
اما:
int("25")

درست است.
🔹 تبدیل float به int
number = 12.9

print(int(number))

خروجی:
12

int() قسمت اعشاری را حذف می‌کند؛ گرد نمی‌کند.
🧠 خلاصه
str(100)     → "100"
int("100") → 100
float("10.5") → 10.5

نوع داده قبل و بعد از تبدیل می‌تواند کاملاً متفاوت باشد.
🎯 تمرین
نوع و خروجی هرکدام را بررسی کن:
a = str(50)
b = int("50")
c = float("50")

print(a, type(a))
print(b, type(b))
print(c, type(c))

پست ۲۷ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۲۸
تبدیل به bool | تابع bool()
با bool() می‌توانیم یک مقدار را به True یا False تبدیل کنیم.
🔹 مقادیر معمولاً True
print(bool(1))
print(bool(100))
print(bool("Hello"))

خروجی:
True
True
True

🔹 مقادیر معمولاً False
چند مقدار مهم در Python به False تبدیل می‌شوند:
print(bool(0))
print(bool(""))
print(bool(None))

خروجی:
False
False
False

لیست خالی هم False است:
print(bool([]))

خروجی:
False

⚠️ نکته مهم
رشته‌ای که فقط شامل "0" باشد، خالی نیست:
print(bool("0"))

خروجی:
True

چون "0" یک رشته‌ی دارای کاراکتر است.
🔹 مثال با input()
name = input("Name: ")

print(bool(name))

اگر کاربر چیزی وارد کند:
Ali

نتیجه:
True

اما اگر ورودی خالی باشد:
False

🧠 خلاصه
bool(1)       → True
bool(0) → False

bool("Hello") → True
bool("") → False

bool([]) → False
bool(None) → False

این مفهوم بعداً در شرط‌ها (if) بسیار مهم می‌شود.
🎯 تمرین
بدون اجرا حدس بزن خروجی هر خط چیست:
print(bool(10))
print(bool(0))
print(bool("Python"))
print(bool(""))
print(bool("0"))
print(bool([]))

پست ۲۸ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۲۹
مقایسه مقادیر | ==، !=، > و <
تا اینجا با مقدارها و تبدیل نوع داده‌ها آشنا شدیم.
حالا یاد می‌گیریم دو مقدار را با هم مقایسه کنیم.
نتیجه‌ی مقایسه همیشه True یا False است.
🔹 برابر بودن | ==
print(10 == 10)
print(10 == 5)

خروجی:
True
False

⚠️ == برای مقایسه است.
اما = برای قرار دادن مقدار داخل متغیر است:
x = 10
print(x == 10)

🔹 نابرابر بودن | !=
print(10 != 5)
print(10 != 10)

خروجی:
True
False

یعنی:
!=  → برابر نیست

🔹 بزرگ‌تر و کوچک‌تر
print(10 > 5)
print(10 < 5)

خروجی:
True
False

عملگرها:
>  → بزرگ‌تر از
< → کوچک‌تر از

🔹 بزرگ‌تر یا مساوی | >=
print(10 >= 10)
print(10 >= 5)

هر دو True هستند.
🔹 کوچک‌تر یا مساوی | <=
print(5 <= 10)
print(10 <= 5)

خروجی:
True
False

🧠 خلاصه
==  → برابر است
!= → برابر نیست
> → بزرگ‌تر
< → کوچک‌تر
>= → بزرگ‌تر یا مساوی
<= → کوچک‌تر یا مساوی

🎯 تمرین
بدون اجرا نتیجه را حدس بزن:
x = 20

print(x == 20)
print(x != 10)
print(x > 15)
print(x < 10)
print(x >= 20)
print(x <= 19)

پست ۲۹ از دوره جامع Python 🐍