🐍 آموزش جامع 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 — پست ۳۰
عملگرهای منطقی |
گاهی لازم است چند شرط را با هم ترکیب کنیم.
برای این کار از سه عملگر منطقی استفاده میکنیم:
🔹
هر دو شرط باید
خروجی:
اما:
خروجی:
🔹
کافی است حداقل یکی از شرطها
خروجی:
اگر هر دو
خروجی:
🔹
نتیجه را برعکس میکند:
خروجی:
مثلاً:
خروجی:
چون
🧠 خلاصه
🎯 تمرین
خروجی هر خط را قبل از اجرا حدس بزن:
پست ۳۰ از دوره جامع 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 آنها را با یک ترتیب مشخص بررسی میکند.
🔹 ترتیب مهم
برای بخشهایی که تا اینجا یاد گرفتیم:
یعنی:
مقایسهها قبل از
🔹 مثال
ابتدا
سپس:
خروجی:
🔹 مثال مهم برای
ابتدا مقایسه انجام میشود:
سپس
پس خروجی:
🔹 استفاده از
برای مشخصکردن ترتیب موردنظر، از پرانتز استفاده میکنیم:
ابتدا:
سپس:
خروجی:
🧠 نکته مهم
ترتیب منطقی را اینطور به خاطر بسپار:
و اگر ترتیب برایت مبهم است، از
🎯 تمرین
خروجی را بدون اجرا حدس بزن:
پست ۳۱ از دوره جامع 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
🔹 مثال مهم برای
notx = 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 |
با
اگر یک شرط درست بود، این کد را اجرا کن.
با
🔹 ساختار
بعد از شرط
🔹 مثال ساده
چون:
خروجی:
🔹
اگر شرط
خروجی:
ساختار:
⚠️ بعد از
🔹 یک مثال واقعی
خروجی:
⚠️
اما:
یعنی مقایسه کردن.
مثلاً:
🧠 خلاصه
🎯 تمرین
برنامهای بنویس که اگر
پست ۳۲ از دوره جامع Python 🐍
شرطها در Python |
if و elseبا
if میتوانیم بگوییم:اگر یک شرط درست بود، این کد را اجرا کن.
با
else هم مشخص میکنیم اگر شرط درست نبود، چه اتفاقی بیفتد.🔹 ساختار
ifif 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 — پست ۳۳
حالت جایگزین در شرط |
در پست قبل با
با
🔹 ساختار
دقت کن:
بعد از
کدهای داخل هر بلوک باید تورفتگی (indentation) داشته باشند.
🔹 مثال ساده
خروجی:
🔹 مثال با
خروجی:
🔹 تمرین تعاملی با
حالا برنامه را طوری بنویسیم که خود کاربر نمره را وارد کند:
مثلاً:
یا:
اینجا:
⚠️ نکته مهم
اگر شرط
🎯 تمرین
برنامهای بنویس که سن را از کاربر بگیرد:
اگر سن ۱۸ یا بیشتر بود:
در غیر این صورت:
پست ۳۳ از دوره جامع 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.
🔹 مثال با
scorescore = 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 — پست ۳۴
چند حالت شرطی |
گاهی فقط دو حالت نداریم؛ مثلاً نمره میتواند قبول، متوسط یا ضعیف باشد.
برای چند شرط از
🔹 ساختار
دقت کن:
بعد از
🔹 مثال
خروجی:
چون شرط
🔹 مثال تعاملی
مثلاً:
یا:
⚠️ نکته مهم
در یک زنجیرهی
🎯 تمرین
برنامهای بنویس که نمره را از کاربر بگیرد و:
پست ۳۴ از دوره جامع 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 — پست ۳۵
چند شرط با
در پست قبل با
میتوانیم چند
🔹 مثال
مثلاً اگر کاربر وارد کند:
خروجی:
⚠️ ترتیب شرطها مهم است
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 — پست ۳۶
شرطهای ترکیبی با
گاهی برای تصمیمگیری به چند شرط همزمان نیاز داریم.
🔹 استفاده از
با
برای ورود، هر دو شرط باید درست باشند.
🔹 استفاده از
با
⚠️ نکته مهم
برای ترکیب چند شرط میتوانیم از پرانتز
🎯 تمرین
برنامهای بنویس که سن و نمره را از کاربر بگیرد و فقط وقتی هر دو شرط برقرار بودند،
پست ۳۶ از دوره جامع 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
گاهی یک شرط فقط زمانی باید بررسی شود که شرط دیگری درست باشد.
در این حالت میتوانیم یک
🔹 مثال
اینجا ابتدا سن بررسی میشود.
اگر سن حداقل ۱۸ باشد، شرط داشتن کارت شناسایی بررسی میشود.
⚠️ نکته مهم
هر
علامت
🎯 تمرین
برنامهای بنویس که سن و رمز عبور را از کاربر بگیرد.
فقط اگر:
باشد، عبارت زیر چاپ شود:
پست ۳۷ از دوره جامع 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 — پست ۳۸
منطق چند شرط با
گاهی یک تصمیم به دو شرط وابسته است.
برای ترکیب شرطها از
🔹
مثلاً برای ورود، هم سن باید حداقل ۱۸ باشد و هم رمز درست باشد:
دو شرط داریم:
چون هر دو
پس ورود انجام میشود.
اگر یکی از آنها
بنابراین در
🔹
مثلاً کاربر میتواند
اگر:
داریم:
پس شرط اجرا میشود.
در
بنابراین:
🔥 مقایسه مستقیم
فرض کنیم:
با
نتیجه:
چون هر دو شرط
اما با
نتیجه:
چون حداقل یکی
پس:
🔹 پرانتز
پرانتز مشخص میکند کدام بخش از شرط با هم گروهبندی شود.
مثلاً:
طبق اولویت عملگرها،
اما:
ابتدا پرانتز:
پس:
⚠️ پرانتز میتواند منطق و نتیجه شرط را تغییر دهد.
🧠 خلاصه
🎯 تمرین
خروجی هر خط را قبل از اجرا حدس بزن:
پست ۳۸ از دوره جامع 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 — پست ۳۹
عملگر
با
یعنی:
🔹 مثال ساده
خروجی:
چون:
🔹 استفاده در
چون کاربر وارد نشده،
🔹 جدول
شرط
⚠️ نکته مهم
مثلاً:
ابتدا:
سپس:
🔹 ترکیب با
پرانتز باعث میشود
🎯 تمرین
خروجی را قبل از اجرا حدس بزن:
پست ۳۹ از دوره جامع Python 🐍
عملگر
not | برعکس کردن شرطبا
not نتیجه منطقی یک شرط را معکوس میکنیم.یعنی:
True → False
False → True
🔹 مثال ساده
is_admin = False
print(not is_admin)
خروجی:
True
چون:
is_admin → False
not False → True
🔹 استفاده در
ifis_logged_in = False
if not is_logged_in:
print("Please login")
چون کاربر وارد نشده،
not مقدار False را به True تبدیل میکند.🔹 جدول
notشرط
not شرطTrueFalseFalseTrue⚠️ نکته مهم
not روی نتیجه عبارت عمل میکند.مثلاً:
age = 15
print(not age >= 18)
ابتدا:
age >= 18 → False
سپس:
not False → True
🔹 ترکیب با
and و orage = 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 — پست ۴۰
ترکیب
در پستهای قبل با
حالا میتوانیم این عملگرها را با هم ترکیب کنیم.
🔹 ترکیب
ابتدا داخل پرانتز بررسی میشود:
سپس:
پس
🔹 ترکیب
داخل پرانتز:
سپس:
پس پیام
⚠️ نکته مهم
وقتی چند عملگر را ترکیب میکنیم، پرانتز خوانایی و منطق شرط را واضحتر میکند.
مثلاً:
با:
یک معنی ندارند.
پس اگر منطق شرط پیچیده شد، از
🧠 خلاصه
🎯 تمرین
خروجی هر خط را قبل از اجرا حدس بزن:
پست ۴۰ از دوره جامع Python 🐍
ترکیب
not با and و orدر پستهای قبل با
and، or و not آشنا شدیم.حالا میتوانیم این عملگرها را با هم ترکیب کنیم.
🔹 ترکیب
not و andage = 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 و orusername = "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
🐍 آموزش جامع Python — پست ۴۱
قوانین دمورگان | سادهسازی شرطها
گاهی میتوانیم یک شرط پیچیده را به شکل دیگری بنویسیم، بدون اینکه نتیجه منطقی آن تغییر کند.
این قوانین را قوانین دمورگان (De Morgan's Laws) مینامیم.
🔹 قانون اول
معادل منطقی آن:
مثال:
هر دو خروجی:
🔹 قانون دوم
معادل منطقی آن:
مثال:
هر دو خروجی:
🧠 نکته مهم
وقتی
همینطور:
تبدیل میشود به:
⚠️ اشتباه رایج
این دو معادل نیستند:
عملگر وسط باید از
🎯 تمرین
عبارت معادل هرکدام را بنویس:
پست ۴۱ از دوره جامع Python 🐍
قوانین دمورگان | سادهسازی شرطها
گاهی میتوانیم یک شرط پیچیده را به شکل دیگری بنویسیم، بدون اینکه نتیجه منطقی آن تغییر کند.
این قوانین را قوانین دمورگان (De Morgan's Laws) مینامیم.
🔹 قانون اول
not (A and B)
معادل منطقی آن:
(not A) or (not B)
مثال:
A = True
B = False
print(not (A and B))
print((not A) or (not B))
هر دو خروجی:
True
🔹 قانون دوم
not (A or B)
معادل منطقی آن:
(not A) and (not B)
مثال:
A = False
B = False
print(not (A or B))
print((not A) and (not B))
هر دو خروجی:
True
🧠 نکته مهم
وقتی
not وارد پرانتز میشود:not (A and B)
and به or تبدیل میشود و هر شرط هم not میگیرد:(not A) or (not B)
همینطور:
not (A or B)
تبدیل میشود به:
(not A) and (not B)
⚠️ اشتباه رایج
این دو معادل نیستند:
not (A and B)
(not A) and (not B)
عملگر وسط باید از
and به or تغییر کند.🎯 تمرین
عبارت معادل هرکدام را بنویس:
not (A and B)
not (A or B)
پست ۴۱ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۴۲
منطق برگشت مقدار در
در Python،
🔹 رفتار
در:
Python ابتدا
اگر
اگر
مثال:
خروجی:
چون
اما:
خروجی:
چون
🔹 رفتار
در:
Python ابتدا
اگر
اگر
مثال:
خروجی:
اما:
خروجی:
🧠 قانون اصلی
یعنی
🔥 مثال کاربردی
میتوانیم یک مقدار پیشفرض تعیین کنیم:
چون
اگر:
خروجی:
⚠️ نکته مهم: Short-Circuit
Python در
مثلاً:
اینجا خطای تقسیم بر صفر نمیگیریم؛ چون
در
🎯 تمرین
خروجی هر خط را قبل از اجرا حدس بزن:
پست ۴۲ از دوره جامع Python 🐍
منطق برگشت مقدار در
and و orدر Python،
and و or همیشه True یا False برنمیگردانند؛ ممکن است خودِ یکی از مقادیر را برگردانند.🔹 رفتار
andدر:
A and B
Python ابتدا
A را بررسی میکند.اگر
A مقدار Falsy باشد، همان A را برمیگرداند و B را بررسی نمیکند.اگر
A مقدار Truthy باشد، B را برمیگرداند.مثال:
print("" and "Python")خروجی:
""
چون
"" خالی است و Falsy محسوب میشود.اما:
print("Hello" and "Python")خروجی:
Python
چون
"Hello" Truthy است، بنابراین مقدار دوم برگردانده میشود.🔹 رفتار
orدر:
A or B
Python ابتدا
A را بررسی میکند.اگر
A مقدار Truthy باشد، همان A را برمیگرداند و B را بررسی نمیکند.اگر
A مقدار Falsy باشد، B را برمیگرداند.مثال:
print("Hello" or "Python")خروجی:
Hello
اما:
print("" or "Python")خروجی:
Python
🧠 قانون اصلی
A and B
اگر A → Falsy باشد: A
اگر A → Truthy باشد: B
A or B
اگر A → Truthy باشد: A
اگر A → Falsy باشد: B
یعنی
and و or در واقع یکی از عملوندها (operands) را برمیگردانند.🔥 مثال کاربردی
میتوانیم یک مقدار پیشفرض تعیین کنیم:
name = ""
result = name or "Unknown"
print(result)
چون
name خالی و Falsy است:Unknown
اگر:
name = "Ali"
result = name or "Unknown"
print(result)
خروجی:
Ali
⚠️ نکته مهم: Short-Circuit
Python در
and و or همیشه عبارت دوم را اجرا نمیکند.مثلاً:
x = False
result = x and (10 / 0)
اینجا خطای تقسیم بر صفر نمیگیریم؛ چون
x از قبل Falsy است و Python دیگر عبارت دوم را بررسی نمیکند.در
or نیز اگر مقدار اول Truthy باشد، عبارت دوم بررسی نمیشود.🎯 تمرین
خروجی هر خط را قبل از اجرا حدس بزن:
print("" and "Python")
print("Python" and "Code")
print("" or "Python")
print("Python" or "Code")
print(0 or 100)
print(10 and 20)پست ۴۲ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۴۳
در Python بعضی مقدارها وقتی در یک شرط بررسی میشوند، مثل
به این دو حالت میگوییم:
🔹 مثال ساده
چون رشته
اما:
چیزی چاپ نمیشود؛ چون رشته خالی Falsy است.
🔹 مقدارهای مهم Falsy
این مقدارها در Python معمولاً Falsy هستند:
مثلاً:
خروجی:
🔹 مقدارهای Truthy
تقریباً هر مقدار دیگری Truthy است.
مثلاً:
هر سه شرط اجرا میشوند.
⚠️ نکته مهم درباره
این مقدار:
یک رشته غیرخالی است؛ بنابراین Truthy است.
خروجی:
اما:
خروجی:
پس:
🔹 ارتباط با
میتوانیم رفتار منطقی یک مقدار را با
خروجی:
🧠 خلاصه
این مفهوم دلیل رفتار بسیاری از شرطها و همچنین
🎯 تمرین
خروجی هر خط را حدس بزن:
پست ۴۳ از دوره جامع Python 🐍
Truthy و Falsy در Pythonدر Python بعضی مقدارها وقتی در یک شرط بررسی میشوند، مثل
True رفتار میکنند و بعضی مثل False.به این دو حالت میگوییم:
Truthy → در شرط مثل True رفتار میکند
Falsy → در شرط مثل False رفتار میکند
🔹 مثال ساده
if "Python":
print("True")
چون رشته
"Python" خالی نیست، Truthy است.اما:
if "":
print("True")
چیزی چاپ نمیشود؛ چون رشته خالی Falsy است.
🔹 مقدارهای مهم Falsy
این مقدارها در Python معمولاً Falsy هستند:
False
None
0
0.0
""
[]
()
{}
set()
مثلاً:
if 0:
print("Yes")
else:
print("No")
خروجی:
No
🔹 مقدارهای Truthy
تقریباً هر مقدار دیگری Truthy است.
مثلاً:
if 10:
print("Yes")
if -5:
print("Negative")
if "Hello":
print("Text")
هر سه شرط اجرا میشوند.
⚠️ نکته مهم درباره
"0"این مقدار:
"0"
یک رشته غیرخالی است؛ بنابراین Truthy است.
if "0":
print("Yes")
خروجی:
Yes
اما:
if 0:
print("Yes")
else:
print("No")
خروجی:
No
پس:
0 → Falsy
"0" → Truthy
🔹 ارتباط با
bool()میتوانیم رفتار منطقی یک مقدار را با
bool() ببینیم:print(bool(0))
print(bool(10))
print(bool(""))
print(bool("Python"))
print(bool([]))
print(bool([1, 2]))
خروجی:
False
True
False
True
False
True
🧠 خلاصه
Falsy:
False, None, 0, 0.0, "", [], (), {}, set()
Truthy:
تقریباً تمام مقدارهای دیگر
این مفهوم دلیل رفتار بسیاری از شرطها و همچنین
and و or در Python است.🎯 تمرین
خروجی هر خط را حدس بزن:
print(bool(0))
print(bool(1))
print(bool(""))
print(bool("0"))
print(bool([]))
print(bool([0]))
print(bool(None))
پست ۴۳ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۴۴
استفاده از
حالا که
🔹 بررسی مستقیم مقدار
لازم نیست همیشه بنویسیم:
میتوانیم سادهتر بنویسیم:
چون
🔹 رشته خالی
خروجی:
چون
🔹 لیست خالی
خروجی:
اما:
خروجی:
لیست خالی
🔹 عدد صفر
خروجی:
چون
⚠️ نکته مهم
Truthy/Falsy به این معنی نیست که مقدار واقعاً
مثلاً:
خروجی:
خود
🧠 خلاصه
این روش در Python بسیار رایج است و کد را کوتاهتر و خواناتر میکند.
🎯 تمرین
خروجی را حدس بزن:
پست ۴۴ از دوره جامع Python 🐍
استفاده از
Truthy و Falsy در شرطهاحالا که
Truthy و Falsy را میشناسیم، ببینیم چطور در if استفاده میشوند.🔹 بررسی مستقیم مقدار
لازم نیست همیشه بنویسیم:
if name != "":
میتوانیم سادهتر بنویسیم:
name = "Ali"
if name:
print("Name exists")
چون
"Ali" غیرخالی است، Truthy است.🔹 رشته خالی
name = ""
if name:
print("Name exists")
else:
print("Name is empty")
خروجی:
Name is empty
چون
"" Falsy است.🔹 لیست خالی
users = []
if users:
print("Users found")
else:
print("No users")
خروجی:
No users
اما:
users = ["Ali", "Sara"]
if users:
print("Users found")
خروجی:
Users found
لیست خالی
[] Falsy و لیست دارای عضو Truthy است.🔹 عدد صفر
score = 0
if score:
print("Score exists")
else:
print("Score is zero")
خروجی:
Score is zero
چون
0 Falsy است.⚠️ نکته مهم
Truthy/Falsy به این معنی نیست که مقدار واقعاً
True یا False است.مثلاً:
x = 10
print(x)
print(bool(x))
خروجی:
10
True
خود
x برابر 10 است، اما وقتی در یک شرط بررسی شود، مثل True رفتار میکند.🧠 خلاصه
if مقدار:
# اگر مقدار Truthy باشد
else:
# اگر مقدار Falsy باشد
این روش در Python بسیار رایج است و کد را کوتاهتر و خواناتر میکند.
🎯 تمرین
خروجی را حدس بزن:
values = ["", "Python", 0, 5, [], [1]]
for value in values:
if value:
print("Truthy")
else:
print("Falsy")
for را در فصل حلقهها کامل یاد میگیریم.پست ۴۴ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۴۵
تبدیل مقدارها به
در پستهای قبل با
برای اینکه ببینیم یک مقدار در شرط چگونه ارزیابی میشود، میتوانیم از
🔹 مثال
خروجی:
چون
🔹 رشتهها
خروجی:
رشته غیرخالی → Truthy
رشته خالی → Falsy
🔹 لیستها
خروجی:
لیست دارای عضو → Truthy
لیست خالی → Falsy
🔹
خروجی:
🔹 استفاده در شرط
میتوانیم نتیجه
خروجی:
چون
البته معمولاً نیازی به نوشتن
⚠️ نکته مهم
خروجی:
🧠 خلاصه
🎯 تمرین
خروجی را حدس بزن:
پست ۴۵ از دوره جامع Python 🐍
تبدیل مقدارها به
True و False با bool()در پستهای قبل با
Truthy و Falsy آشنا شدیم.برای اینکه ببینیم یک مقدار در شرط چگونه ارزیابی میشود، میتوانیم از
bool() استفاده کنیم.🔹 مثال
print(bool(10))
print(bool(0))
خروجی:
True
False
چون
10 Truthy و 0 Falsy است.🔹 رشتهها
print(bool("Python"))
print(bool(""))خروجی:
True
False
رشته غیرخالی → Truthy
رشته خالی → Falsy
🔹 لیستها
print(bool([1, 2]))
print(bool([]))
خروجی:
True
False
لیست دارای عضو → Truthy
لیست خالی → Falsy
🔹
Noneprint(bool(None))
خروجی:
False
None نیز Falsy است.🔹 استفاده در شرط
میتوانیم نتیجه
bool() را مستقیماً در if استفاده کنیم:name = "Ali"
if bool(name):
print("Name exists")
else:
print("Name is empty")
خروجی:
Name exists
چون
"Ali" یک رشته غیرخالی و در نتیجه Truthy است.البته معمولاً نیازی به نوشتن
bool() نداریم و این شکل رایجتر است:if name:
print("Name exists")
⚠️ نکته مهم
bool() مقدار اصلی را تغییر نمیدهد؛ فقط نتیجه ارزیابی منطقی آن را برمیگرداند.x = 25
print(x)
print(bool(x))
خروجی:
25
True
🧠 خلاصه
bool(0) → False
bool(10) → True
bool("") → False
bool("Hello") → True
bool([]) → False
bool([1]) → True
bool(None) → False
🎯 تمرین
خروجی را حدس بزن:
print(bool(-1))
print(bool(0.0))
print(bool("0"))
print(bool([]))
print(bool([0]))
print(bool(None))
پست ۴۵ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۴۶
ترکیب
حالا میتوانیم رفتار
🔹 با
خروجی:
چون
اگر:
خروجی:
چون
🔹 با
خروجی:
اما اگر:
خروجی:
چون
🔥 مثال کاربردی
اگر کاربر چیزی وارد نکند،
🧠 خلاصه
🎯 تمرین
خروجی را حدس بزن:
پست ۴۶ از دوره جامع Python 🐍
ترکیب
Truthy و Falsy با and و orحالا میتوانیم رفتار
Truthy و Falsy را با and و or ترکیب کنیم.🔹 با
andname = "Ali"
result = name and "User exists"
print(result)
خروجی:
User exists
چون
name غیرخالی و Truthy است، مقدار سمت راست برگردانده میشود.اگر:
name = ""
result = name and "User exists"
print(result)
خروجی:
چون
name خالی و Falsy است، همان مقدار خالی برگردانده میشود.🔹 با
oror معمولاً برای تعیین مقدار پیشفرض کاربرد دارد:name = ""
result = name or "Unknown"
print(result)
خروجی:
Unknown
اما اگر:
name = "Ali"
result = name or "Unknown"
print(result)
خروجی:
Ali
چون
"Ali" Truthy است.🔥 مثال کاربردی
username = input("Username: ")
if username:
print("Username entered")
else:
print("Username is empty")اگر کاربر چیزی وارد نکند،
input() رشتهی خالی "" برمیگرداند و شرط Falsy میشود.🧠 خلاصه
and → اگر مقدار اول Falsy باشد، همان را برمیگرداند.
or → اگر مقدار اول Truthy باشد، همان را برمیگرداند.
🎯 تمرین
خروجی را حدس بزن:
print("" or "Python")
print("Hello" or "Python")
print("" and "Python")
print("Hello" and "Python")پست ۴۶ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۴۷
مقایسه
🔹
در
هر دو شرط درست هستند، پس کد اجرا میشود.
اگر یکی از شرطها
چیزی چاپ نمیشود.
🔹
در
چون یکی از شرطها True است، کد اجرا میشود.
فقط وقتی هر دو False باشند، شرط اجرا نمیشود:
🧠 مقایسه سریع
همه شرطها True
حداقل یک شرط True
🔥 مثال واقعی
فرض کنید ورود فقط زمانی مجاز است که کاربر بالای ۱۸ سال باشد و کارت شناسایی داشته باشد:
اما اگر ورود با کارت مخصوص یا رمز عبور امکانپذیر باشد:
⚠️ نکته
مثلاً:
هر دو مقدار Truthy هستند، پس شرط اجرا میشود.
🎯 تمرین
خروجی را حدس بزن:
پست ۴۷ از دوره جامع Python 🐍
مقایسه
and و or در شرطهاand و or هر دو برای ترکیب شرطها استفاده میشوند، اما رفتار متفاوتی دارند.🔹
andدر
and همه شرطها باید True باشند:age = 20
has_id = True
if age >= 18 and has_id:
print("Access granted")
هر دو شرط درست هستند، پس کد اجرا میشود.
اگر یکی از شرطها
False باشد:age = 20
has_id = False
if age >= 18 and has_id:
print("Access granted")
چیزی چاپ نمیشود.
and → همه شرطها باید True باشند
🔹
orدر
or کافی است حداقل یکی از شرطها True باشد:is_admin = False
is_manager = True
if is_admin or is_manager:
print("Access granted")
چون یکی از شرطها True است، کد اجرا میشود.
فقط وقتی هر دو False باشند، شرط اجرا نمیشود:
or → حداقل یکی از شرطها باید True باشد
🧠 مقایسه سریع
andorهمه شرطها True
حداقل یک شرط True
True and True → TrueTrue or False → TrueTrue and False → FalseFalse or False → False🔥 مثال واقعی
فرض کنید ورود فقط زمانی مجاز است که کاربر بالای ۱۸ سال باشد و کارت شناسایی داشته باشد:
if age >= 18 and has_id:
print("Allowed")
اما اگر ورود با کارت مخصوص یا رمز عبور امکانپذیر باشد:
if has_special_card or has_password:
print("Allowed")
⚠️ نکته
and و or در شرطها بر اساس Truthy/Falsy هم عمل میکنند؛ یعنی شرط الزاماً نباید نتیجهی صریح True یا False داشته باشد.مثلاً:
name = "Ali"
if name and "Python":
print("OK")
هر دو مقدار Truthy هستند، پس شرط اجرا میشود.
🎯 تمرین
خروجی را حدس بزن:
a = True
b = False
if a and b:
print("A")
if a or b:
print("B")
پست ۴۷ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۴۸
توقف کوتاهمدت |
در Python، هنگام استفاده از
Python از Short-Circuit Evaluation استفاده میکند.
🔹 در
اگر مقدار اول Falsy باشد، Python دیگر سمت راست را بررسی نمیکند.
خروجی:
با اینکه
🔹 در
اگر مقدار اول Truthy باشد، Python سمت راست را بررسی نمیکند.
خروجی:
عبارت
🔥 مثال کاربردی
اگر
🧠 قانون ساده
این رفتار هم باعث جلوگیری از اجرای غیرضروری کد میشود و هم در بعضی شرایط از خطا جلوگیری میکند.
🎯 تمرین
کدام عبارت اجرا میشود؟
پست ۴۸ از دوره جامع Python 🐍
توقف کوتاهمدت |
Short-Circuitدر Python، هنگام استفاده از
and و or، همیشه همه عبارتها بررسی نمیشوند.Python از Short-Circuit Evaluation استفاده میکند.
🔹 در
andاگر مقدار اول Falsy باشد، Python دیگر سمت راست را بررسی نمیکند.
x = False
result = x and (10 / 0)
print(result)
خروجی:
False
با اینکه
10 / 0 خطاست، خطایی رخ نمیدهد؛ چون Python قبل از رسیدن به آن متوقف شده است.🔹 در
orاگر مقدار اول Truthy باشد، Python سمت راست را بررسی نمیکند.
name = "Ali"
result = name or (10 / 0)
print(result)
خروجی:
Ali
عبارت
(10 / 0) اصلاً اجرا نمیشود.🔥 مثال کاربردی
username = ""
if username and username.startswith("admin"):
print("Admin user")
اگر
username خالی باشد، شرط اول Falsy است؛ بنابراین Python سراغ startswith() نمیرود.🧠 قانون ساده
A and B
اگر A → Falsy
B بررسی نمیشود.
A or B
اگر A → Truthy
B بررسی نمیشود.
این رفتار هم باعث جلوگیری از اجرای غیرضروری کد میشود و هم در بعضی شرایط از خطا جلوگیری میکند.
🎯 تمرین
کدام عبارت اجرا میشود؟
x = ""
print(x and "Python")
print(x or "Python")
پست ۴۸ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۴۹
الگوهای کاربردی شرطی با
حالا که رفتار
🔹 مقدار پیشفرض با
اگر مقدار وجود نداشته باشد، مقدار جایگزین استفاده میشود:
خروجی:
اگر
خروجی:
🔹 اجرای شرط دوم با
چون
اما:
چیزی چاپ نمیشود؛ چون
⚠️ نکته
این روش برای کدهای کوتاه قابل استفاده است، اما برای منطق پیچیده معمولاً
مثلاً:
خواناتر از:
است.
🧠 خلاصه
🎯 تمرین
خروجی را حدس بزن:
پست ۴۹ از دوره جامع Python 🐍
الگوهای کاربردی شرطی با
and و orحالا که رفتار
and و or را میدانیم، چند الگوی رایج و کاربردی را ببینیم.🔹 مقدار پیشفرض با
orاگر مقدار وجود نداشته باشد، مقدار جایگزین استفاده میشود:
name = ""
display_name = name or "Guest"
print(display_name)
خروجی:
Guest
اگر
name مقدار داشته باشد:name = "Ali"
display_name = name or "Guest"
print(display_name)
خروجی:
Ali
🔹 اجرای شرط دوم با
andis_logged_in = True
is_logged_in and print("Welcome")
چون
is_logged_in مقدار Truthy دارد، print() اجرا میشود.اما:
is_logged_in = False
is_logged_in and print("Welcome")
چیزی چاپ نمیشود؛ چون
and در مقدار Falsy متوقف میشود.⚠️ نکته
این روش برای کدهای کوتاه قابل استفاده است، اما برای منطق پیچیده معمولاً
if خواناتر است.مثلاً:
if is_logged_in:
print("Welcome")
خواناتر از:
is_logged_in and print("Welcome")است.
🧠 خلاصه
or → انتخاب یک مقدار جایگزین
and → اجرای عبارت بعدی در صورت Truthy بودن مقدار قبلی
🎯 تمرین
خروجی را حدس بزن:
name = ""
age = 20
print(name or "Unknown")
print(age and "Adult")
print(0 and "Zero")
پست ۴۹ از دوره جامع Python 🐍