اصطلاحات پایه و مفاهیم اصلی
1. IDE (Integrated Development Environment): محیط توسعه یکپارچه برای نوشتن، تست و مدیریت کد.
مثال: PyCharm, VS Code
2. Library: مجموعهای از توابع و کلاسها که میتوان دوباره استفاده کرد.
مثال: import numpy as np
3. Framework: ساختار و ابزار آماده برای توسعه سریع برنامه.
مثال: import django
4. Interpreter: برنامهای که کد را خط به خط اجرا میکند.
مثال: Python Interpreter
5. Variable: نامی برای نگهداری دادهها در برنامه.
مثال: x = 10
6. Constant: مقداری که در طول برنامه تغییر نمیکند.
مثال: PI = 3.14
7. Data Type: نوع دادهها در برنامه (عدد، متن، بولین و غیره).
مثال: int, float, str
8. Function: مجموعهای از دستورات برای انجام کاری مشخص.
مثال: def add(a, b): return a + b
9. Parameter: مقداری که به تابع داده میشود.
مثال: a و b در تابع add(a,b)
10. Return Value: مقداری که تابع برمیگرداند.
مثال: return a+b
11. Loop: ساختار تکرار در برنامه.
مثال: for i in range(5): print(i)
12. While Loop: حلقهای که تا برقرار بودن شرط ادامه دارد.
مثال: while x > 0: x -= 1
13. Conditional Statement: دستور شرطی برای تصمیمگیری در برنامه.
مثال: if x > 0: print("Positive")
14. Boolean: نوع داده درست/نادرست.
مثال: True, False
15. Operator: نماد یا عملکردی که روی دادهها عمل میکند.
مثال: +, -, *, /
16. Arithmetic Operator: عملگرهای ریاضی.
مثال: 3 + 2
17. Comparison Operator: عملگرهای مقایسهای.
مثال: x == y, x > y
18. Logical Operator: عملگرهای منطقی.
مثال: x and y, x or y, not x
19. Array / List: مجموعهای از دادهها با اندیس.
مثال: numbers = [1, 2, 3]
20. Tuple: مجموعه داده غیرقابل تغییر.
مثال: coords = (10, 20)
21. Dictionary: مجموعه کلید-مقدار.
مثال: person = {"name": "Ali", "age": 25}
22. Set: مجموعه بدون تکرار.
مثال: s = {1, 2, 3}
23. Object: نمونهای از کلاس که داده و رفتار را نگه میدارد.
مثال:
class Dog: pass
d = Dog()
24. Class: قالب ساخت شیء در برنامهنویسی شیءگرا.
مثال: class Dog: pass
25. Inheritance: ارثبری کلاسها برای استفاده مجدد کد.
مثال:
class Puppy(Dog): pass
26. Encapsulation: مخفی کردن دادهها و ارائه دسترسی کنترلشده.
27. Polymorphism: توانایی اشیاء مختلف برای پاسخ به یک تابع یکسان.
28. Recursion: وقتی یک تابع خودش را فراخوانی میکند.
مثال:
def factorial(n):
return 1 if n==0 else n*factorial(n-1)
29. Lambda Function: تابع کوتاه یک خطی.
مثال: f = lambda x: x+1
30. Map: اعمال یک تابع روی تمام عناصر لیست.
مثال: list(map(lambda x: x*2, [1,2,3]))
31. Filter: انتخاب عناصر لیست با شرط خاص.
مثال: list(filter(lambda x: x>1, [0,1,2,3]))
32. List Comprehension: ساخت سریع لیست جدید از لیست موجود.
مثال: [x*2 for x in range(5)]
33. Exception: رویدادی که برنامه را متوقف میکند و باید مدیریت شود.
مثال: ZeroDivisionError
34. Try/Except: مدیریت خطاها در برنامه.
مثال:
try:
x = 1/0
except ZeroDivisionError:
print("Division by zero")
35. Debugging: پیدا کردن و رفع خطاهای برنامه.
36. Log: ثبت اتفاقات برنامه برای بررسی و تحلیل.
---
ساختار دادهها و الگوریتمها
37. Stack: ساختار داده LIFO (Last In First Out).
38. Queue: ساختار داده FIFO (First In First Out).
39. Linked List: مجموعه داده با اتصال عناصر به هم با اشارهگر.
40. Hash Table / Dictionary: ذخیره سریع داده با کلید.
41. Tree: ساختار داده شاخهای برای دادههای سلسلهمراتبی.
42. Binary Tree: درخت با حداکثر دو فرزند برای هر گره.
43. Graph: مجموعه گرهها و یالها برای نمایش شبکهها.
44. Algorithm: مجموعه مراحل حل یک مسئله.
مثال: MergeSort, Dijkstra
45. Sorting Algorithm: مرتبسازی دادهها.
مثال:
sorted([3,1,2])
46. Searching Algorithm: جستجوی دادهها در ساختار داده.
47. Binary Search: جستجوی سریع در لیست مرتب شده.
مثال:
import bisect
bisect.bisect_left([1,2,3,4],3)
48. Linear Search: جستجوی ساده خطی در لیست.
مثال:
lst = [4,5,6]
5 in lst
---
ابزارها و مفاهیم پیشرفته
49. Git: سیستم کنترل نسخه برای مدیریت تغییرات کد.
50. Branch: شاخهای مستقل از کد در Git.
51. Merge: ترکیب تغییرات شاخهها.
52. Pull / Push: دریافت و ارسال تغییرات در Git.
53. Multithreading: اجرای همزمان چند بخش از برنامه.
مثال: import threading
54. Concurrency: مدیریت همزمان چند پردازش یا کار.
55. Decorator: تابعی که رفتار تابع دیگر را تغییر میدهد.
مثال:
1. IDE (Integrated Development Environment): محیط توسعه یکپارچه برای نوشتن، تست و مدیریت کد.
مثال: PyCharm, VS Code
2. Library: مجموعهای از توابع و کلاسها که میتوان دوباره استفاده کرد.
مثال: import numpy as np
3. Framework: ساختار و ابزار آماده برای توسعه سریع برنامه.
مثال: import django
4. Interpreter: برنامهای که کد را خط به خط اجرا میکند.
مثال: Python Interpreter
5. Variable: نامی برای نگهداری دادهها در برنامه.
مثال: x = 10
6. Constant: مقداری که در طول برنامه تغییر نمیکند.
مثال: PI = 3.14
7. Data Type: نوع دادهها در برنامه (عدد، متن، بولین و غیره).
مثال: int, float, str
8. Function: مجموعهای از دستورات برای انجام کاری مشخص.
مثال: def add(a, b): return a + b
9. Parameter: مقداری که به تابع داده میشود.
مثال: a و b در تابع add(a,b)
10. Return Value: مقداری که تابع برمیگرداند.
مثال: return a+b
11. Loop: ساختار تکرار در برنامه.
مثال: for i in range(5): print(i)
12. While Loop: حلقهای که تا برقرار بودن شرط ادامه دارد.
مثال: while x > 0: x -= 1
13. Conditional Statement: دستور شرطی برای تصمیمگیری در برنامه.
مثال: if x > 0: print("Positive")
14. Boolean: نوع داده درست/نادرست.
مثال: True, False
15. Operator: نماد یا عملکردی که روی دادهها عمل میکند.
مثال: +, -, *, /
16. Arithmetic Operator: عملگرهای ریاضی.
مثال: 3 + 2
17. Comparison Operator: عملگرهای مقایسهای.
مثال: x == y, x > y
18. Logical Operator: عملگرهای منطقی.
مثال: x and y, x or y, not x
19. Array / List: مجموعهای از دادهها با اندیس.
مثال: numbers = [1, 2, 3]
20. Tuple: مجموعه داده غیرقابل تغییر.
مثال: coords = (10, 20)
21. Dictionary: مجموعه کلید-مقدار.
مثال: person = {"name": "Ali", "age": 25}
22. Set: مجموعه بدون تکرار.
مثال: s = {1, 2, 3}
23. Object: نمونهای از کلاس که داده و رفتار را نگه میدارد.
مثال:
class Dog: pass
d = Dog()
24. Class: قالب ساخت شیء در برنامهنویسی شیءگرا.
مثال: class Dog: pass
25. Inheritance: ارثبری کلاسها برای استفاده مجدد کد.
مثال:
class Puppy(Dog): pass
26. Encapsulation: مخفی کردن دادهها و ارائه دسترسی کنترلشده.
27. Polymorphism: توانایی اشیاء مختلف برای پاسخ به یک تابع یکسان.
28. Recursion: وقتی یک تابع خودش را فراخوانی میکند.
مثال:
def factorial(n):
return 1 if n==0 else n*factorial(n-1)
29. Lambda Function: تابع کوتاه یک خطی.
مثال: f = lambda x: x+1
30. Map: اعمال یک تابع روی تمام عناصر لیست.
مثال: list(map(lambda x: x*2, [1,2,3]))
31. Filter: انتخاب عناصر لیست با شرط خاص.
مثال: list(filter(lambda x: x>1, [0,1,2,3]))
32. List Comprehension: ساخت سریع لیست جدید از لیست موجود.
مثال: [x*2 for x in range(5)]
33. Exception: رویدادی که برنامه را متوقف میکند و باید مدیریت شود.
مثال: ZeroDivisionError
34. Try/Except: مدیریت خطاها در برنامه.
مثال:
try:
x = 1/0
except ZeroDivisionError:
print("Division by zero")
35. Debugging: پیدا کردن و رفع خطاهای برنامه.
36. Log: ثبت اتفاقات برنامه برای بررسی و تحلیل.
---
ساختار دادهها و الگوریتمها
37. Stack: ساختار داده LIFO (Last In First Out).
38. Queue: ساختار داده FIFO (First In First Out).
39. Linked List: مجموعه داده با اتصال عناصر به هم با اشارهگر.
40. Hash Table / Dictionary: ذخیره سریع داده با کلید.
41. Tree: ساختار داده شاخهای برای دادههای سلسلهمراتبی.
42. Binary Tree: درخت با حداکثر دو فرزند برای هر گره.
43. Graph: مجموعه گرهها و یالها برای نمایش شبکهها.
44. Algorithm: مجموعه مراحل حل یک مسئله.
مثال: MergeSort, Dijkstra
45. Sorting Algorithm: مرتبسازی دادهها.
مثال:
sorted([3,1,2])
46. Searching Algorithm: جستجوی دادهها در ساختار داده.
47. Binary Search: جستجوی سریع در لیست مرتب شده.
مثال:
import bisect
bisect.bisect_left([1,2,3,4],3)
48. Linear Search: جستجوی ساده خطی در لیست.
مثال:
lst = [4,5,6]
5 in lst
---
ابزارها و مفاهیم پیشرفته
49. Git: سیستم کنترل نسخه برای مدیریت تغییرات کد.
50. Branch: شاخهای مستقل از کد در Git.
51. Merge: ترکیب تغییرات شاخهها.
52. Pull / Push: دریافت و ارسال تغییرات در Git.
53. Multithreading: اجرای همزمان چند بخش از برنامه.
مثال: import threading
54. Concurrency: مدیریت همزمان چند پردازش یا کار.
55. Decorator: تابعی که رفتار تابع دیگر را تغییر میدهد.
مثال:
def decorator(f):
def wrapper():
print("Before")
f()
print("After")
return wrapper
56. Generator: تولید عناصر یک به یک به جای ذخیره همه در حافظه.
مثال:
def gen():
for i in range(5):
yield i
57. Iterator: شیئی که میتوان روی آن حلقه زد.
مثال:
for x in [1,2,3]: print(x)
58. Context Manager / With Statement: مدیریت منابع مثل فایل به صورت امن.
مثال:
with open("file.txt") as f:
data = f.read()
59. Module: فایل پایتون حاوی توابع و کلاسها.
مثال: import math
60. Package: مجموعهای از ماژولها.
مثال: import numpy
61. Regular Expression: الگو برای جستجو در متن.
مثال:
import re
re.findall(r'\d+', '123 abc 456')
62. Virtual Environment: محیط ایزوله برای پروژههای Python.
63. Unit Test: تست کوچک برای بررسی عملکرد بخشهای برنامه.
64. Assertion: بررسی شرط و متوقف کردن برنامه در صورت نادرست بودن.
مثال: assert x > 0
65. Serialization / Pickle: ذخیره و بارگذاری دادهها.
مثال:
import pickle
pickle.dump(obj, open("file.pkl","wb"))
66. JSON: فرمت داده متنی برای تبادل اطلاعات.
مثال:
import json
json.dumps({"name":"Ali"})
67. Slicing: برش لیستها و رشتهها.
مثال: lst[1:5:2]
68. Argument / Keyword Argument: ارسال داده به توابع.
مثال: func(a=1, b=2)
69. Docstring: توضیحات توابع یا کلاسها.
مثال:
def f():
"""This function does nothing"""
pass
70. Mutable / Immutable: تغییرپذیری دادهها.
مثال: لیست mutable، tuple immutable
71. Comprehension: ساخت سریع لیست، دیکشنری یا ست.
مثال: [x*x for x in range(5)]
72. Set Operations: اجتماع، اشتراک، تفاضل.
مثال: {1,2} | {2,3}
73. Type Casting: تبدیل نوع دادهها.
مثال: int("10")
74. Input / Output: دریافت و نمایش داده.
مثال: x = input("Enter: ")
75. File Handling: خواندن و نوشتن فایلها.
مثال:
with open("file.txt","w") as f:
f.write("Hello")
76. Exception Chaining: مدیریت چند خطا در یک بلوک.
77. Docopt / Argparse: پردازش آرگومانهای خط فرمان.
78. Recursion Limit: محدودیت عمق فراخوانی توابع بازگشتی.
مثال: import sys; sys.setrecursionlimit(1000)
79. Garbage Collection: مدیریت خودکار حافظه در Python.
80. Monkey Patching: تغییر رفتار کد در زمان اجرا.
def wrapper():
print("Before")
f()
print("After")
return wrapper
56. Generator: تولید عناصر یک به یک به جای ذخیره همه در حافظه.
مثال:
def gen():
for i in range(5):
yield i
57. Iterator: شیئی که میتوان روی آن حلقه زد.
مثال:
for x in [1,2,3]: print(x)
58. Context Manager / With Statement: مدیریت منابع مثل فایل به صورت امن.
مثال:
with open("file.txt") as f:
data = f.read()
59. Module: فایل پایتون حاوی توابع و کلاسها.
مثال: import math
60. Package: مجموعهای از ماژولها.
مثال: import numpy
61. Regular Expression: الگو برای جستجو در متن.
مثال:
import re
re.findall(r'\d+', '123 abc 456')
62. Virtual Environment: محیط ایزوله برای پروژههای Python.
63. Unit Test: تست کوچک برای بررسی عملکرد بخشهای برنامه.
64. Assertion: بررسی شرط و متوقف کردن برنامه در صورت نادرست بودن.
مثال: assert x > 0
65. Serialization / Pickle: ذخیره و بارگذاری دادهها.
مثال:
import pickle
pickle.dump(obj, open("file.pkl","wb"))
66. JSON: فرمت داده متنی برای تبادل اطلاعات.
مثال:
import json
json.dumps({"name":"Ali"})
67. Slicing: برش لیستها و رشتهها.
مثال: lst[1:5:2]
68. Argument / Keyword Argument: ارسال داده به توابع.
مثال: func(a=1, b=2)
69. Docstring: توضیحات توابع یا کلاسها.
مثال:
def f():
"""This function does nothing"""
pass
70. Mutable / Immutable: تغییرپذیری دادهها.
مثال: لیست mutable، tuple immutable
71. Comprehension: ساخت سریع لیست، دیکشنری یا ست.
مثال: [x*x for x in range(5)]
72. Set Operations: اجتماع، اشتراک، تفاضل.
مثال: {1,2} | {2,3}
73. Type Casting: تبدیل نوع دادهها.
مثال: int("10")
74. Input / Output: دریافت و نمایش داده.
مثال: x = input("Enter: ")
75. File Handling: خواندن و نوشتن فایلها.
مثال:
with open("file.txt","w") as f:
f.write("Hello")
76. Exception Chaining: مدیریت چند خطا در یک بلوک.
77. Docopt / Argparse: پردازش آرگومانهای خط فرمان.
78. Recursion Limit: محدودیت عمق فراخوانی توابع بازگشتی.
مثال: import sys; sys.setrecursionlimit(1000)
79. Garbage Collection: مدیریت خودکار حافظه در Python.
80. Monkey Patching: تغییر رفتار کد در زمان اجرا.
This media is not supported in your browser
VIEW IN TELEGRAM
🌐 شبیهسازی ایجنت در محیط 8×8
✨ توضیح کوتاه
Agent (ایجنت): موجودی که تصمیم میگیرد (در اینجا با کلیدها کنترل شد).
Environment (محیط): شبکهی 8×8 شامل موانع و هدف.
State (وضعیت): مختصات ایجنت در جدول.
Actions (اعمال): حرکت به بالا، پایین، چپ و راست.
Reward (پاداش): رسیدن به هدف و پیروزی 🏆.
---
📌 اهمیت
این مدل ساده، پایهی بسیاری از بازیها، روباتیک و الگوریتمهای یادگیری تقویتی (Reinforcement Learning) است.
همانطور که ایجنت در این تمرین بهصورت دستی حرکت داده شد، در هوش مصنوعی، ایجنت میآموزد به شکل خودکار بهترین مسیر را انتخاب کند.
این ایده در الگوریتمهایی مانند Q-Learning یا محیطهای آموزشی مانند FrozenLake در OpenAI Gym پیادهسازی میشود.
---
💡 راهنمایی
برای تمرین هوش مصنوعی، میتوان به جای کنترل دستی، الگوریتمی طراحی کرد که ایجنت بهصورت خودکار مسیر درست را بیاموزد.
میتوان اندازهی محیط یا تعداد موانع را تغییر داد تا سطح سختی افزایش یابد.
✨ توضیح کوتاه
Agent (ایجنت): موجودی که تصمیم میگیرد (در اینجا با کلیدها کنترل شد).
Environment (محیط): شبکهی 8×8 شامل موانع و هدف.
State (وضعیت): مختصات ایجنت در جدول.
Actions (اعمال): حرکت به بالا، پایین، چپ و راست.
Reward (پاداش): رسیدن به هدف و پیروزی 🏆.
---
📌 اهمیت
این مدل ساده، پایهی بسیاری از بازیها، روباتیک و الگوریتمهای یادگیری تقویتی (Reinforcement Learning) است.
همانطور که ایجنت در این تمرین بهصورت دستی حرکت داده شد، در هوش مصنوعی، ایجنت میآموزد به شکل خودکار بهترین مسیر را انتخاب کند.
این ایده در الگوریتمهایی مانند Q-Learning یا محیطهای آموزشی مانند FrozenLake در OpenAI Gym پیادهسازی میشود.
---
💡 راهنمایی
برای تمرین هوش مصنوعی، میتوان به جای کنترل دستی، الگوریتمی طراحی کرد که ایجنت بهصورت خودکار مسیر درست را بیاموزد.
میتوان اندازهی محیط یا تعداد موانع را تغییر داد تا سطح سختی افزایش یابد.
راهنمای رسمی یادگیری هوش مصنوعی با پایتون
1️⃣ مقدمه
هوش مصنوعی (Artificial Intelligence – AI) شاخهای از علوم کامپیوتر است که به ساخت سیستمهایی میپردازد که توانایی تصمیمگیری، یادگیری و حل مسئله دارند. پایتون یکی از محبوبترین زبانها برای توسعه AI است، زیرا کتابخانههای متنوع، جامعه بزرگ و کاربرد در صنعت و پژوهش دارد.
---
2️⃣ دستهبندیهای اصلی هوش مصنوعی در پایتون
2.1 یادگیری ماشین (Machine Learning)
هدف: ساخت مدلهایی که از دادهها یاد میگیرند و پیشبینی یا تصمیمگیری میکنند.
کتابخانهها: scikit-learn, xgboost, lightgbm
پروژههای پیشنهادی:
پیشبینی قیمت خانه
دستهبندی ایمیل اسپم
تحلیل دادههای فروش و پیشبینی روند آینده
---
2.2 یادگیری عمیق (Deep Learning)
هدف: استفاده از شبکههای عصبی عمیق برای حل مسائل پیچیده.
کتابخانهها: TensorFlow, Keras, PyTorch
پروژههای پیشنهادی:
تشخیص اشیا و چهره در تصاویر
تولید متن با مدلهای RNN/Transformer
سیستمهای ترجمه خودکار
---
2.3 پردازش تصویر و بینایی ماشین (Computer Vision)
هدف: استخراج اطلاعات و تحلیل تصاویر و ویدئوها.
کتابخانهها: OpenCV, Pillow, scikit-image
پروژههای پیشنهادی:
تشخیص چهره یا اجسام
OCR (خواندن متن از تصویر)
فیلترگذاری و تغییر رنگ ویدئو
---
2.4 پردازش زبان طبیعی (Natural Language Processing)
هدف: تحلیل و تولید زبان و متن انسانی.
کتابخانهها: NLTK, spaCy, Transformers (HuggingFace)
پروژههای پیشنهادی:
ساخت چتبات
تحلیل احساسات شبکههای اجتماعی
خلاصهسازی خودکار مقالات
---
2.5 یادگیری تقویتی (Reinforcement Learning)
هدف: آموزش ایجنتها برای تصمیمگیری بهینه در محیط.
کتابخانهها: gym (OpenAI), Stable Baselines3
پروژههای پیشنهادی:
بازیهای ساده مانند Gridworld یا FrozenLake
رباتیک شبیهسازیشده
مسیریابی خودکار
---
2.6 الگوریتمها و سیستمهای هوشمند سنتی
هدف: استفاده از الگوریتمهای جستجو، منطق فازی و سیستمهای خبره.
کتابخانهها: pyknow, DEAP (الگوریتم ژنتیک)
پروژههای پیشنهادی:
سیستم توصیهگر ساده
حل مسئله با جستجوی A*
تصمیمگیری هوشمند با قوانین
---
2.7 علوم داده و تحلیل (Data Science)
هدف: جمعآوری، تحلیل و مصورسازی دادهها برای استخراج الگو.
کتابخانهها: pandas, numpy, matplotlib, seaborn
پروژههای پیشنهادی:
مصورسازی روند فروش
تحلیل دادههای شبکههای اجتماعی
پیشبینی نتایج بر اساس دادههای تاریخی
---
3️⃣ مسیر یادگیری پیشنهادی (قدمبهقدم)
1. پایتون پایهای و کتابخانههای پایه:
numpy, pandas, matplotlib, seaborn
2. یادگیری ماشین پایه:
مدلهای رگرسیون و دستهبندی با scikit-learn
3. پردازش تصویر با OpenCV:
فیلترگذاری، تشخیص لبه و رنگها
تشخیص اشیا ساده
4. یادگیری عمیق با Keras/PyTorch:
شبکههای CNN برای تصویر
شبکههای RNN و Transformer برای متن
5. پردازش زبان طبیعی:
تحلیل متن و چتبات با spaCy و Transformers
6. یادگیری تقویتی و شبیهسازی محیطها:
OpenAI Gym و Q-Learning
پروژههای بازی و رباتیک
7. پروژه عملی و انتشار:
GitHub: پروژهها، کدها و مستندات
Kaggle: مسابقات و تمرین دادهها
انتشار مقاله یا آموزش آنلاین
---
4️⃣ نکات کلیدی برای موفقیت
تمرین با پروژههای واقعی مهمتر از صرفا خواندن تئوری است.
استفاده از کتابخانهها و ابزارهای متنباز بهترین مسیر برای یادگیری سریع و تجربه صنعتی است.
مستند کردن پروژهها و اشتراکگذاری آنها باعث دیده شدن و اعتبار علمی میشود.
1️⃣ مقدمه
هوش مصنوعی (Artificial Intelligence – AI) شاخهای از علوم کامپیوتر است که به ساخت سیستمهایی میپردازد که توانایی تصمیمگیری، یادگیری و حل مسئله دارند. پایتون یکی از محبوبترین زبانها برای توسعه AI است، زیرا کتابخانههای متنوع، جامعه بزرگ و کاربرد در صنعت و پژوهش دارد.
---
2️⃣ دستهبندیهای اصلی هوش مصنوعی در پایتون
2.1 یادگیری ماشین (Machine Learning)
هدف: ساخت مدلهایی که از دادهها یاد میگیرند و پیشبینی یا تصمیمگیری میکنند.
کتابخانهها: scikit-learn, xgboost, lightgbm
پروژههای پیشنهادی:
پیشبینی قیمت خانه
دستهبندی ایمیل اسپم
تحلیل دادههای فروش و پیشبینی روند آینده
---
2.2 یادگیری عمیق (Deep Learning)
هدف: استفاده از شبکههای عصبی عمیق برای حل مسائل پیچیده.
کتابخانهها: TensorFlow, Keras, PyTorch
پروژههای پیشنهادی:
تشخیص اشیا و چهره در تصاویر
تولید متن با مدلهای RNN/Transformer
سیستمهای ترجمه خودکار
---
2.3 پردازش تصویر و بینایی ماشین (Computer Vision)
هدف: استخراج اطلاعات و تحلیل تصاویر و ویدئوها.
کتابخانهها: OpenCV, Pillow, scikit-image
پروژههای پیشنهادی:
تشخیص چهره یا اجسام
OCR (خواندن متن از تصویر)
فیلترگذاری و تغییر رنگ ویدئو
---
2.4 پردازش زبان طبیعی (Natural Language Processing)
هدف: تحلیل و تولید زبان و متن انسانی.
کتابخانهها: NLTK, spaCy, Transformers (HuggingFace)
پروژههای پیشنهادی:
ساخت چتبات
تحلیل احساسات شبکههای اجتماعی
خلاصهسازی خودکار مقالات
---
2.5 یادگیری تقویتی (Reinforcement Learning)
هدف: آموزش ایجنتها برای تصمیمگیری بهینه در محیط.
کتابخانهها: gym (OpenAI), Stable Baselines3
پروژههای پیشنهادی:
بازیهای ساده مانند Gridworld یا FrozenLake
رباتیک شبیهسازیشده
مسیریابی خودکار
---
2.6 الگوریتمها و سیستمهای هوشمند سنتی
هدف: استفاده از الگوریتمهای جستجو، منطق فازی و سیستمهای خبره.
کتابخانهها: pyknow, DEAP (الگوریتم ژنتیک)
پروژههای پیشنهادی:
سیستم توصیهگر ساده
حل مسئله با جستجوی A*
تصمیمگیری هوشمند با قوانین
---
2.7 علوم داده و تحلیل (Data Science)
هدف: جمعآوری، تحلیل و مصورسازی دادهها برای استخراج الگو.
کتابخانهها: pandas, numpy, matplotlib, seaborn
پروژههای پیشنهادی:
مصورسازی روند فروش
تحلیل دادههای شبکههای اجتماعی
پیشبینی نتایج بر اساس دادههای تاریخی
---
3️⃣ مسیر یادگیری پیشنهادی (قدمبهقدم)
1. پایتون پایهای و کتابخانههای پایه:
numpy, pandas, matplotlib, seaborn
2. یادگیری ماشین پایه:
مدلهای رگرسیون و دستهبندی با scikit-learn
3. پردازش تصویر با OpenCV:
فیلترگذاری، تشخیص لبه و رنگها
تشخیص اشیا ساده
4. یادگیری عمیق با Keras/PyTorch:
شبکههای CNN برای تصویر
شبکههای RNN و Transformer برای متن
5. پردازش زبان طبیعی:
تحلیل متن و چتبات با spaCy و Transformers
6. یادگیری تقویتی و شبیهسازی محیطها:
OpenAI Gym و Q-Learning
پروژههای بازی و رباتیک
7. پروژه عملی و انتشار:
GitHub: پروژهها، کدها و مستندات
Kaggle: مسابقات و تمرین دادهها
انتشار مقاله یا آموزش آنلاین
---
4️⃣ نکات کلیدی برای موفقیت
تمرین با پروژههای واقعی مهمتر از صرفا خواندن تئوری است.
استفاده از کتابخانهها و ابزارهای متنباز بهترین مسیر برای یادگیری سریع و تجربه صنعتی است.
مستند کردن پروژهها و اشتراکگذاری آنها باعث دیده شدن و اعتبار علمی میشود.
آزمون انتخابی پایتون – ۲۰ سوال
از هر بخش (سخت، متوسط، آسان) یک سوال انتخاب کنید.
سطح سخت (انتخاب 1)
1. بزرگترین عدد فرد در لیست
2. شمارش حروف بزرگ و کوچک در رشته
3. محاسبه معدل دانشآموزان از دیکشنری
4. فاکتوریل عدد n با تابع بازگشتی
5. صاف کردن لیست از لیستها (flatten)
6. بررسی عدد اول
7. حذف حروف تکراری از رشته
---
سطح متوسط (انتخاب 1)
8. مجموع اعداد زوج تا n
9. شمارش معکوس با حلقه while
10. بزرگترین عدد از دو عدد با تابع
11. حذف عناصر تکراری از لیست
12. بررسی وجود مقدار در لیست
13. گرفتن مقدار از دیکشنری با بررسی کلید
---
سطح آسان (انتخاب 1)
14. چاپ جمله شخصیسازیشده از نام و سن
15. بررسی زوج یا فرد بودن عدد
16. چاپ اعداد ۱ تا ۱۰ با حلقه for
17. جمع اعداد ۱ تا n با حلقه
18. رسم مربع با Turtle
19. نمایش نوع داده ورودی
20. تابع ساده با پارامتر پیشفرض
سلام دوستان،
برای تمرین عملی، ۲۰ سوال پایتون داریم که به سه سطح سخت، متوسط و آسان تقسیم شدهاند.
از هر سطح یک سوال انتخاب کنید.
پاسخ خود را در حد یک یا دو خط توضیحات بنویسید و کد کامل برای بنده ارسال کنید.
هدف از این تمرین:
تقویت تسلط شما روی مفاهیم متغیرها، شرطها، حلقهها، لیستها، دیکشنری، توابع و توابع داخلی.
تمرین عملی کوتاه و سریع که بتوانید مفاهیم را تثبیت کنید.
موفق باشید!
-
از هر بخش (سخت، متوسط، آسان) یک سوال انتخاب کنید.
سطح سخت (انتخاب 1)
1. بزرگترین عدد فرد در لیست
2. شمارش حروف بزرگ و کوچک در رشته
3. محاسبه معدل دانشآموزان از دیکشنری
4. فاکتوریل عدد n با تابع بازگشتی
5. صاف کردن لیست از لیستها (flatten)
6. بررسی عدد اول
7. حذف حروف تکراری از رشته
---
سطح متوسط (انتخاب 1)
8. مجموع اعداد زوج تا n
9. شمارش معکوس با حلقه while
10. بزرگترین عدد از دو عدد با تابع
11. حذف عناصر تکراری از لیست
12. بررسی وجود مقدار در لیست
13. گرفتن مقدار از دیکشنری با بررسی کلید
---
سطح آسان (انتخاب 1)
14. چاپ جمله شخصیسازیشده از نام و سن
15. بررسی زوج یا فرد بودن عدد
16. چاپ اعداد ۱ تا ۱۰ با حلقه for
17. جمع اعداد ۱ تا n با حلقه
18. رسم مربع با Turtle
19. نمایش نوع داده ورودی
20. تابع ساده با پارامتر پیشفرض
سلام دوستان،
برای تمرین عملی، ۲۰ سوال پایتون داریم که به سه سطح سخت، متوسط و آسان تقسیم شدهاند.
از هر سطح یک سوال انتخاب کنید.
پاسخ خود را در حد یک یا دو خط توضیحات بنویسید و کد کامل برای بنده ارسال کنید.
هدف از این تمرین:
تقویت تسلط شما روی مفاهیم متغیرها، شرطها، حلقهها، لیستها، دیکشنری، توابع و توابع داخلی.
تمرین عملی کوتاه و سریع که بتوانید مفاهیم را تثبیت کنید.
موفق باشید!
-
This media is not supported in your browser
VIEW IN TELEGRAM
لیست و دستهبندی همه متدها و توابع مهم پایتون
# دستهبندی متدهای پایتون بر اساس نوع دادهها
types_to_check = {
"str (رشته)": str,
"list (لیست)": list,
"tuple (تاپل)": tuple,
"dict (دیکشنری)": dict,
"set (مجموعه)": set,
"int (عدد صحیح)": int,
"float (عدد اعشاری)": float,
"complex (عدد مختلط)": complex,
"bool (بولی)": bool,
}
print("📚 دستهبندی متدها و توابع در پایتون")
print("="*60)
for type_name, type_obj in types_to_check.items():
print(f"\n🔹 {type_name}")
print("-"*40)
methods = [m for m in dir(type_obj) if not m.startswith("_")]
for m in methods:
print(m)
# دستهبندی متدهای پایتون بر اساس نوع دادهها
types_to_check = {
"str (رشته)": str,
"list (لیست)": list,
"tuple (تاپل)": tuple,
"dict (دیکشنری)": dict,
"set (مجموعه)": set,
"int (عدد صحیح)": int,
"float (عدد اعشاری)": float,
"complex (عدد مختلط)": complex,
"bool (بولی)": bool,
}
print("📚 دستهبندی متدها و توابع در پایتون")
print("="*60)
for type_name, type_obj in types_to_check.items():
print(f"\n🔹 {type_name}")
print("-"*40)
methods = [m for m in dir(type_obj) if not m.startswith("_")]
for m in methods:
print(m)
This media is not supported in your browser
VIEW IN TELEGRAM
لیست (کلیدواژهها، استثناها، متدهای ویژهی شیءگرایی)
---
کد
import keyword
import builtins
print("📚 دایرةالمعارف پایتون")
print("="*60)
# 1. کلیدواژهها
print("\n🔹 کلیدواژههای پایتون (Keywords):")
print("-"*40)
for kw in keyword.kwlist:
print(kw)
# 2. استثناها (Exceptions)
print("\n🔹 استثناها (Exceptions):")
print("-"*40)
exceptions = [name for name in dir(builtins)
if isinstance(getattr(builtins, name), type)
and issubclass(getattr(builtins, name), BaseException)]
for e in exceptions:
print(e)
# 3. متدهای ویژه (Magic / Dunder Methods)
print("\n🔹 متدهای ویژه (Magic Methods):")
print("-"*40)
magic_methods = [m for m in dir(object) if m.startswith("") and m.endswith("")]
for mm in magic_methods:
print(mm)
---
توضیح
Keywords → لیست همه کلیدواژههای رزرو شده پایتون مثل if, for, while, lambda, try …
Exceptions → لیست تمام خطاهای داخلی مثل ValueError, TypeError, ZeroDivisionError, KeyError …
---
کد
import keyword
import builtins
print("📚 دایرةالمعارف پایتون")
print("="*60)
# 1. کلیدواژهها
print("\n🔹 کلیدواژههای پایتون (Keywords):")
print("-"*40)
for kw in keyword.kwlist:
print(kw)
# 2. استثناها (Exceptions)
print("\n🔹 استثناها (Exceptions):")
print("-"*40)
exceptions = [name for name in dir(builtins)
if isinstance(getattr(builtins, name), type)
and issubclass(getattr(builtins, name), BaseException)]
for e in exceptions:
print(e)
# 3. متدهای ویژه (Magic / Dunder Methods)
print("\n🔹 متدهای ویژه (Magic Methods):")
print("-"*40)
magic_methods = [m for m in dir(object) if m.startswith("") and m.endswith("")]
for mm in magic_methods:
print(mm)
---
توضیح
Keywords → لیست همه کلیدواژههای رزرو شده پایتون مثل if, for, while, lambda, try …
Exceptions → لیست تمام خطاهای داخلی مثل ValueError, TypeError, ZeroDivisionError, KeyError …
Magic Methods → متدهای خاص پایتون که رفتار شیها رو تعریف میکنن مثل init, str, add, len …
This media is not supported in your browser
VIEW IN TELEGRAM
from turtle import *
import colorsys
speed(0)
bgcolor("black")
h = 0
penup()
goto(0, 0)
pendown()
for i in range(36):
penup()
goto(0, 0) # هر بار Turtle به مرکز بازمیگردد
pendown()
color = colorsys.hsv_to_rgb(h, 1, 1)
pencolor(color[0], color[1], color[2])
circle(150) # دایره بزرگ در مرکز
rt(10) # چرخش کلی برای مارپیچ
h += 0.03
done()
import colorsys
speed(0)
bgcolor("black")
h = 0
penup()
goto(0, 0)
pendown()
for i in range(36):
penup()
goto(0, 0) # هر بار Turtle به مرکز بازمیگردد
pendown()
color = colorsys.hsv_to_rgb(h, 1, 1)
pencolor(color[0], color[1], color[2])
circle(150) # دایره بزرگ در مرکز
rt(10) # چرخش کلی برای مارپیچ
h += 0.03
done()
This media is not supported in your browser
VIEW IN TELEGRAM
🔋 نمایش درصد شارژ و وضعیت باتری با پایتون
کد:
import psutil
# دریافت اطلاعات باتری
battery = psutil.sensors_battery()
if battery is not None:
print("Battery Percentage:", battery.percent, "%")
print("Power Plugged in:", battery.power_plugged)
# تبدیل ثانیه به ساعت:دقیقه:ثانیه
def convertTime(seconds):
minutes, seconds = divmod(seconds, 60)
hours, minutes = divmod(minutes, 60)
return "%d:%02d:%02d" % (hours, minutes, seconds)
print("Battery remaining time:", convertTime(battery.secsleft))
else:
print("No battery information available.")
کد:
import psutil
# دریافت اطلاعات باتری
battery = psutil.sensors_battery()
if battery is not None:
print("Battery Percentage:", battery.percent, "%")
print("Power Plugged in:", battery.power_plugged)
# تبدیل ثانیه به ساعت:دقیقه:ثانیه
def convertTime(seconds):
minutes, seconds = divmod(seconds, 60)
hours, minutes = divmod(minutes, 60)
return "%d:%02d:%02d" % (hours, minutes, seconds)
print("Battery remaining time:", convertTime(battery.secsleft))
else:
print("No battery information available.")
This media is not supported in your browser
VIEW IN TELEGRAM
📊 تحلیل همبستگی بازدهی سهام با پایتون
کد:
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
# لیست نمادهای سهام
tickers = ['AAPL', 'MSFT', 'GOOG', 'AMZN', 'META', 'TSLA', 'NVDA', 'JPM', 'V', 'DIS']
# تولید دادههای تصادفی برای بازدهی روزانه
np.random.seed(42)
returns = pd.DataFrame(np.random.randn(100, len(tickers)), columns=tickers)
# محاسبه ماتریس همبستگی
correlation_matrix = returns.corr()
# ترسیم Heatmap
plt.figure(figsize=(14, 10))
sns.heatmap(correlation_matrix, annot=True, cmap="RdYlGn", center=0)
plt.title("Stock Return Correlation Heatmap")
plt.show()
کد:
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
# لیست نمادهای سهام
tickers = ['AAPL', 'MSFT', 'GOOG', 'AMZN', 'META', 'TSLA', 'NVDA', 'JPM', 'V', 'DIS']
# تولید دادههای تصادفی برای بازدهی روزانه
np.random.seed(42)
returns = pd.DataFrame(np.random.randn(100, len(tickers)), columns=tickers)
# محاسبه ماتریس همبستگی
correlation_matrix = returns.corr()
# ترسیم Heatmap
plt.figure(figsize=(14, 10))
sns.heatmap(correlation_matrix, annot=True, cmap="RdYlGn", center=0)
plt.title("Stock Return Correlation Heatmap")
plt.show()
📢 اطلاعیه برگزاری دوره مقدماتی پایتون
با سلام خدمت دانشآموزان گرامی و والدین محترم،
با توجه به استقبال خوب همشهریان عزیز از دورههای برنامهنویسی، به اطلاع میرسانیم که دوره مقدماتی پایتون برای آن دسته از عزیزانی که موفق به ثبتنام در نوبت قبل نشده بودند، به زودی آغاز خواهد شد.
🔹 زمانبندی دوره به گونهای تنظیم شده است که کلاسها تا پیش از آغاز سال تحصیلی (اول مهر) به پایان برسند.
🔹 در صورت تمایل به شرکت در این دوره، لطفاً هرچه سریعتر اطلاع دهید تا با تکمیل ظرفیت، کلاسها از پایان همین هفته آغاز گردد.
با آرزوی موفقیت و پیشرفت برای همه دانشآموزان عزیز 🌱
با سلام خدمت دانشآموزان گرامی و والدین محترم،
با توجه به استقبال خوب همشهریان عزیز از دورههای برنامهنویسی، به اطلاع میرسانیم که دوره مقدماتی پایتون برای آن دسته از عزیزانی که موفق به ثبتنام در نوبت قبل نشده بودند، به زودی آغاز خواهد شد.
🔹 زمانبندی دوره به گونهای تنظیم شده است که کلاسها تا پیش از آغاز سال تحصیلی (اول مهر) به پایان برسند.
🔹 در صورت تمایل به شرکت در این دوره، لطفاً هرچه سریعتر اطلاع دهید تا با تکمیل ظرفیت، کلاسها از پایان همین هفته آغاز گردد.
با آرزوی موفقیت و پیشرفت برای همه دانشآموزان عزیز 🌱
🚀 دوره مقدماتی برنامهنویسی پایتون
با استقبال پرشور همشهریان عزیز، ثبتنام دوره جدید پایتون آغاز شد!
اگر به دنیای برنامهنویسی و هوش مصنوعی علاقهمندید، این فرصت ویژه را از دست ندهید.
🐍 چرا پایتون؟
ساده، خوانا و قدرتمند برای انواع پروژهها
پایه اصلی هوش مصنوعی، یادگیری ماشین و علم داده
کاربرد در توسعه وب، اتوماسیون، رباتیک و پژوهشهای علمی
🎯 مزایای یادگیری پایتون:
سرمایهگذاری بلندمدت روی آینده شغلی و علمی
دروازه ورود به دنیای فناوریهای نوین
👨🏫 مدرس دوره: یاسر محمودیان – کارشناس ارشد کامپیوتر مدرس برنامهنویسی و هوش مصنوعی
🎓 مخاطبان: دانشآموزان، دانشجویان و علاقهمندان به برنامهنویسی (بدون نیاز به پیشزمینه)
📅 زمانبندی: کلاسها تا قبل از آغاز سال تحصیلی (اول مهر)
📌 ثبتنام و اطلاعات بیشتر:
تلگرام و روبیکا: @PyPlus_Admin
ایتا: @learns_py
اینستاگرام: instagram.com/learns.py
✨ ظرفیت محدود، شروع کلاسها از پایان همین هفته ✅
#خراسان_رضوی
#درگز
#کانون_فرهنگی_ورزشی_شهید_صیاد_شیرازی_بسیج_درگز
https://eitaa.com/saiad_shiirazi
با استقبال پرشور همشهریان عزیز، ثبتنام دوره جدید پایتون آغاز شد!
اگر به دنیای برنامهنویسی و هوش مصنوعی علاقهمندید، این فرصت ویژه را از دست ندهید.
🐍 چرا پایتون؟
ساده، خوانا و قدرتمند برای انواع پروژهها
پایه اصلی هوش مصنوعی، یادگیری ماشین و علم داده
کاربرد در توسعه وب، اتوماسیون، رباتیک و پژوهشهای علمی
🎯 مزایای یادگیری پایتون:
سرمایهگذاری بلندمدت روی آینده شغلی و علمی
دروازه ورود به دنیای فناوریهای نوین
👨🏫 مدرس دوره: یاسر محمودیان – کارشناس ارشد کامپیوتر مدرس برنامهنویسی و هوش مصنوعی
🎓 مخاطبان: دانشآموزان، دانشجویان و علاقهمندان به برنامهنویسی (بدون نیاز به پیشزمینه)
📅 زمانبندی: کلاسها تا قبل از آغاز سال تحصیلی (اول مهر)
📌 ثبتنام و اطلاعات بیشتر:
تلگرام و روبیکا: @PyPlus_Admin
ایتا: @learns_py
اینستاگرام: instagram.com/learns.py
✨ ظرفیت محدود، شروع کلاسها از پایان همین هفته ✅
#خراسان_رضوی
#درگز
#کانون_فرهنگی_ورزشی_شهید_صیاد_شیرازی_بسیج_درگز
https://eitaa.com/saiad_shiirazi
Media is too big
VIEW IN TELEGRAM
📚 آموزش جامع مجموعهها (Set) در پایتون!
مجموعه چیست؟
یک مجموعه، دستهای از عناصر یکتا است که ترتیب در آن مهم نیست و هر عنصر فقط یک بار ظاهر میشود.
در این ویدیو با متدهای Set آشنا میشویم:
✅ ایجاد و کپی مجموعهها
✅ اضافه و حذف عناصر
✅ تغییر مقادیر
✅ انجام عملیات ریاضی مثل اشتراک، اجتماع و تفاوت
یکبار ببینید و مهارت خود در کار با مجموعهها را چند برابر کنید! 💡
مجموعه چیست؟
یک مجموعه، دستهای از عناصر یکتا است که ترتیب در آن مهم نیست و هر عنصر فقط یک بار ظاهر میشود.
در این ویدیو با متدهای Set آشنا میشویم:
✅ ایجاد و کپی مجموعهها
✅ اضافه و حذف عناصر
✅ تغییر مقادیر
✅ انجام عملیات ریاضی مثل اشتراک، اجتماع و تفاوت
یکبار ببینید و مهارت خود در کار با مجموعهها را چند برابر کنید! 💡
🚀 دوره جدید مقدماتی برنامهنویسی پایتون
با استقبال پرشور همشهریان عزیز، ثبتنام دوره جدید پایتون آغاز شد!
اگر به دنیای برنامهنویسی و هوش مصنوعی علاقهمندید، این فرصت ویژه را از دست ندهید.
🐍 چرا پایتون؟
ساده، خوانا و قدرتمند برای انواع پروژهها
زبان پایه در هوش مصنوعی، یادگیری ماشین و علم داده
کاربردی در توسعه وب، اتوماسیون، رباتیک و پژوهشهای علمی
🎯 مزایای یادگیری پایتون:
سرمایهگذاری بلندمدت روی آینده شغلی و علمی
دروازه ورود به دنیای فناوریهای نوین
👨🏫 مدرس دوره:
یاسر محمودیان – کارشناس ارشد کامپیوتر
مدرس برنامهنویسی و هوش مصنوعی
مربی کانون فرهنگی ورزشی شهید صیاد شیرازی بسیج درگز
🎓 مخاطبان: دانشآموزان، دانشجویان و علاقهمندان (بدون نیاز به پیشزمینه)
📍 محل برگزاری دوره:
کانون فرهنگی ورزشی شهید صیاد شیرازی – بسیج درگز
ثبتنام و اطلاعات بیشتر:
تلگرام و روبیکا: @PyPlus_Admin
ایتا: @learns_py
اینستاگرام: instagram.com/learns.py
📞 تماس جهت ثبتنام یا تحویل مدارک:
۰۹۳۷۰۱۲۲۶۹۱ – آقای ایمان کفاشان (مدیر کانون شهید صیاد شیرازی بسیج درگز)
با استقبال پرشور همشهریان عزیز، ثبتنام دوره جدید پایتون آغاز شد!
اگر به دنیای برنامهنویسی و هوش مصنوعی علاقهمندید، این فرصت ویژه را از دست ندهید.
🐍 چرا پایتون؟
ساده، خوانا و قدرتمند برای انواع پروژهها
زبان پایه در هوش مصنوعی، یادگیری ماشین و علم داده
کاربردی در توسعه وب، اتوماسیون، رباتیک و پژوهشهای علمی
🎯 مزایای یادگیری پایتون:
سرمایهگذاری بلندمدت روی آینده شغلی و علمی
دروازه ورود به دنیای فناوریهای نوین
👨🏫 مدرس دوره:
یاسر محمودیان – کارشناس ارشد کامپیوتر
مدرس برنامهنویسی و هوش مصنوعی
مربی کانون فرهنگی ورزشی شهید صیاد شیرازی بسیج درگز
🎓 مخاطبان: دانشآموزان، دانشجویان و علاقهمندان (بدون نیاز به پیشزمینه)
📍 محل برگزاری دوره:
کانون فرهنگی ورزشی شهید صیاد شیرازی – بسیج درگز
ثبتنام و اطلاعات بیشتر:
تلگرام و روبیکا: @PyPlus_Admin
ایتا: @learns_py
اینستاگرام: instagram.com/learns.py
📞 تماس جهت ثبتنام یا تحویل مدارک:
۰۹۳۷۰۱۲۲۶۹۱ – آقای ایمان کفاشان (مدیر کانون شهید صیاد شیرازی بسیج درگز)
❤️
«۷ مفهوم کلیدی پایتون که هر برنامهنویسی باید بلد باشد». اینم توضیح جمعوجور ولی کاربردی هر کدوم—با نکتههای مهم و چند تکهکد:
1. متغیرها و انواع داده
پایتون «داینامیکتایپ» است: نوعِ متغیر از روی مقدار مشخص میشود.
قابلتغییرها: list, dict, set — غیرقابلتغییرها: int, float, bool, str, tuple.
x = 3 # int
x = float(x) # 3.0
type(x) # <class 'float'>
2. دستورهای شرطی
if / elif / else + عملگرهای مقایسه (==, !=, <, …) و منطقی (and, or, not).
حواست به truthy/falsy باشد: [], "", 0, None همگی False محسوب میشوند.
if name and age >= 18:
print("Adult")
elif age is None:
print("Unknown")
else:
print("Minor")
3. حلقهها (for و while)
for روی هر «قابلتکرار» کار میکند؛ enumerate برای گرفتن اندیس.
break/continue و حواست به حلقههای بیپایان while.
درک لیستی راه پایتونیک برای ساخت لیستهاست.
for i, fruit in enumerate(["apple","banana"]):
print(i, fruit)
# list comprehension
squares = [n*n for n in range(5)] # [0,1,4,9,16]
4. تابعها
پارامترها: موقعیتی، کلیدواژهای، پیشفرض، *args و **kwargs.
محدودهٔ دید (LEGB) و بازگشت مقدار؛ بهتره تایپهینت و داکاسترینگ بنویسی.
def greet(name: str = "World") -> str:
"""Return a friendly greeting."""
return f"Hello, {name}"
5. لیستها و دیکشنریها
لیست: append, pop, sort, slicing.
دیکشنری: get، items، comprehension؛ برای کلیدها از مقادیر هشپذیر استفاده کن.
fruits = ["apple","banana","cherry"]
person = {"name":"Alice","age":25}
person.get("job", "N/A") # 'N/A'
ages = {name: len(name) for name in ["Ali","Sara"]} # {'Ali':3,'Sara':4}
6. مدیریت استثنا
همیشه «خاص» بگیر نه Exception کلی؛ از else و finally هم میشود بهره برد.
try:
result = 10 / x
except ZeroDivisionError:
result = None
else:
print("OK")
finally:
print("done")
7. کار با فایل
با with خیالت از بستن فایل راحته؛ حالتها: "r","w","a","b", و encoding.
برای مسیرها از pathlib و برای ساختارها از json استفاده کن.
from pathlib import Path
import json
data = {"name":"Alice","age":25}
Path("data.json").write_text(json.dumps(data, ensure_ascii=False), encoding="utf-8")
text = Path("notes.txt").read_text(encoding="utf-8")
نکات طلایی کوتاه:
از f-string برای فرمت متن استفاده کن.
از venv برای جداسازی محیط پروژهها.
کد تمیز = اسمگذاری خوب + تابعهای کوچک + تستهای ساده (pytest).
«۷ مفهوم کلیدی پایتون که هر برنامهنویسی باید بلد باشد». اینم توضیح جمعوجور ولی کاربردی هر کدوم—با نکتههای مهم و چند تکهکد:
1. متغیرها و انواع داده
پایتون «داینامیکتایپ» است: نوعِ متغیر از روی مقدار مشخص میشود.
قابلتغییرها: list, dict, set — غیرقابلتغییرها: int, float, bool, str, tuple.
x = 3 # int
x = float(x) # 3.0
type(x) # <class 'float'>
2. دستورهای شرطی
if / elif / else + عملگرهای مقایسه (==, !=, <, …) و منطقی (and, or, not).
حواست به truthy/falsy باشد: [], "", 0, None همگی False محسوب میشوند.
if name and age >= 18:
print("Adult")
elif age is None:
print("Unknown")
else:
print("Minor")
3. حلقهها (for و while)
for روی هر «قابلتکرار» کار میکند؛ enumerate برای گرفتن اندیس.
break/continue و حواست به حلقههای بیپایان while.
درک لیستی راه پایتونیک برای ساخت لیستهاست.
for i, fruit in enumerate(["apple","banana"]):
print(i, fruit)
# list comprehension
squares = [n*n for n in range(5)] # [0,1,4,9,16]
4. تابعها
پارامترها: موقعیتی، کلیدواژهای، پیشفرض، *args و **kwargs.
محدودهٔ دید (LEGB) و بازگشت مقدار؛ بهتره تایپهینت و داکاسترینگ بنویسی.
def greet(name: str = "World") -> str:
"""Return a friendly greeting."""
return f"Hello, {name}"
5. لیستها و دیکشنریها
لیست: append, pop, sort, slicing.
دیکشنری: get، items، comprehension؛ برای کلیدها از مقادیر هشپذیر استفاده کن.
fruits = ["apple","banana","cherry"]
person = {"name":"Alice","age":25}
person.get("job", "N/A") # 'N/A'
ages = {name: len(name) for name in ["Ali","Sara"]} # {'Ali':3,'Sara':4}
6. مدیریت استثنا
همیشه «خاص» بگیر نه Exception کلی؛ از else و finally هم میشود بهره برد.
try:
result = 10 / x
except ZeroDivisionError:
result = None
else:
print("OK")
finally:
print("done")
7. کار با فایل
با with خیالت از بستن فایل راحته؛ حالتها: "r","w","a","b", و encoding.
برای مسیرها از pathlib و برای ساختارها از json استفاده کن.
from pathlib import Path
import json
data = {"name":"Alice","age":25}
Path("data.json").write_text(json.dumps(data, ensure_ascii=False), encoding="utf-8")
text = Path("notes.txt").read_text(encoding="utf-8")
نکات طلایی کوتاه:
از f-string برای فرمت متن استفاده کن.
از venv برای جداسازی محیط پروژهها.
کد تمیز = اسمگذاری خوب + تابعهای کوچک + تستهای ساده (pytest).
🔑 ۷ مفهوم مهم پایتون (نسخه ساده با نکات کامل)
1) متغیر و نوع داده
متغیر = جعبهای که چیزی توش میذاریم.
پایتون خودش نوع داده رو تشخیص میده.
نوع دادهها: عدد صحیح (int)، اعشاری (float)، متن (str)، درست/غلط (bool)، لیست (list)، مجموعه (set)، دیکشنری (dict)، تاپل (tuple).
x = 5 # عدد صحیح
y = 3.14 # اعشاری
name = "Ali" # متن
ok = True # درست/غلط
---
2) شرطها (if, elif, else)
برای تصمیمگیری استفاده میشه.
عملگرها: == برابر، != نابرابر، < کوچکتر، > بزرگتر.
مقدارهای خالی مثل "", 0, [] یعنی «غلط».
if x > 10:
print("بزرگتر از ۱۰")
elif x == 10:
print("برابر ۱۰")
else:
print("کوچکتر از ۱۰")
---
3) حلقهها (for, while)
for برای تکرار روی لیست یا بازه.
while تا وقتی شرط برقرار باشه ادامه میده.
کلیدواژهها: break (شکستن حلقه)، continue (رفتن به دور بعدی).
for fruit in ["سیب", "موز", "گیلاس"]:
print(fruit)
i = 0
while i < 3:
print("i:", i)
i += 1
---
4) تابعها (def)
تابع = دستورهای آماده که خودمون میسازیم.
میتونه ورودی بگیره و خروجی بده.
ورودیها میتونن اختیاری باشن.
def greet(name="دوست"):
return f"سلام {name}"
print(greet()) # سلام دوست
print(greet("علی")) # سلام علی
---
5) لیست و دیکشنری
لیست: مجموعهای از چیزها پشت سر هم.
دیکشنری: اطلاعات با «کلید» و «مقدار».
هر دو خیلی پرکاربرد هستن.
fruits = ["سیب", "موز", "گیلاس"]
print(fruits[0]) # سیب
person = {"name": "Ali", "age": 15}
print(person["name"]) # Ali
---
6) مدیریت خطا (try, except)
برنامه همیشه ممکنه خطا بده (مثلاً تقسیم بر صفر).
با try/except جلوی کرشکردن برنامه رو میگیریم.
میتونیم finally هم بذاریم که همیشه اجرا بشه.
try:
result = 10 / 0
except ZeroDivisionError:
print("نمیشه تقسیم بر صفر کرد!")
finally:
print("برنامه ادامه دارد...")
---
7) کار با فایلها
میتونیم از فایل بخونیم یا داخلش بنویسیم.
with باعث میشه فایل خودش بسته بشه.
حالتها: "r" (خواندن)، "w" (نوشتن)، "a" (اضافه کردن).
with open("info.txt", "w", encoding="utf-8") as f:
f.write("سلام دنیا!")
with open("info.txt", "r", encoding="utf-8") as f:
print(f.read())
1) متغیر و نوع داده
متغیر = جعبهای که چیزی توش میذاریم.
پایتون خودش نوع داده رو تشخیص میده.
نوع دادهها: عدد صحیح (int)، اعشاری (float)، متن (str)، درست/غلط (bool)، لیست (list)، مجموعه (set)، دیکشنری (dict)، تاپل (tuple).
x = 5 # عدد صحیح
y = 3.14 # اعشاری
name = "Ali" # متن
ok = True # درست/غلط
---
2) شرطها (if, elif, else)
برای تصمیمگیری استفاده میشه.
عملگرها: == برابر، != نابرابر، < کوچکتر، > بزرگتر.
مقدارهای خالی مثل "", 0, [] یعنی «غلط».
if x > 10:
print("بزرگتر از ۱۰")
elif x == 10:
print("برابر ۱۰")
else:
print("کوچکتر از ۱۰")
---
3) حلقهها (for, while)
for برای تکرار روی لیست یا بازه.
while تا وقتی شرط برقرار باشه ادامه میده.
کلیدواژهها: break (شکستن حلقه)، continue (رفتن به دور بعدی).
for fruit in ["سیب", "موز", "گیلاس"]:
print(fruit)
i = 0
while i < 3:
print("i:", i)
i += 1
---
4) تابعها (def)
تابع = دستورهای آماده که خودمون میسازیم.
میتونه ورودی بگیره و خروجی بده.
ورودیها میتونن اختیاری باشن.
def greet(name="دوست"):
return f"سلام {name}"
print(greet()) # سلام دوست
print(greet("علی")) # سلام علی
---
5) لیست و دیکشنری
لیست: مجموعهای از چیزها پشت سر هم.
دیکشنری: اطلاعات با «کلید» و «مقدار».
هر دو خیلی پرکاربرد هستن.
fruits = ["سیب", "موز", "گیلاس"]
print(fruits[0]) # سیب
person = {"name": "Ali", "age": 15}
print(person["name"]) # Ali
---
6) مدیریت خطا (try, except)
برنامه همیشه ممکنه خطا بده (مثلاً تقسیم بر صفر).
با try/except جلوی کرشکردن برنامه رو میگیریم.
میتونیم finally هم بذاریم که همیشه اجرا بشه.
try:
result = 10 / 0
except ZeroDivisionError:
print("نمیشه تقسیم بر صفر کرد!")
finally:
print("برنامه ادامه دارد...")
---
7) کار با فایلها
میتونیم از فایل بخونیم یا داخلش بنویسیم.
with باعث میشه فایل خودش بسته بشه.
حالتها: "r" (خواندن)، "w" (نوشتن)، "a" (اضافه کردن).
with open("info.txt", "w", encoding="utf-8") as f:
f.write("سلام دنیا!")
with open("info.txt", "r", encoding="utf-8") as f:
print(f.read())
تحقیق کامل درباره Dynamic Typing در پایتون
1. مقدمه
زبانهای برنامهنویسی بر اساس نحوهی مدیریت نوع دادهها (Type System) به دو دسته کلی تقسیم میشوند:
Static Typing (ایستا)
Dynamic Typing (پویا)
پایتون یک زبان Dynamic Typed است. یعنی نوع متغیرها در زمان اجرای برنامه (Runtime) تعیین میشود، نه در زمان کامپایل (Compile-time). این ویژگی باعث انعطافپذیری بالای پایتون میشود اما در عین حال چالشهایی هم به همراه دارد.
---
2. تعریف Dynamic Typing
در زبانهای داینامیک تایپ مثل پایتون:
هنگام تعریف یک متغیر، نیازی به مشخص کردن نوع آن نیست.
نوع متغیر بر اساس مقداری که در آن قرار میگیرد به صورت خودکار تعیین میشود.
یک متغیر میتواند در طول اجرای برنامه چندین بار نوعش تغییر کند.
مثال:
x = 10 # x یک int است
print(type(x))
x = "hello" # حالا x یک str شده
print(type(x))
x = [1, 2, 3] # و حالا x یک list است
print(type(x))
---
3. مقایسه با Static Typing
در زبانهای Static Typed مثل Java یا C++، شما باید نوع متغیر را از ابتدا مشخص کنید و بعداً نمیتوانید آن را تغییر دهید.
مثال در جاوا:
int x = 10;
x = "hello"; // خطا: نمیتوان رشته را به int نسبت داد
در پایتون، چنین محدودیتی وجود ندارد.
---
4. مزایای Dynamic Typing در پایتون
✅ انعطافپذیری بالا: به راحتی میتوان متغیرها را تغییر داد.
✅ کدنویسی سریعتر: نیازی به تعریف نوع متغیرها نیست.
✅ سادگی برای مبتدیان: درک راحتتر بدون درگیری با سیستم تایپ پیچیده.
✅ پشتیبانی از کدهای جنریک (عمومی): توابع و کلاسها میتوانند روی انواع مختلف داده کار کنند.
مثال:
def add(a, b):
return a + b
print(add(5, 10)) # جمع دو عدد
print(add("hi ", "py")) # الحاق دو رشته
---
5. معایب Dynamic Typing
❌ بروز خطا در زمان اجرا: چون نوع متغیرها در زمان اجرا تعیین میشود، ممکن است خطاهای تایپی دیرتر آشکار شوند.
❌ کاهش کارایی: بررسی نوع متغیرها در زمان اجرا سرعت کمتری نسبت به زبانهای ایستا دارد.
❌ کدهای بزرگ سختتر مدیریت میشوند: چون نوع متغیر مشخص نیست، ردیابی باگها سختتر است.
مثال خطا:
def divide(a, b):
return a / b
print(divide(10, 2)) # درست
print(divide("10", 2)) # خطا در زمان اجرا
---
6. نقش Duck Typing در پایتون
پایتون از مفهومی به نام Duck Typing استفاده میکند:
> اگر چیزی مثل اردک راه میرود و مثل اردک صدا میکند، پس اردک است!
یعنی پایتون کمتر به نوع دادهها اهمیت میدهد و بیشتر به رفتار آنها (متدها و عملگرهای پشتیبانیشده) توجه دارد.
مثال:
class Duck:
def quack(self):
print("Quack!")
class Person:
def quack(self):
print("I’m pretending to be a duck!")
def make_it_quack(duck_like):
duck_like.quack()
make_it_quack(Duck()) # Quack!
make_it_quack(Person()) # I’m pretending to be a duck!
---
7. Type Hinting (اشارهگر نوع) در پایتون
از نسخه Python 3.5 به بعد، امکان Type Hints اضافه شد.
این قابلیت اجازه میدهد نوع متغیرها را مشخص کنید اما همچنان اجباری نیست و در زمان اجرا بررسی نمیشود؛ فقط ابزارهایی مثل mypy یا IDE میتوانند آن را بررسی کنند.
مثال با Type Hint:
def greet(name: str) -> str:
return "Hello, " + name
print(greet("Ali")) # درست
print(greet(123)) # خطا در mypy (ولی پایتون اجرا میکند!)
---
8. کارایی (Performance)
از آنجایی که پایتون باید در زمان اجرا نوع هر متغیر را بررسی کند، سرعت آن نسبت به زبانهای استاتیک تایپ کمتر است.
با این حال، انعطافپذیری بالای آن باعث شده برای توسعه سریع (Rapid Development) بسیار محبوب باشد.
---
9. جمعبندی
پایتون یک زبان داینامیک تایپ است.
نوع متغیرها در زمان اجرا مشخص میشود و میتواند تغییر کند.
این ویژگی باعث سادگی، انعطافپذیری و سرعت در توسعه میشود.
در مقابل، ممکن است باعث خطاهای زمان اجرا، دشواری در مدیریت پروژههای بزرگ و کاهش کارایی شود.
برای رفع برخی از این مشکلات، میتوان از Type Hinting استفاده کرد.
1. مقدمه
زبانهای برنامهنویسی بر اساس نحوهی مدیریت نوع دادهها (Type System) به دو دسته کلی تقسیم میشوند:
Static Typing (ایستا)
Dynamic Typing (پویا)
پایتون یک زبان Dynamic Typed است. یعنی نوع متغیرها در زمان اجرای برنامه (Runtime) تعیین میشود، نه در زمان کامپایل (Compile-time). این ویژگی باعث انعطافپذیری بالای پایتون میشود اما در عین حال چالشهایی هم به همراه دارد.
---
2. تعریف Dynamic Typing
در زبانهای داینامیک تایپ مثل پایتون:
هنگام تعریف یک متغیر، نیازی به مشخص کردن نوع آن نیست.
نوع متغیر بر اساس مقداری که در آن قرار میگیرد به صورت خودکار تعیین میشود.
یک متغیر میتواند در طول اجرای برنامه چندین بار نوعش تغییر کند.
مثال:
x = 10 # x یک int است
print(type(x))
x = "hello" # حالا x یک str شده
print(type(x))
x = [1, 2, 3] # و حالا x یک list است
print(type(x))
---
3. مقایسه با Static Typing
در زبانهای Static Typed مثل Java یا C++، شما باید نوع متغیر را از ابتدا مشخص کنید و بعداً نمیتوانید آن را تغییر دهید.
مثال در جاوا:
int x = 10;
x = "hello"; // خطا: نمیتوان رشته را به int نسبت داد
در پایتون، چنین محدودیتی وجود ندارد.
---
4. مزایای Dynamic Typing در پایتون
✅ انعطافپذیری بالا: به راحتی میتوان متغیرها را تغییر داد.
✅ کدنویسی سریعتر: نیازی به تعریف نوع متغیرها نیست.
✅ سادگی برای مبتدیان: درک راحتتر بدون درگیری با سیستم تایپ پیچیده.
✅ پشتیبانی از کدهای جنریک (عمومی): توابع و کلاسها میتوانند روی انواع مختلف داده کار کنند.
مثال:
def add(a, b):
return a + b
print(add(5, 10)) # جمع دو عدد
print(add("hi ", "py")) # الحاق دو رشته
---
5. معایب Dynamic Typing
❌ بروز خطا در زمان اجرا: چون نوع متغیرها در زمان اجرا تعیین میشود، ممکن است خطاهای تایپی دیرتر آشکار شوند.
❌ کاهش کارایی: بررسی نوع متغیرها در زمان اجرا سرعت کمتری نسبت به زبانهای ایستا دارد.
❌ کدهای بزرگ سختتر مدیریت میشوند: چون نوع متغیر مشخص نیست، ردیابی باگها سختتر است.
مثال خطا:
def divide(a, b):
return a / b
print(divide(10, 2)) # درست
print(divide("10", 2)) # خطا در زمان اجرا
---
6. نقش Duck Typing در پایتون
پایتون از مفهومی به نام Duck Typing استفاده میکند:
> اگر چیزی مثل اردک راه میرود و مثل اردک صدا میکند، پس اردک است!
یعنی پایتون کمتر به نوع دادهها اهمیت میدهد و بیشتر به رفتار آنها (متدها و عملگرهای پشتیبانیشده) توجه دارد.
مثال:
class Duck:
def quack(self):
print("Quack!")
class Person:
def quack(self):
print("I’m pretending to be a duck!")
def make_it_quack(duck_like):
duck_like.quack()
make_it_quack(Duck()) # Quack!
make_it_quack(Person()) # I’m pretending to be a duck!
---
7. Type Hinting (اشارهگر نوع) در پایتون
از نسخه Python 3.5 به بعد، امکان Type Hints اضافه شد.
این قابلیت اجازه میدهد نوع متغیرها را مشخص کنید اما همچنان اجباری نیست و در زمان اجرا بررسی نمیشود؛ فقط ابزارهایی مثل mypy یا IDE میتوانند آن را بررسی کنند.
مثال با Type Hint:
def greet(name: str) -> str:
return "Hello, " + name
print(greet("Ali")) # درست
print(greet(123)) # خطا در mypy (ولی پایتون اجرا میکند!)
---
8. کارایی (Performance)
از آنجایی که پایتون باید در زمان اجرا نوع هر متغیر را بررسی کند، سرعت آن نسبت به زبانهای استاتیک تایپ کمتر است.
با این حال، انعطافپذیری بالای آن باعث شده برای توسعه سریع (Rapid Development) بسیار محبوب باشد.
---
9. جمعبندی
پایتون یک زبان داینامیک تایپ است.
نوع متغیرها در زمان اجرا مشخص میشود و میتواند تغییر کند.
این ویژگی باعث سادگی، انعطافپذیری و سرعت در توسعه میشود.
در مقابل، ممکن است باعث خطاهای زمان اجرا، دشواری در مدیریت پروژههای بزرگ و کاهش کارایی شود.
برای رفع برخی از این مشکلات، میتوان از Type Hinting استفاده کرد.