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 استفاده کرد.
1. انواع حلقهها در پایتون
الف) حلقه for
برای تکرار روی لیست، رشته، دیکشنری، تاپل یا هر iterable استفاده میشود.
مثال روی لیست:
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
ب) حلقه while
تا وقتی شرط True باشد، تکرار میکند.
i = 0
while i < 5:
print(i)
i += 1
---
2. روشهای حلقه زدن روی دادهها
2.1 روی لیست
numbers = [1, 2, 3, 4, 5]
for n in numbers:
print(n)
2.2 روی رشته
word = "Python"
for letter in word:
print(letter)
2.3 روی دیکشنری
person = {"name": "Ali", "age": 25}
for key in person:
print(key, person[key])
# یا
for key, value in person.items():
print(key, value)
2.4 با تابع range()
برای تکرار به تعداد مشخص:
for i in range(5):
print(i)
---
3. روشهای پیشرفتهتر
3.1 حلقههای تو در تو (Nested Loops)
matrix = [[1,2,3],[4,5,6]]
for row in matrix:
for item in row:
print(item)
3.2 حلقه با شرط (List Comprehension)
روشی کوتاه و پایتونیک برای حلقه:
squares = [x**2 for x in range(5)]
print(squares)
3.3 استفاده از enumerate
برای دسترسی به اندیس و مقدار همزمان:
fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits):
print(index, fruit)
3.4 استفاده از zip
برای حلقه زدن روی چند لیست همزمان:
names = ["Ali", "Sara"]
ages = [25, 30]
for name, age in zip(names, ages):
print(name, age)
---
4. دستورات کنترلی در حلقهها
break: خروج از حلقه
continue: رد کردن تکرار فعلی
else در حلقه: وقتی حلقه بدون break تمام شود
for i in range(5):
if i == 3:
break
print(i)
else:
print("تمام شد!") # اجرا نمیشود چون break اتفاق افتاد
الف) حلقه for
برای تکرار روی لیست، رشته، دیکشنری، تاپل یا هر iterable استفاده میشود.
مثال روی لیست:
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
ب) حلقه while
تا وقتی شرط True باشد، تکرار میکند.
i = 0
while i < 5:
print(i)
i += 1
---
2. روشهای حلقه زدن روی دادهها
2.1 روی لیست
numbers = [1, 2, 3, 4, 5]
for n in numbers:
print(n)
2.2 روی رشته
word = "Python"
for letter in word:
print(letter)
2.3 روی دیکشنری
person = {"name": "Ali", "age": 25}
for key in person:
print(key, person[key])
# یا
for key, value in person.items():
print(key, value)
2.4 با تابع range()
برای تکرار به تعداد مشخص:
for i in range(5):
print(i)
---
3. روشهای پیشرفتهتر
3.1 حلقههای تو در تو (Nested Loops)
matrix = [[1,2,3],[4,5,6]]
for row in matrix:
for item in row:
print(item)
3.2 حلقه با شرط (List Comprehension)
روشی کوتاه و پایتونیک برای حلقه:
squares = [x**2 for x in range(5)]
print(squares)
3.3 استفاده از enumerate
برای دسترسی به اندیس و مقدار همزمان:
fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits):
print(index, fruit)
3.4 استفاده از zip
برای حلقه زدن روی چند لیست همزمان:
names = ["Ali", "Sara"]
ages = [25, 30]
for name, age in zip(names, ages):
print(name, age)
---
4. دستورات کنترلی در حلقهها
break: خروج از حلقه
continue: رد کردن تکرار فعلی
else در حلقه: وقتی حلقه بدون break تمام شود
for i in range(5):
if i == 3:
break
print(i)
else:
print("تمام شد!") # اجرا نمیشود چون break اتفاق افتاد
🔹 یادگیری برنامهنویسی یعنی تمرین، تجربه و چالش 🔹
ما در این کلاس تنها به آموزش تئوری اکتفا نمیکنیم. راه ماندگار شدن مطالب، حل تمرین، مواجه شدن با چالشها و یافتن راهحلهای خلاقانه است. هر جا در مسیر کدنویسی با سوال یا مشکلی روبهرو شدید، کافیست مطرح کنید؛ تیم پشتیبان پایتون و هوش مصنوعی در کوتاهترین زمان همراه شما خواهد بود.
هدف ما این است که با تمرینهای هدفمند، پروژههای کوچک و سوالات چالشی، قدمبهقدم شما را به یک برنامهنویس توانمند تبدیل کنیم.
یادگیری واقعی زمانی شکل میگیرد که «خودتان کدنویسی کنید، اشتباه کنید، رفع اشکال کنید و تجربه بیاموزید».
پس آماده باشید برای یک مسیر پر از تمرین، خلاقیت و یادگیری عمیق 🚀
ما در این کلاس تنها به آموزش تئوری اکتفا نمیکنیم. راه ماندگار شدن مطالب، حل تمرین، مواجه شدن با چالشها و یافتن راهحلهای خلاقانه است. هر جا در مسیر کدنویسی با سوال یا مشکلی روبهرو شدید، کافیست مطرح کنید؛ تیم پشتیبان پایتون و هوش مصنوعی در کوتاهترین زمان همراه شما خواهد بود.
هدف ما این است که با تمرینهای هدفمند، پروژههای کوچک و سوالات چالشی، قدمبهقدم شما را به یک برنامهنویس توانمند تبدیل کنیم.
یادگیری واقعی زمانی شکل میگیرد که «خودتان کدنویسی کنید، اشتباه کنید، رفع اشکال کنید و تجربه بیاموزید».
پس آماده باشید برای یک مسیر پر از تمرین، خلاقیت و یادگیری عمیق 🚀
سلام بچهها 🌹
نمونهسوالات خیلی خوبی برامون ارسال شده.
ما ۲۰ سؤال مطابق دروس تدریسشده آماده کردیم که میتونید از هر سطح ساده، متوسط و سخت انتخاب کنید و حل کنید:
🔗 لینک سوالات
https://eitaa.com/85334588/1160
لطفاً وقتی میخواید روی یک سؤال کار کنید:
1. شماره سؤال رو بنویسید.
2. کد تایپی جواب رو داخل گروه بذارید.
3. ۲ تا ۳ عکس یا یک فیلم کوتاه از اجرای کد و خروجی هم بذارید تا مطمئن بشیم درست اجرا شده.
📌 مثال:
سؤال: پیدا کردن بزرگترین عدد
✅ کد تایپی + عکس/فیلم اجرای خروجی
این کار باعث میشه:
بقیه دوستان همون سؤال رو تکراری نفرستن.
همه روشهای مختلف حل رو ببینیم و یاد بگیریم.
مطمئن بشیم کد اجرا میشه و جواب درست داده.
🙏 همچنین از همه دوستانی که تا الان تمرینها رو ارسال کردند تشکر میکنیم.
۱. آقای محمدصالح قادریان
۲.آقای جعفرزاده
توجه و تلاش شما نشون میده آموزشها رو جدی دنبال میکنید.
✔️ یادتون باشه حل همین سوالات بیشترین تأثیر رو در تثبیت و درک عمیق مفاهیم داره.
👏 خسته نباشید به همه شما و همینطور پرقدرت ادامه بدید 🚀
نمونهسوالات خیلی خوبی برامون ارسال شده.
ما ۲۰ سؤال مطابق دروس تدریسشده آماده کردیم که میتونید از هر سطح ساده، متوسط و سخت انتخاب کنید و حل کنید:
🔗 لینک سوالات
https://eitaa.com/85334588/1160
لطفاً وقتی میخواید روی یک سؤال کار کنید:
1. شماره سؤال رو بنویسید.
2. کد تایپی جواب رو داخل گروه بذارید.
3. ۲ تا ۳ عکس یا یک فیلم کوتاه از اجرای کد و خروجی هم بذارید تا مطمئن بشیم درست اجرا شده.
📌 مثال:
سؤال: پیدا کردن بزرگترین عدد
✅ کد تایپی + عکس/فیلم اجرای خروجی
این کار باعث میشه:
بقیه دوستان همون سؤال رو تکراری نفرستن.
همه روشهای مختلف حل رو ببینیم و یاد بگیریم.
مطمئن بشیم کد اجرا میشه و جواب درست داده.
🙏 همچنین از همه دوستانی که تا الان تمرینها رو ارسال کردند تشکر میکنیم.
۱. آقای محمدصالح قادریان
۲.آقای جعفرزاده
توجه و تلاش شما نشون میده آموزشها رو جدی دنبال میکنید.
✔️ یادتون باشه حل همین سوالات بیشترین تأثیر رو در تثبیت و درک عمیق مفاهیم داره.
👏 خسته نباشید به همه شما و همینطور پرقدرت ادامه بدید 🚀
Eitaa
ایتا - Contact @85334588
پیام رسان ایرانی ایتا Eitaa
پیام تبریک 🌸🏆🥇
قهرمانی پرافتخار تیم ملی المپیاد نجوم و اخترفیزیک جمهوری اسلامی ایران در المپیاد جهانی و کسب عنوان طلاییترین تیم جهان برای دومین سال متوالی ✨، افتخاری بزرگ برای کشور عزیزمان ایران است.
این موفقیت درخشان را به اعضای شایسته تیم ملی 🌹:
🥇 علی نادری
🥇 حسین معصومی
🥇 هیربد فودازی
🥇 ارشیا میرشمسی کاخکی
🥇 حسین سلطانی
و همچنین خانوادههای گرامی ایشان، مربیان دلسوز و جامعه علمی کشور تبریک عرض میکنیم. 🌸✨
امید است درخشش شما الهامبخش نسلهای آینده در مسیر علم، دانش و سربلندی ایران اسلامی باشد. 🏆🇮🇷
قهرمانی پرافتخار تیم ملی المپیاد نجوم و اخترفیزیک جمهوری اسلامی ایران در المپیاد جهانی و کسب عنوان طلاییترین تیم جهان برای دومین سال متوالی ✨، افتخاری بزرگ برای کشور عزیزمان ایران است.
این موفقیت درخشان را به اعضای شایسته تیم ملی 🌹:
🥇 علی نادری
🥇 حسین معصومی
🥇 هیربد فودازی
🥇 ارشیا میرشمسی کاخکی
🥇 حسین سلطانی
و همچنین خانوادههای گرامی ایشان، مربیان دلسوز و جامعه علمی کشور تبریک عرض میکنیم. 🌸✨
امید است درخشش شما الهامبخش نسلهای آینده در مسیر علم، دانش و سربلندی ایران اسلامی باشد. 🏆🇮🇷
📝 گزارش جلسه هفتم
🔹 بخش اول: مرور و تمرین
مروری بر مباحث جلسات گذشته
پاسخگویی و حل پرسشهای مرتبط
---
🔹 بخش دوم: کار با لیستها (Lists)
آشنایی با متدهای پرکاربرد لیست:
append() : افزودن عنصر جدید
remove() : حذف عنصر
sort() : مرتبسازی
index() : یافتن اندیس یک مقدار
کاربرد لیست برای ذخیره دادههای متوالی
---
🔹 بخش سوم: کار با مجموعهها (Sets)
تعریف و ویژگیها:
عناصر بدون ترتیب
جلوگیری از تکرار عناصر
متدها و عملیات مهم:
اجتماع (union)
اشتراک (intersection)
تفاضل (difference)
---
🔹 بخش چهارم: عملگرها (Operators)
1. ریاضی (Arithmetic):
+, -, *, /, //, %, **
2. مقایسهای (Comparison):
==, !=, <, >, <=, >=
3. منطقی (Logical):
and, or, not
4. عضویت (Membership):
in, not in
5. عملگرهای اختصاصی (Identity Operators):
is, is not
---
✨ جمعبندی
جلسه هفتم بیشتر بر مرور، حل تمرین و کار با ساختارهای دادهای (لیست و مجموعه) و همچنین آشنایی با انواع عملگرها متمرکز بود. این مباحث پایهای ستون اصلی کدنویسی در پایتون هستند و در جلسات آینده کاربرد بیشتری پیدا خواهند کرد.
🔹 بخش اول: مرور و تمرین
مروری بر مباحث جلسات گذشته
پاسخگویی و حل پرسشهای مرتبط
---
🔹 بخش دوم: کار با لیستها (Lists)
آشنایی با متدهای پرکاربرد لیست:
append() : افزودن عنصر جدید
remove() : حذف عنصر
sort() : مرتبسازی
index() : یافتن اندیس یک مقدار
کاربرد لیست برای ذخیره دادههای متوالی
---
🔹 بخش سوم: کار با مجموعهها (Sets)
تعریف و ویژگیها:
عناصر بدون ترتیب
جلوگیری از تکرار عناصر
متدها و عملیات مهم:
اجتماع (union)
اشتراک (intersection)
تفاضل (difference)
---
🔹 بخش چهارم: عملگرها (Operators)
1. ریاضی (Arithmetic):
+, -, *, /, //, %, **
2. مقایسهای (Comparison):
==, !=, <, >, <=, >=
3. منطقی (Logical):
and, or, not
4. عضویت (Membership):
in, not in
5. عملگرهای اختصاصی (Identity Operators):
is, is not
---
✨ جمعبندی
جلسه هفتم بیشتر بر مرور، حل تمرین و کار با ساختارهای دادهای (لیست و مجموعه) و همچنین آشنایی با انواع عملگرها متمرکز بود. این مباحث پایهای ستون اصلی کدنویسی در پایتون هستند و در جلسات آینده کاربرد بیشتری پیدا خواهند کرد.