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 — پست ۲۱
بررسی محتوای رشته | 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 🐍
🐍 آموزش جامع Python — پست ۳۰
عملگرهای منطقی | and، or و not
گاهی لازم است چند شرط را با هم ترکیب کنیم.
برای این کار از سه عملگر منطقی استفاده می‌کنیم:
and
or
not

🔹 and
هر دو شرط باید True باشند:
print(10 > 5 and 20 > 10)

خروجی:
True

اما:
print(10 > 5 and 20 < 10)

خروجی:
False

🔹 or
کافی است حداقل یکی از شرط‌ها True باشد:
print(10 > 5 or 20 < 10)

خروجی:
True

اگر هر دو False باشند:
print(10 < 5 or 20 < 10)

خروجی:
False

🔹 not
نتیجه را برعکس می‌کند:
print(not True)
print(not False)

خروجی:
False
True

مثلاً:
x = 10

print(not x == 5)

خروجی:
True

چون x == 5 برابر False است و not آن را برعکس می‌کند.
🧠 خلاصه
and → هر دو باید True باشند
or → حداقل یکی باید True باشد
not → True و False را برعکس می‌کند

🎯 تمرین
خروجی هر خط را قبل از اجرا حدس بزن:
x = 10

print(x > 5 and x < 20)
print(x > 20 or x == 10)
print(not x == 10)

پست ۳۰ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۳۱
اولویت عملگرها در Python
وقتی چند عملگر در یک عبارت داشته باشیم، Python آن‌ها را با یک ترتیب مشخص بررسی می‌کند.
🔹 ترتیب مهم
برای بخش‌هایی که تا اینجا یاد گرفتیم:
()
**
* / // %
+ -
== != > < >= <=
not
and
or

یعنی:
مقایسه‌ها قبل از not انجام می‌شوند.
not قبل از and انجام می‌شود.
and قبل از or انجام می‌شود.
🔹 مثال
result = True or False and False

print(result)

ابتدا and محاسبه می‌شود:
False and False → False

سپس:
True or False → True

خروجی:
True

🔹 مثال مهم برای not
x = 10

print(not x == 5)

ابتدا مقایسه انجام می‌شود:
x == 5 → False

سپس not:
not False → True

پس خروجی:
True

🔹 استفاده از ()
برای مشخص‌کردن ترتیب موردنظر، از پرانتز استفاده می‌کنیم:
result = (True or False) and False

print(result)

ابتدا:
True or False → True

سپس:
True and False → False

خروجی:
False

🧠 نکته مهم
ترتیب منطقی را این‌طور به خاطر بسپار:
مقایسه → not → and → or

و اگر ترتیب برایت مبهم است، از () استفاده کن.
🎯 تمرین
خروجی را بدون اجرا حدس بزن:
print(not False and False)
print(not (False and False))
print(True or False and False)

پست ۳۱ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۳۲
شرط‌ها در Python | if و else
با if می‌توانیم بگوییم:
اگر یک شرط درست بود، این کد را اجرا کن.
با else هم مشخص می‌کنیم اگر شرط درست نبود، چه اتفاقی بیفتد.
🔹 ساختار if
if condition:
code

بعد از شرط : قرار می‌گیرد و کد داخل if باید تورفتگی (indentation) داشته باشد.
🔹 مثال ساده
age = 20

if age >= 18:
print("You are an adult.")

چون:
20 >= 18 → True

خروجی:
You are an adult.

🔹 else
اگر شرط if برابر False باشد، کد داخل else اجرا می‌شود:
age = 15

if age >= 18:
print("You are an adult.")
else:
print("You are not an adult.")

خروجی:
You are not an adult.

ساختار:
if condition:
code
else:
code

⚠️ بعد از else هم باید : قرار بگیرد.
🔹 یک مثال واقعی
score = 75

if score >= 50:
print("Passed")
else:
print("Failed")

خروجی:
Passed

⚠️ = و == را اشتباه نکن
age = 20

= یعنی قرار دادن مقدار.
اما:
age == 20

یعنی مقایسه کردن.
مثلاً:
if age == 20:
print("Age is 20")

🧠 خلاصه
if    → اگر شرط درست باشد
else → اگر شرط درست نباشد
: → شروع بلوک
indentation → کد داخل بلوک

🎯 تمرین
برنامه‌ای بنویس که اگر score حداقل 50 بود، Passed و در غیر این صورت Failed را چاپ کند:
score = 40

پست ۳۲ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۳۳
حالت جایگزین در شرط | else
در پست قبل با if آشنا شدیم.
با else مشخص می‌کنیم اگر شرط if False بود، چه کدی اجرا شود.
🔹 ساختار
if condition:
code
else:
code

دقت کن:
بعد از if و else علامت : قرار می‌گیرد.
کدهای داخل هر بلوک باید تورفتگی (indentation) داشته باشند.
🔹 مثال ساده
age = 15

if age >= 18:
print("You are an adult.")
else:
print("You are not an adult.")

خروجی:
You are not an adult.

🔹 مثال با score
score = 40

if score >= 50:
print("Passed")
else:
print("Failed")

خروجی:
Failed

🔹 تمرین تعاملی با input()
حالا برنامه را طوری بنویسیم که خود کاربر نمره را وارد کند:
score = int(input("Enter your score: "))

if score >= 50:
print("Passed")
else:
print("Failed")

مثلاً:
Enter your score: 75
Passed

یا:
Enter your score: 40
Failed

اینجا:
input() → دریافت ورودی
int() → تبدیل ورودی به عدد صحیح
if → بررسی شرط
else → حالت مخالف

⚠️ نکته مهم
else شرط ندارد.
if age >= 18:
print("Adult")
else:
print("Not adult")

اگر شرط if درست نباشد، else اجرا می‌شود.
🎯 تمرین
برنامه‌ای بنویس که سن را از کاربر بگیرد:
age = int(input("Enter your age: "))

اگر سن ۱۸ یا بیشتر بود:
Adult

در غیر این صورت:
Not adult

پست ۳۳ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۳۴
چند حالت شرطی | elif
گاهی فقط دو حالت نداریم؛ مثلاً نمره می‌تواند قبول، متوسط یا ضعیف باشد.
برای چند شرط از elif استفاده می‌کنیم.
🔹 ساختار
if condition:
code
elif condition:
code
else:
code

دقت کن:
if اولین شرط است.
elif برای شرط‌های بعدی است.
else برای زمانی است که هیچ‌کدام درست نباشند.
بعد از if، elif و else علامت : قرار می‌گیرد.
🔹 مثال
score = 75

if score >= 90:
print("Excellent")
elif score >= 50:
print("Passed")
else:
print("Failed")

خروجی:
Passed

چون شرط score >= 90 نادرست است، اما score >= 50 درست است.
🔹 مثال تعاملی
score = int(input("Enter your score: "))

if score >= 90:
print("Excellent")
elif score >= 50:
print("Passed")
else:
print("Failed")

مثلاً:
Enter your score: 95
Excellent

یا:
Enter your score: 30
Failed

⚠️ نکته مهم
در یک زنجیره‌ی if / elif / else فقط اولین شرط درست اجرا می‌شود.
🎯 تمرین
برنامه‌ای بنویس که نمره را از کاربر بگیرد و:
90 به بالا → Excellent
50 تا 89 → Passed
کمتر از 50 → Failed

پست ۳۴ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۳۵
چند شرط با elif
در پست قبل با elif آشنا شدیم.
می‌توانیم چند elif پشت سر هم داشته باشیم تا حالت‌های مختلف را بررسی کنیم.
🔹 مثال
score = int(input("Enter your score: "))

if score >= 90:
print("Excellent")
elif score >= 75:
print("Very Good")
elif score >= 50:
print("Passed")
else:
print("Failed")

مثلاً اگر کاربر وارد کند:
Enter your score: 80

خروجی:
Very Good

⚠️ ترتیب شرط‌ها مهم است
Python شرط‌ها را از بالا به پایین بررسی می‌کند.
به محض اینکه یک شرط True باشد، همان بلوک اجرا می‌شود و بقیه بررسی نمی‌شوند.
پس معمولاً شرط‌های بزرگ‌تر را قبل از شرط‌های کوچک‌تر قرار می‌دهیم.
🔹 یک مثال ساده‌تر
number = int(input("Enter a number: "))

if number > 0:
print("Positive")
elif number < 0:
print("Negative")
else:
print("Zero")

🎯 تمرین
برنامه‌ای بنویس که عدد را از کاربر بگیرد و مشخص کند:
مثبت → Positive
منفی → Negative
صفر → Zero

پست ۳۵ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۳۶
شرط‌های ترکیبی با and و or
گاهی برای تصمیم‌گیری به چند شرط همزمان نیاز داریم.
🔹 استفاده از and
با and باید همه شرط‌ها True باشند:
age = int(input("Enter your age: "))
has_id = input("Do you have an ID? ")

if age >= 18 and has_id == "yes":
print("Access granted")
else:
print("Access denied")

برای ورود، هر دو شرط باید درست باشند.
🔹 استفاده از or
با or کافی است حداقل یکی از شرط‌ها True باشد:
username = input("Enter username: ")

if username == "admin" or username == "root":
print("Valid user")
else:
print("Unknown user")

⚠️ نکته مهم
and → همه شرط‌ها باید درست باشند.
or → حداقل یک شرط باید درست باشد.
برای ترکیب چند شرط می‌توانیم از پرانتز () استفاده کنیم:
if (age >= 18 and has_id == "yes") or username == "admin":
print("Access granted")

🎯 تمرین
برنامه‌ای بنویس که سن و نمره را از کاربر بگیرد و فقط وقتی هر دو شرط برقرار بودند، Accepted را چاپ کند:
سن حداقل 18
نمره حداقل 50

پست ۳۶ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۳۷
شرط‌های تو در تو | Nested if
گاهی یک شرط فقط زمانی باید بررسی شود که شرط دیگری درست باشد.
در این حالت می‌توانیم یک if را داخل if دیگر قرار دهیم.
🔹 مثال
age = int(input("Enter your age: "))

if age >= 18:
has_id = input("Do you have an ID? ")

if has_id == "yes":
print("Access granted")
else:
print("ID required")
else:
print("You are under 18")

اینجا ابتدا سن بررسی می‌شود.
اگر سن حداقل ۱۸ باشد، شرط داشتن کارت شناسایی بررسی می‌شود.
⚠️ نکته مهم
هر if داخلی باید تورفتگی (indentation) مناسب داشته باشد:
if condition:
if another_condition:
print("...")

علامت : بعد از هر if ضروری است.
🎯 تمرین
برنامه‌ای بنویس که سن و رمز عبور را از کاربر بگیرد.
فقط اگر:
سن >= 18
رمز عبور == "1234"

باشد، عبارت زیر چاپ شود:
Login successful

پست ۳۷ از دوره جامع Python 🐍
👍1
🐍 آموزش جامع Python — پست ۳۸
منطق چند شرط با and و or
گاهی یک تصمیم به دو شرط وابسته است.
برای ترکیب شرط‌ها از and و or استفاده می‌کنیم.
🔹 and | هر دو شرط باید درست باشند
مثلاً برای ورود، هم سن باید حداقل ۱۸ باشد و هم رمز درست باشد:
age = 20
password = "1234"

if age >= 18 and password == "1234":
print("Login successful")

دو شرط داریم:
age >= 18          → True
password == "1234" → True

چون هر دو True هستند:
True and True → True

پس ورود انجام می‌شود.
اگر یکی از آن‌ها False باشد:
True and False → False
False and True → False
False and False → False

بنابراین در and:
همه شرط‌ها باید

True
باشند.

🔹 or | حداقل یکی از شرط‌ها کافی است
مثلاً کاربر می‌تواند admin یا root باشد:
username = input("Enter username: ")

if username == "admin" or username == "root":
print("Valid username")
else:
print("Invalid username")

اگر:
username == "admin" → True
username == "root" → False

داریم:
True or False → True

پس شرط اجرا می‌شود.
در or:
True or True   → True
True or False → True
False or True → True
False or False → False

بنابراین:
فقط وقتی همه شرط‌ها

False
باشند،

or
نتیجه

False
می‌دهد.

🔥 مقایسه مستقیم
فرض کنیم:
A = True
B = False

با and:
print(A and B)

نتیجه:
False

چون هر دو شرط True نیستند.
اما با or:
print(A or B)

نتیجه:
True

چون حداقل یکی True است.
پس:
A = True
B = False

A and B → False
A or B → True

🔹 پرانتز () چه کاری انجام می‌دهد؟
پرانتز مشخص می‌کند کدام بخش از شرط با هم گروه‌بندی شود.
مثلاً:
A = True
B = False
C = False

print(A or B and C)

طبق اولویت عملگرها، and قبل از or بررسی می‌شود:
A or (B and C)
True or (False and False)
True

اما:
print((A or B) and C)

ابتدا پرانتز:
(A or B) and C
(True or False) and False
True and False
False

پس:
A or B and C     → True
(A or B) and C → False

⚠️ پرانتز می‌تواند منطق و نتیجه شرط را تغییر دهد.
🧠 خلاصه
and → همه شرط‌ها باید True باشند
or → حداقل یک شرط باید True باشد
() → شرط‌ها را گروه‌بندی و ترتیب را مشخص می‌کند

🎯 تمرین
خروجی هر خط را قبل از اجرا حدس بزن:
A = True
B = False

print(A and B)
print(A or B)
print((A or B) and B)
print(A or (B and B))

پست ۳۸ از دوره جامع Python 🐍
👍1
🐍 آموزش جامع Python — پست ۳۹
عملگر not | برعکس کردن شرط
با not نتیجه منطقی یک شرط را معکوس می‌کنیم.
یعنی:
True  → False
False → True

🔹 مثال ساده
is_admin = False

print(not is_admin)

خروجی:
True

چون:
is_admin → False
not False → True

🔹 استفاده در if
is_logged_in = False

if not is_logged_in:
print("Please login")

چون کاربر وارد نشده، not مقدار False را به True تبدیل می‌کند.
🔹 جدول not
شرط
not شرط
True
False
False
True
⚠️ نکته مهم
not روی نتیجه عبارت عمل می‌کند.
مثلاً:
age = 15

print(not age >= 18)

ابتدا:
age >= 18 → False

سپس:
not False → True

🔹 ترکیب با and و or
age = 20
has_id = False

if not (age >= 18 and has_id):
print("Access denied")

پرانتز باعث می‌شود not روی کل عبارت اعمال شود:
(age >= 18 and has_id)
(True and False)
False

not False
True

🎯 تمرین
خروجی را قبل از اجرا حدس بزن:
A = True
B = False

print(not A)
print(not B)
print(not (A and B))
print(not (A or B))

پست ۳۹ از دوره جامع Python 🐍
👍1
🐍 آموزش جامع Python — پست ۴۰
ترکیب not با and و or
در پست‌های قبل با and، or و not آشنا شدیم.
حالا می‌توانیم این عملگرها را با هم ترکیب کنیم.
🔹 ترکیب not و and
age = 20
has_id = True

if not (age >= 18 and has_id):
print("Access denied")
else:
print("Access granted")

ابتدا داخل پرانتز بررسی می‌شود:
age >= 18 → True
has_id → True

True and True → True

سپس:
not True → False

پس else اجرا می‌شود.
🔹 ترکیب not و or
username = "guest"

if not (username == "admin" or username == "root"):
print("Access denied")

داخل پرانتز:
username == "admin" → False
username == "root" → False

False or False → False

سپس:
not False → True

پس پیام Access denied نمایش داده می‌شود.
⚠️ نکته مهم
وقتی چند عملگر را ترکیب می‌کنیم، پرانتز خوانایی و منطق شرط را واضح‌تر می‌کند.
مثلاً:
not (A and B)

با:
(not A) and B

یک معنی ندارند.
پس اگر منطق شرط پیچیده شد، از () استفاده کن.
🧠 خلاصه
not → نتیجه را معکوس می‌کند
and → همه شرط‌ها باید True باشند
or → حداقل یک شرط باید True باشد
() → بخش‌های شرط را گروه‌بندی می‌کند

🎯 تمرین
خروجی هر خط را قبل از اجرا حدس بزن:
A = True
B = False

print(not A)
print(not B)
print(not (A and B))
print(not (A or B))

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