🟢 ۵۰ چرای پایتون با مثال
---
1. چرا پایتون از پرانتز () در توابع استفاده میکند؟
چون باید مشخص شود کدام مقدار ورودی به تابع داده شود و تابع اجرا شود.
def greet():
print("Hello")
greet()
✅ خروجی: Hello
---
2. چرا پایتون از تورفتگی برای بلاکهای کد استفاده میکند؟
چون به جای {} ساختار کد را مشخص میکند و کد خواناتر میشود.
if True:
print("Indented code")
✅ خروجی: Indented code
---
3. چرا متغیرها بدون اعلام نوع هستند؟
چون پایتون Dynamic Typing دارد و نوع داده هنگام اجرا مشخص میشود.
x = 5
x = "Hello"
print(x)
✅ خروجی: Hello
---
4. چرا پایتون Case Sensitive است؟
چون Age و age دو متغیر متفاوت هستند و این دقت خطا را کاهش میدهد.
age = 10
Age = 20
print(age, Age)
✅ خروجی: 10 20
---
5. چرا توابع با def تعریف میشوند؟
برای مشخص کردن شروع بلوک تابع.
def add(a,b):
return a+b
print(add(2,3))
✅ خروجی: 5
---
6. چرا return در توابع استفاده میشود؟
برای برگرداندن نتیجه به کد فراخواننده.
def square(x):
return x*x
print(square(4))
✅ خروجی: 16
---
7. چرا لیستها mutable هستند؟
چون میتوان عناصر را بعد از تعریف تغییر داد.
fruits = ["apple", "banana"]
fruits.append("cherry")
print(fruits)
✅ خروجی: ['apple', 'banana', 'cherry']
---
8. چرا تاپلها immutable هستند؟
برای دادههای ثابت و بهینهسازی حافظه.
colors = ("red", "green")
print(colors[0])
✅ خروجی: red
---
9. چرا رشتهها immutable هستند؟
برای امنیت و بهینهسازی حافظه.
text = "Hello"
print(text.upper())
✅ خروجی: HELLO
---
10. چرا None وجود دارد؟
برای نشان دادن «هیچ مقدار».
x = None
print(x)
✅ خروجی: None
---
11. چرا شرط if استفاده میشود؟
برای تصمیمگیری بر اساس دادهها.
age = 18
if age >= 18:
print("Adult")
✅ خروجی: Adult
---
12. چرا if-else داریم؟
برای حالت جایگزین وقتی شرط برقرار نباشد.
age = 15
if age >= 18:
print("Adult")
else:
print("Minor")
✅ خروجی: Minor
---
13. چرا if-elif-else داریم؟
برای چند حالت مختلف بدون چند if جداگانه.
score = 75
if score >= 90:
print("Excellent")
elif score >= 60:
print("Pass")
else:
print("Fail")
✅ خروجی: Pass
---
14. چرا for نیاز به iterable دارد؟
چون باید مجموعهای را تکرار کند.
for i in [1,2,3]:
print(i)
✅ خروجی:
1
2
3
---
15. چرا range() در for استفاده میشود؟
برای تولید اعداد متوالی به عنوان شمارنده حلقه.
for i in range(3):
print(i)
✅ خروجی:
0
1
2
---
16. چرا while ممکن است بینهایت شود؟
چون شرط حلقه بدون تغییر باقی بماند.
# توجه: این مثال بینهایت نیست
n = 1
while n <= 3:
print(n)
n += 1
✅ خروجی:
1
2
3
---
17. چرا break وجود دارد؟
برای خروج فوری از حلقه.
for i in range(5):
if i == 3:
break
print(i)
✅ خروجی:
0
1
2
---
18. چرا continue داریم؟
برای پرش به تکرار بعدی حلقه.
for i in range(5):
if i == 2:
continue
print(i)
✅ خروجی:
0
1
3
4
---
19. چرا pass وجود دارد؟
برای بلوک خالی بدون خطا.
if True:
pass
print("Done")
✅ خروجی: Done
---
20. چرا توابع میتوانند پارامتر داشته باشند؟
برای ورودی متغیر و تولید خروجی متفاوت.
def square(x):
return x*x
print(square(5))
✅ خروجی: 25
---
21. چرا آرگومان لازم است؟
برای ارسال داده به تابع.
def add(a,b):
return a+b
print(add(2,3))
✅ خروجی: 5
---
22. چرا پارامتر پیشفرض داریم؟
برای اجرای تابع حتی بدون ورودی.
def greet(name="User"):
print("Hello", name)
greet()
✅ خروجی: Hello User
---
23. چرا متغیر محلی محدود به تابع است؟
چون فقط داخل همان بلوک دیده میشود.
def test():
x = 10
print(x)
test()
✅ خروجی: 10
---
24. چرا متغیر سراسری قابل استفاده است؟
چون خارج از توابع تعریف شده است.
x = 5
def show():
print(x)
show()
✅ خروجی: 5
---
25. چرا lambda کوتاه است؟
برای توابع یک خطی سریع.
square = lambda x: x*x
print(square(4))
✅ خروجی: 16
---
26. چرا Exception وجود دارد؟
برای مدیریت خطاها بدون توقف برنامه.
27. چرا try-except داریم؟
try:
print(10/0)
except:
print("Error")
✅ خروجی: Error
---
28. چرا finally وجود دارد؟
برای اجرای کد همیشه.
try:
print(1/0)
except:
print("Error")
finally:
print("Done")
✅ خروجی:
Error
Done
---
29. چرا raise وجود دارد؟
برای ایجاد خطا دستی.
# raise ValueError("Invalid")
✅ خروجی: خطای ValueError
---
30. چرا کتابخانهها (Library)؟
برای استفاده از کد آماده و سریع.
31. چرا import؟
import math
print(math.sqrt(16))
✅ خروجی: 4.0
---
32. چرا کلاسها؟
برای برنامهنویسی شیگرا و سازماندهی کد.
33. چرا اشیاء ساخته میشوند؟
برای نمونهسازی و نگهداری دادهها.
class Person:
pass
p = Person()
print(type(p))
✅ خروجی: <class '__main__.Person'>
---
34. چرا متد داخل کلاس؟
برای رفتار اشیاء.
35. چرا init؟
برای مقداردهی اولیه.
class Person:
def init(self, name):
self.name = name
p = Person("Ali")
print(p.name)
✅ خروجی: Ali
---
36. چرا کامنت؟
برای توضیح کد به انسان.
# این یک کامنت است
print("Hi")
✅ خروجی: Hi
---
37. چرا Indentation مهم است؟
برای مشخص کردن بلاک کد.
38. چرا PEP 8؟
برای استاندارد و خوانایی کد.
39. چرا لیست چند نوع داده دارد؟
برای انعطاف در ذخیره دادهها.
x = [1, "Hi", 3.5]
print(x)
✅ خروجی: [1, 'Hi', 3.5]
---
40. چرا رشتهها با + و * ترکیب یا تکرار میشوند؟
برای راحتی کار با متن.
print("Hi " + "Ali")
print("Hi " * 3)
✅ خروجی:
Hi Ali
Hi Hi Hi
---
41. چرا mutable و immutable داریم؟
برای مدیریت حافظه و امنیت دادهها.
42. چرا set بدون ترتیب و تکرار است؟
برای دادههای منحصر به فرد و جستجوی سریع.
s = {1,2,2,3}
print(s)
✅ خروجی: {1,2,3}
---
43. چرا دیکشنری با کلید-مقدار کار میکند؟
برای دسترسی سریع با کلید.
d = {"name":"Ali"}
print(d["name"])
✅ خروجی: Ali
---
44. چرا تابع میتواند بدون return باشد؟
برای توابعی که فقط عمل انجام میدهند.
def greet():
print("Hi")
greet()
✅ خروجی: Hi
---
45. چرا input همیشه رشته است؟
چون ورودی کاربر متن است.
x = input("Enter: ")
print(x)
---
46. چرا تبدیل نوع لازم است؟
برای جلوگیری از خطا در محاسبات.
x = "5"
print(int(x)+3)
✅ خروجی: 8
---
47. چرا while ممکن است بینهایت شود؟
چون شرط تغییر نکند.
48. چرا print چند مقدار را با فاصله چاپ میکند؟
برای خوانایی خروجی.
print(1,2,3)
✅ خروجی: 1 2 3
---
49. چرا open فایل حالتهای مختلف دارد (r,w,a)?
برای مشخص کردن خواندن، نوشتن یا اضافه کردن.
50. چرا پایتون مبتدیپسند است؟
چون سینتکس ساده، نزدیک به زبان انسان و مدیریت حافظه راحت دارد.