This media is not supported in your browser
VIEW IN TELEGRAM
from turtle import *
from colorsys import *
pensize(4)
bgcolor('black')
tracer(20)
h = 0
for i in range(240):
c = hsv_to_rgb(h, 1, 1)
h += 0.005
color(c)
fillcolor('black')
begin_fill()
fd(i / 2)
rt(30)
fd(i)
rt(120)
rt(1020013)
end_fill()
done()
from colorsys import *
pensize(4)
bgcolor('black')
tracer(20)
h = 0
for i in range(240):
c = hsv_to_rgb(h, 1, 1)
h += 0.005
color(c)
fillcolor('black')
begin_fill()
fd(i / 2)
rt(30)
fd(i)
rt(120)
rt(1020013)
end_fill()
done()
for number in range(3):
print("تکرار شماره:", number)
print("تکرار شماره:", number)
🚦 چراغ راهنمایی خودکار + کنترل دستی (با Turtle)
import turtle
import time
# تنظیم پنجره
win = turtle.Screen()
win.title("چراغ راهنمایی (خودکار + دستی)")
win.bgcolor("white")
# طراحی بدنه چراغ
box = turtle.Turtle()
box.penup()
box.goto(-40, 100)
box.pendown()
box.color("black", "gray")
box.begin_fill()
for _ in range(2):
box.forward(80)
box.right(90)
box.forward(240)
box.right(90)
box.end_fill()
box.hideturtle()
# تابع ساخت چراغ
def create_light(position):
light = turtle.Turtle()
light.shape("circle")
light.color("black")
light.penup()
light.goto(0, position)
light.shapesize(3)
return light
# ساخت سه چراغ
red_light = create_light(80)
yellow_light = create_light(0)
green_light = create_light(-80)
# روشن و خاموش کردن چراغها
def turn_on(light, color):
red_light.color("black")
yellow_light.color("black")
green_light.color("black")
light.color(color)
# حالت خودکار
def auto_mode():
while True:
turn_on(red_light, "red")
time.sleep(2)
turn_on(yellow_light, "yellow")
time.sleep(1)
turn_on(green_light, "green")
time.sleep(2)
# حالت دستی با کیبورد
win.listen()
win.onkey(lambda: turn_on(red_light, "red"), "r")
win.onkey(lambda: turn_on(yellow_light, "yellow"), "y")
win.onkey(lambda: turn_on(green_light, "green"), "g")
# اجرای خودکار در یک حلقه جداگانه
import threading
threading.Thread(target=auto_mode, daemon=True).start()
# اجرای برنامه
turtle.done()
import turtle
import time
# تنظیم پنجره
win = turtle.Screen()
win.title("چراغ راهنمایی (خودکار + دستی)")
win.bgcolor("white")
# طراحی بدنه چراغ
box = turtle.Turtle()
box.penup()
box.goto(-40, 100)
box.pendown()
box.color("black", "gray")
box.begin_fill()
for _ in range(2):
box.forward(80)
box.right(90)
box.forward(240)
box.right(90)
box.end_fill()
box.hideturtle()
# تابع ساخت چراغ
def create_light(position):
light = turtle.Turtle()
light.shape("circle")
light.color("black")
light.penup()
light.goto(0, position)
light.shapesize(3)
return light
# ساخت سه چراغ
red_light = create_light(80)
yellow_light = create_light(0)
green_light = create_light(-80)
# روشن و خاموش کردن چراغها
def turn_on(light, color):
red_light.color("black")
yellow_light.color("black")
green_light.color("black")
light.color(color)
# حالت خودکار
def auto_mode():
while True:
turn_on(red_light, "red")
time.sleep(2)
turn_on(yellow_light, "yellow")
time.sleep(1)
turn_on(green_light, "green")
time.sleep(2)
# حالت دستی با کیبورد
win.listen()
win.onkey(lambda: turn_on(red_light, "red"), "r")
win.onkey(lambda: turn_on(yellow_light, "yellow"), "y")
win.onkey(lambda: turn_on(green_light, "green"), "g")
# اجرای خودکار در یک حلقه جداگانه
import threading
threading.Thread(target=auto_mode, daemon=True).start()
# اجرای برنامه
turtle.done()
کلاس برنامهنویسی پایتون
👨🏫 مربی: یاسر محمودیان
📅 تاریخ برگزاری: ۲۷ مرداد ۱۴۰۴
⏰ ساعت:
۹:۰۰ تا ۱۰:۳۰ — برادران
۱۰:۳۰ تا ۱۲:۰۰ — خواهران
📍 مکان: کانون فرهنگی ورزشی شهید صیادشیرازی بسیج درگز
👨🏫 مربی: یاسر محمودیان
📅 تاریخ برگزاری: ۲۷ مرداد ۱۴۰۴
⏰ ساعت:
۹:۰۰ تا ۱۰:۳۰ — برادران
۱۰:۳۰ تا ۱۲:۰۰ — خواهران
📍 مکان: کانون فرهنگی ورزشی شهید صیادشیرازی بسیج درگز
📢 اطلاعیه
سلام به دوستان عزیز 🌹
🔸 لطفاً دوستانی که هنوز مدارک خود را تحویل آقای کفاشان ندادهاند، حتماً تا فردا اقدام کنند.
🔸 با توجه به درخواستهای زیاد برای برگزاری دورههای مجازی پایتون، فعلاً برنامهی ما برگزاری کلاسهای حضوری و همچنین آمادهسازی برای مسابقات هست.
پس از پایان این مرحله، تمرکز ما بر روی تهیه و برنامهریزی دورههای مقدماتی و متوسطه پایتون خواهد بود.
📌 جزئیات و زمان ثبتنام دورهها بهزودی اطلاعرسانی خواهد شد. 🙏✨
سلام به دوستان عزیز 🌹
🔸 لطفاً دوستانی که هنوز مدارک خود را تحویل آقای کفاشان ندادهاند، حتماً تا فردا اقدام کنند.
🔸 با توجه به درخواستهای زیاد برای برگزاری دورههای مجازی پایتون، فعلاً برنامهی ما برگزاری کلاسهای حضوری و همچنین آمادهسازی برای مسابقات هست.
پس از پایان این مرحله، تمرکز ما بر روی تهیه و برنامهریزی دورههای مقدماتی و متوسطه پایتون خواهد بود.
📌 جزئیات و زمان ثبتنام دورهها بهزودی اطلاعرسانی خواهد شد. 🙏✨
💡 چطور با هوش مصنوعی پول دربیاریم؟ 💰
روش اول: خودش برات درآمد میسازه
تولید محتوا
ترجمه و بازنویسی
گویندگی و دوبله
طراحی سریع
فروش محصولات دیجیتال
روش دوم: کسبوکارت رو تقویت میکنه
🚀 تحلیل بازار و تصمیمگیری
🤖 اتوماسیون خدمات مشتری
🎨 طراحی و مارکتینگ حرفهایتر
📊 تحلیل دادههای فروش
📑 آمادهسازی پروپوزال و قرارداد
راز موفقیت با AI
✔️ یک خدمت مشخص انتخاب کن
✔️ نمونه کار جذاب بساز
✔️ قیمت شفاف بده
✔️ سریع تحویل بده
🔥 الان وقتشه!
از هوش مصنوعی به نفع خودت استفاده کن و درآمدتو بیشتر کن.
روش اول: خودش برات درآمد میسازه
تولید محتوا
ترجمه و بازنویسی
گویندگی و دوبله
طراحی سریع
فروش محصولات دیجیتال
روش دوم: کسبوکارت رو تقویت میکنه
🚀 تحلیل بازار و تصمیمگیری
🤖 اتوماسیون خدمات مشتری
🎨 طراحی و مارکتینگ حرفهایتر
📊 تحلیل دادههای فروش
📑 آمادهسازی پروپوزال و قرارداد
راز موفقیت با AI
✔️ یک خدمت مشخص انتخاب کن
✔️ نمونه کار جذاب بساز
✔️ قیمت شفاف بده
✔️ سریع تحویل بده
🔥 الان وقتشه!
از هوش مصنوعی به نفع خودت استفاده کن و درآمدتو بیشتر کن.
🐍 آموزش پایتون – بلوک (Block) چیه؟
اگه تازه با پایتون شروع کردی حتماً دیدی که بعضی خطها جلوتر نوشته میشن (تورفتگی یا Indent).
این دقیقاً همون چیزیه که بهش میگیم بلوک.
✨ بلوک یعنی چی؟
🔹 بلوک = مجموعهای از دستوراته که با هم اجرا میشن.
🔹 شروع بلوک همیشه بعد از : هست (مثل if:، for:، while:، def:).
🔹 دستورات داخل بلوک باید تورفتگی یکسان داشته باشن (معمولاً ۴ فاصله).
مثال ۱ – شرط if
x = 5
if x > 0: # شروع بلوک if
print("مثبت است")
print("بزرگتر از صفر")
print("تمام شد") # خارج از بلوک
✅ دو خط داخل if بلوک هستن.
⛔ خط آخر چون تورفتگی نداره → جزو بلوک نیست.
مثال ۲ – حلقه for
for i in range(3): # شروع بلوک for
print("i =", i)
if i == 1: # بلوک if داخل for
print("یعنی یک شد")
print("داخل حلقه")
print("بیرون حلقه") # خارج از بلوک
مثال ۳ – تابع
def salam(): # شروع بلوک تابع
print("سلام")
print("خوش اومدی")
salam()
⚠️ نکات خیلی مهم
1️⃣ تعداد فاصلهها باید همیشه یکسان باشه.
2️⃣ از ترکیب tab و space استفاده نکن → خطا میگیری.
3️⃣ پایتون بدون تورفتگی درست اجرا نمیشه → پس دقت کن.
✅ خلاصه:
بلوک در پایتون = دستورات با تورفتگی یکسان بعد از :
وقتی تورفتگی تموم شد → بلوک هم تموم شده.
اگه تازه با پایتون شروع کردی حتماً دیدی که بعضی خطها جلوتر نوشته میشن (تورفتگی یا Indent).
این دقیقاً همون چیزیه که بهش میگیم بلوک.
✨ بلوک یعنی چی؟
🔹 بلوک = مجموعهای از دستوراته که با هم اجرا میشن.
🔹 شروع بلوک همیشه بعد از : هست (مثل if:، for:، while:، def:).
🔹 دستورات داخل بلوک باید تورفتگی یکسان داشته باشن (معمولاً ۴ فاصله).
مثال ۱ – شرط if
x = 5
if x > 0: # شروع بلوک if
print("مثبت است")
print("بزرگتر از صفر")
print("تمام شد") # خارج از بلوک
✅ دو خط داخل if بلوک هستن.
⛔ خط آخر چون تورفتگی نداره → جزو بلوک نیست.
مثال ۲ – حلقه for
for i in range(3): # شروع بلوک for
print("i =", i)
if i == 1: # بلوک if داخل for
print("یعنی یک شد")
print("داخل حلقه")
print("بیرون حلقه") # خارج از بلوک
مثال ۳ – تابع
def salam(): # شروع بلوک تابع
print("سلام")
print("خوش اومدی")
salam()
⚠️ نکات خیلی مهم
1️⃣ تعداد فاصلهها باید همیشه یکسان باشه.
2️⃣ از ترکیب tab و space استفاده نکن → خطا میگیری.
3️⃣ پایتون بدون تورفتگی درست اجرا نمیشه → پس دقت کن.
✅ خلاصه:
بلوک در پایتون = دستورات با تورفتگی یکسان بعد از :
وقتی تورفتگی تموم شد → بلوک هم تموم شده.
Forwarded from AI Plus
خلاصه دستهبندی "تصورات اشتباه و واقعیتهای هوش مصنوعی"
❌ تصورات اشتباه:
1. باید هزینه دلاری کنم → ✅ ابزارهای رایگان زیادی هست.
2. باید زبان انگلیسی قوی بلد باشم → ✅ فارسی هم بهخوبی پشتیبانی میشه.
3. باید تخصص کامپیوتر داشته باشم → ✅ فقط با نوشتن یا گفتن دستور کار میکنه.
4. توی ایران کار نمیکنه → ✅ با ابزارهای ساده میشه تحریمها رو دور زد.
👥 دستههای مخاطبان:
🔸 دسته اول: هنوز استفاده نکردن
هوش مصنوعی مثل اینترنت اوایلشه:
امروز یاد بگیری → چند برابر سریعتر و بهتر عمل میکنی.
یاد نگیری → عقب میمونی.
🔸 دسته دوم: فقط کمی تست کردن
چند بار امتحان کردی، ولی جدی واردش نشدی.
شبیه کسی هستی که ماشین داره، اما فقط دور پارکینگ رانندگی میکنه! 🚗
پیشنهاد: همین امروز یکی از ابزارها رو در کار روزمرهات وارد کن (نوشتن، تحلیل، یادگیری...).
تجربه عملی، مسیر یادگیری رو خیلی سریعتر میکنه.
🔸 دسته سوم: در حال استفاده هستن
شروع کردی؟ عالیه! ولی یادت باشه:
یادگیری یک سفر بیپایانه.
ابزارها و مدلها هر روز تغییر میکنن.
کسی که امروز یاد میگیره و فردا رها میکنه، عقب میمونه.
نتیجه:
یادگیری و بهکارگیری مداوم هوش مصنوعی = کلید موفقیت آینده
❌ تصورات اشتباه:
1. باید هزینه دلاری کنم → ✅ ابزارهای رایگان زیادی هست.
2. باید زبان انگلیسی قوی بلد باشم → ✅ فارسی هم بهخوبی پشتیبانی میشه.
3. باید تخصص کامپیوتر داشته باشم → ✅ فقط با نوشتن یا گفتن دستور کار میکنه.
4. توی ایران کار نمیکنه → ✅ با ابزارهای ساده میشه تحریمها رو دور زد.
👥 دستههای مخاطبان:
🔸 دسته اول: هنوز استفاده نکردن
هوش مصنوعی مثل اینترنت اوایلشه:
امروز یاد بگیری → چند برابر سریعتر و بهتر عمل میکنی.
یاد نگیری → عقب میمونی.
🔸 دسته دوم: فقط کمی تست کردن
چند بار امتحان کردی، ولی جدی واردش نشدی.
شبیه کسی هستی که ماشین داره، اما فقط دور پارکینگ رانندگی میکنه! 🚗
پیشنهاد: همین امروز یکی از ابزارها رو در کار روزمرهات وارد کن (نوشتن، تحلیل، یادگیری...).
تجربه عملی، مسیر یادگیری رو خیلی سریعتر میکنه.
🔸 دسته سوم: در حال استفاده هستن
شروع کردی؟ عالیه! ولی یادت باشه:
یادگیری یک سفر بیپایانه.
ابزارها و مدلها هر روز تغییر میکنن.
کسی که امروز یاد میگیره و فردا رها میکنه، عقب میمونه.
نتیجه:
یادگیری و بهکارگیری مداوم هوش مصنوعی = کلید موفقیت آینده
Media is too big
VIEW IN TELEGRAM
🐍 انواع توابع در پایتون
🔹 ۱. توابع داخلی (Built-in Functions)
توابعی که از قبل در پایتون آمادهاند و فقط کافی است آنها را صدا بزنیم:
print(len([1, 2, 3])) # خروجی: 3
---
🔹 ۲. توابع تعریفشده توسط کاربر (UDF: User Defined Function)
توابعی که خودمان تعریف میکنیم:
def my_function():
print("این یک تابع تعریفشده توسط کاربر است")
---
🔹 ۳. توابع بازگشتی (Recursive Functions)
تابعی که خودش را صدا میزند:
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n - 1)
print(factorial(5)) # خروجی: 120
---
🔹 ۴. ورودی پیشفرض در توابع (Default Arguments)
وقتی برای پارامتر مقدار پیشفرض مشخص میکنیم:
def greet(name="Guest"):
print("Hello", name)
greet("Omid") # خروجی: Hello Omid
greet() # خروجی: Hello Guest
---
🔹 ۵. تمرین: تابعی که عدد بزرگتر را برگرداند
def bigger(a, b):
if a > b:
return a
else:
return b
print(bigger(15, 9)) # خروجی: 15
---
🔹 ۱. توابع داخلی (Built-in Functions)
توابعی که از قبل در پایتون آمادهاند و فقط کافی است آنها را صدا بزنیم:
print(len([1, 2, 3])) # خروجی: 3
---
🔹 ۲. توابع تعریفشده توسط کاربر (UDF: User Defined Function)
توابعی که خودمان تعریف میکنیم:
def my_function():
print("این یک تابع تعریفشده توسط کاربر است")
---
🔹 ۳. توابع بازگشتی (Recursive Functions)
تابعی که خودش را صدا میزند:
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n - 1)
print(factorial(5)) # خروجی: 120
---
🔹 ۴. ورودی پیشفرض در توابع (Default Arguments)
وقتی برای پارامتر مقدار پیشفرض مشخص میکنیم:
def greet(name="Guest"):
print("Hello", name)
greet("Omid") # خروجی: Hello Omid
greet() # خروجی: Hello Guest
---
🔹 ۵. تمرین: تابعی که عدد بزرگتر را برگرداند
def bigger(a, b):
if a > b:
return a
else:
return b
print(bigger(15, 9)) # خروجی: 15
---
🔹 ۶. تمرین: تابع با چند ورودی و خروجی جمع آنها
def myfunction(x, y, z):
return x + y + z # خروجی تابع
p = int(input("Enter p: "))
n = int(input("Enter n: "))
m = int(input("Enter m: "))
print(myfunction(p, n, m)) # فراخوانی تابع
def myfunction(x, y, z):
return x + y + z # خروجی تابع
p = int(input("Enter p: "))
n = int(input("Enter n: "))
m = int(input("Enter m: "))
print(myfunction(p, n, m)) # فراخوانی تابع
Media is too big
VIEW IN TELEGRAM
سلام دوستان 🙌
امروز براتون یک مثال خیلی خوب از مبحث توابع در پایتون آماده کردم 🎥
🔢 آموزش خط به خط کد برای جمع دو عدد ➕ و شمارش تعداد دفعات اجرای تابع 🔄
به همراه توضیحات کامل و نکتههای مهم دربارهی متغیرهای global
امروز براتون یک مثال خیلی خوب از مبحث توابع در پایتون آماده کردم 🎥
🔢 آموزش خط به خط کد برای جمع دو عدد ➕ و شمارش تعداد دفعات اجرای تابع 🔄
به همراه توضیحات کامل و نکتههای مهم دربارهی متغیرهای global
نکات مهم و کاربردی درباره append() و extend() :
🔹 ۱. نوع ورودی
append(x): یک عنصر واحد میگیرد.
extend(iterable): یک iterable میگیرد (لیست، تاپل، رشته، مجموعه و …).
🔹 ۲. تعداد عناصر اضافهشده
append(x): فقط یک عنصر اضافه میکند، حتی اگر آن عنصر خود یک لیست باشد.
extend(iterable): همه عناصر iterable را به لیست اضافه میکند.
🔹 ۳. نتیجه روی ساختار لیست
append(x): ممکن است یک لیست درون لیست بسازد.
extend(iterable): عناصر را یکبهیک اضافه میکند، لیست را صاف نگه میدارد.
🔹 ۴. تأثیر روی طول لیست
append(x): طول لیست +1 میشود.
extend(iterable): طول لیست به اندازه تعداد عناصر iterable افزایش مییابد.
🔹 ۵. سرعت و کارایی
برای یک عنصر: append() سریعتر است.
برای چند عنصر: extend() سریعتر و بهینهتر از چند بار append است.
🔹 ۶. کاربردها
append(x): وقتی میخواهید یک مقدار یا یک آبجکت (حتی لیست) را بهعنوان یک واحد اضافه کنید.
extend(iterable): وقتی میخواهید یک مجموعه عناصر (لیست، رشته، تاپل و غیره) را به لیست اضافه کنید.
🔹 ۷. مثالها
append:
lst = [1, 2, 3]
lst.append([4,5])
print(lst) # [1, 2, 3, [4, 5]]
extend:
lst = [1, 2, 3]
lst.extend([4,5])
print(lst) # [1, 2, 3, 4, 5]
نکته جانبی با رشته:
lst = [1,2]
lst.extend("ab")
print(lst) # [1, 2, 'a', 'b']
➡️ extend() رشته را به کاراکترهای جداگانه تبدیل میکند.
🔹 ۸. نکته پیشرفته
اگر بخواهید یک لیست از لیستها بسازید، append() بهتر است.
اگر بخواهید عناصر یک لیست را به لیست دیگر اضافه کنید، extend() مناسبتر است.
🔹 ۱. نوع ورودی
append(x): یک عنصر واحد میگیرد.
extend(iterable): یک iterable میگیرد (لیست، تاپل، رشته، مجموعه و …).
🔹 ۲. تعداد عناصر اضافهشده
append(x): فقط یک عنصر اضافه میکند، حتی اگر آن عنصر خود یک لیست باشد.
extend(iterable): همه عناصر iterable را به لیست اضافه میکند.
🔹 ۳. نتیجه روی ساختار لیست
append(x): ممکن است یک لیست درون لیست بسازد.
extend(iterable): عناصر را یکبهیک اضافه میکند، لیست را صاف نگه میدارد.
🔹 ۴. تأثیر روی طول لیست
append(x): طول لیست +1 میشود.
extend(iterable): طول لیست به اندازه تعداد عناصر iterable افزایش مییابد.
🔹 ۵. سرعت و کارایی
برای یک عنصر: append() سریعتر است.
برای چند عنصر: extend() سریعتر و بهینهتر از چند بار append است.
🔹 ۶. کاربردها
append(x): وقتی میخواهید یک مقدار یا یک آبجکت (حتی لیست) را بهعنوان یک واحد اضافه کنید.
extend(iterable): وقتی میخواهید یک مجموعه عناصر (لیست، رشته، تاپل و غیره) را به لیست اضافه کنید.
🔹 ۷. مثالها
append:
lst = [1, 2, 3]
lst.append([4,5])
print(lst) # [1, 2, 3, [4, 5]]
extend:
lst = [1, 2, 3]
lst.extend([4,5])
print(lst) # [1, 2, 3, 4, 5]
نکته جانبی با رشته:
lst = [1,2]
lst.extend("ab")
print(lst) # [1, 2, 'a', 'b']
➡️ extend() رشته را به کاراکترهای جداگانه تبدیل میکند.
🔹 ۸. نکته پیشرفته
اگر بخواهید یک لیست از لیستها بسازید، append() بهتر است.
اگر بخواهید عناصر یک لیست را به لیست دیگر اضافه کنید، extend() مناسبتر است.
تفاوت بین متغیرهای محلی (Local) و سراسری (Global) در پایتون
🔹 متغیر محلی (Local Variable)
تنها داخل همان تابع معتبر است.
پس از پایان اجرای تابع، حافظه آن آزاد میشود.
میتواند همنام متغیر سراسری باشد، اما مستقل از آن است.
با دستور global نمیتوان آن را خارج از تابع در دسترس قرار داد.
✅ مثال متغیر محلی:
def my_function():
x = 5 # متغیر محلی
print("داخل تابع:", x)
my_function()
# print(x) # ❌ خطا، چون x خارج از تابع تعریف نشده
---
🔹 متغیر سراسری (Global Variable)
در همه توابع و بخشهای برنامه قابل استفاده است.
اگر داخل تابع بخواهید مقدار آن را تغییر دهید، باید از کلمه کلیدی global استفاده کنید.
اگر بدون global تغییر داده شود، یک متغیر محلی جدید ساخته میشود و متغیر سراسری تغییر نمیکند.
✅ مثال متغیر سراسری:
y = 10 # متغیر سراسری
def my_function():
global y
y += 5 # تغییر مقدار متغیر سراسری
print("داخل تابع:", y)
my_function()
print("خارج از تابع:", y) # مقدار y تغییر کرده
---
🔹 نکته: بدون استفاده از global
y = 10
def my_function():
y = 20 # این y محلی است و متغیر سراسری را تغییر نمیدهد
print("داخل تابع:", y)
my_function()
print("خارج از تابع:", y) # هنوز 10 است
---
📊 جمعبندی نکات کلیدی
1. محدوده دسترسی:
محلی فقط داخل تابع معتبر است.
سراسری در کل برنامه قابل دسترسی است.
2. مدت زمان زندگی:
محلی تا پایان اجرای تابع زنده است.
سراسری تا پایان اجرای کل برنامه.
3. تغییر مقدار:
برای تغییر مقدار متغیر سراسری داخل تابع، باید از global استفاده شود.
4. نامگذاری:
یک متغیر محلی میتواند همنام متغیر سراسری باشد، اما مستقل عمل میکند.
---
🔹 تعریف ساده
متغیر محلی: جعبهای که فقط در اتاق (تابع) خودش باز میشود.
متغیر سراسری: جعبهای که همه اتاقها (توابع) میتوانند به آن دسترسی داشته باشند.
global: اجازه میدهد در یک اتاق (تابع)، جعبه سراسری را تغییر دهیم.
---
✅ مثال نهایی (ساده برای یادگیری):
# متغیر سراسری
number = 10
def my_local():
# متغیر محلی
x = 5
print("محلی داخل تابع:", x)
def my_global():
global number # مشخص میکنیم که میخواهیم متغیر سراسری را تغییر دهیم
number += 5
print("سراسری تغییر کرده داخل تابع:", number)
my_local()
# print(x) # ❌ خطا، چون x فقط داخل تابع تعریف شده
my_global()
print("سراسری بیرون تابع:", number)
خروجی:
محلی داخل تابع: 5
سراسری تغییر کرده داخل تابع: 15
سراسری بیرون تابع: 15
🔹 متغیر محلی (Local Variable)
تنها داخل همان تابع معتبر است.
پس از پایان اجرای تابع، حافظه آن آزاد میشود.
میتواند همنام متغیر سراسری باشد، اما مستقل از آن است.
با دستور global نمیتوان آن را خارج از تابع در دسترس قرار داد.
✅ مثال متغیر محلی:
def my_function():
x = 5 # متغیر محلی
print("داخل تابع:", x)
my_function()
# print(x) # ❌ خطا، چون x خارج از تابع تعریف نشده
---
🔹 متغیر سراسری (Global Variable)
در همه توابع و بخشهای برنامه قابل استفاده است.
اگر داخل تابع بخواهید مقدار آن را تغییر دهید، باید از کلمه کلیدی global استفاده کنید.
اگر بدون global تغییر داده شود، یک متغیر محلی جدید ساخته میشود و متغیر سراسری تغییر نمیکند.
✅ مثال متغیر سراسری:
y = 10 # متغیر سراسری
def my_function():
global y
y += 5 # تغییر مقدار متغیر سراسری
print("داخل تابع:", y)
my_function()
print("خارج از تابع:", y) # مقدار y تغییر کرده
---
🔹 نکته: بدون استفاده از global
y = 10
def my_function():
y = 20 # این y محلی است و متغیر سراسری را تغییر نمیدهد
print("داخل تابع:", y)
my_function()
print("خارج از تابع:", y) # هنوز 10 است
---
📊 جمعبندی نکات کلیدی
1. محدوده دسترسی:
محلی فقط داخل تابع معتبر است.
سراسری در کل برنامه قابل دسترسی است.
2. مدت زمان زندگی:
محلی تا پایان اجرای تابع زنده است.
سراسری تا پایان اجرای کل برنامه.
3. تغییر مقدار:
برای تغییر مقدار متغیر سراسری داخل تابع، باید از global استفاده شود.
4. نامگذاری:
یک متغیر محلی میتواند همنام متغیر سراسری باشد، اما مستقل عمل میکند.
---
🔹 تعریف ساده
متغیر محلی: جعبهای که فقط در اتاق (تابع) خودش باز میشود.
متغیر سراسری: جعبهای که همه اتاقها (توابع) میتوانند به آن دسترسی داشته باشند.
global: اجازه میدهد در یک اتاق (تابع)، جعبه سراسری را تغییر دهیم.
---
✅ مثال نهایی (ساده برای یادگیری):
# متغیر سراسری
number = 10
def my_local():
# متغیر محلی
x = 5
print("محلی داخل تابع:", x)
def my_global():
global number # مشخص میکنیم که میخواهیم متغیر سراسری را تغییر دهیم
number += 5
print("سراسری تغییر کرده داخل تابع:", number)
my_local()
# print(x) # ❌ خطا، چون x فقط داخل تابع تعریف شده
my_global()
print("سراسری بیرون تابع:", number)
خروجی:
محلی داخل تابع: 5
سراسری تغییر کرده داخل تابع: 15
سراسری بیرون تابع: 15
This media is not supported in your browser
VIEW IN TELEGRAM
✨️ توابع داخلی پایتون (Built-in Functions)
توابع داخلی، توابعی هستن که پایتون بهصورت پیشفرض و بدون نیاز به import در اختیار ما گذاشته.
اینها همیشه در دسترسن و میتونن کارهای خیلی پرکاربردی رو انجام بدن؛ مثل:
محاسبات ریاضی (sum, max, min, round, pow, abs)
کار با انواع دادهها (len, sorted, reversed, enumerate)
تبدیل نوعها (int, float, str, list, dict)
کار با ورودی/خروجی (print, input, open)
ابزارهای کمکی (isinstance, zip, map, filter, any, all)
به همین دلیل اسمشون رو گذاشتن built-in چون “درون خود زبان پایتون ساختهشده” هستن.
🔹 مثال کوتاه:
print(len([1,2,3])) # 3
print(max(10, 20, 5)) # 20
print(sum([1,2,3,4])) # 10
🔹 نمایش همه توابع داخلی + شمارش:
import builtins
funcs = [f for f in dir(builtins) if callable(getattr(builtins, f))]
print(funcs)
print(f"Total Built-in Functions: {len(funcs)}")
توابع داخلی، توابعی هستن که پایتون بهصورت پیشفرض و بدون نیاز به import در اختیار ما گذاشته.
اینها همیشه در دسترسن و میتونن کارهای خیلی پرکاربردی رو انجام بدن؛ مثل:
محاسبات ریاضی (sum, max, min, round, pow, abs)
کار با انواع دادهها (len, sorted, reversed, enumerate)
تبدیل نوعها (int, float, str, list, dict)
کار با ورودی/خروجی (print, input, open)
ابزارهای کمکی (isinstance, zip, map, filter, any, all)
به همین دلیل اسمشون رو گذاشتن built-in چون “درون خود زبان پایتون ساختهشده” هستن.
🔹 مثال کوتاه:
print(len([1,2,3])) # 3
print(max(10, 20, 5)) # 20
print(sum([1,2,3,4])) # 10
🔹 نمایش همه توابع داخلی + شمارش:
import builtins
funcs = [f for f in dir(builtins) if callable(getattr(builtins, f))]
print(funcs)
print(f"Total Built-in Functions: {len(funcs)}")