Python3
200 subscribers
100 photos
6 videos
26 files
518 links
🎓 آموزش و پروژه‌های Python
آموزش‌های کاربردی و پروژه‌های عملی Python برای همه سطوح. 🚀
Download Telegram
سلام دوستان ، ببخشید فعالیت کم شده ، به دلیل اینکه هم من هم مدیر کانال سر کار میریم و وقتی برای پست گذاشتن نداریم ، سعی میکنم براتون ساعت هایی که کار ندارم پست بزارم ، ممنون که درک میکنید❤️
امنیت از طریق عدم شفافیت (Security through Obscurity) در لینوکس 🛡️🐧

یکی از مفاهیم جذاب و بحث‌برانگیز در دنیای امنیت اطلاعات، مفهوم "امنیت از طریق عدم شفافیت" (Security through Obscurity) است. این روش به معنای پنهان کردن جزئیات سیستم به منظور افزایش امنیت است. در این مطلب به بررسی این مفهوم در سیستم‌عامل لینوکس می‌پردازیم. 🖥️🔍

توضیحات:

- امنیت از طریق عدم شفافیت (Security through Obscurity):
- این رویکرد بر این اصل استوار است که با پنهان کردن اطلاعات، احتمال کشف و بهره‌برداری از نقاط ضعف کاهش می‌یابد.
- به طور خاص، این روش به جای اصلاح مشکلات امنیتی، تلاش می‌کند تا دسترسی به اطلاعات حساس را محدود کند.

مثال‌هایی از استفاده در لینوکس:

1. پنهان کردن نسخه هسته (Kernel) لینوکس:
- در بسیاری از توزیع‌های لینوکس، نسخه دقیق هسته در فایل /proc/version قابل مشاهده است.
- با پنهان کردن یا تغییر این اطلاعات، دسترسی به اطلاعاتی که ممکن است به هکرها کمک کند، کاهش می‌یابد.


    echo "kernel_version_string" > /proc/version

2. پیکربندی SSH:
- در فایل تنظیمات SSH، می‌توانید نسخه نرم‌افزار SSH و بنر خوش‌آمدگویی را تغییر دهید تا اطلاعات کمتر قابل دسترس باشد.


    # در فایل sshd_config
Banner /etc/issue.net



    # در فایل issue.net
Unauthorized access is prohibited

3. پنهان کردن سرویس‌ها:
- پنهان کردن سرویس‌های در حال اجرا از طریق پیکربندی فایروال و ابزارهای نظارتی مثل netstat و lsof.


    # استفاده از iptables برای فیلتر کردن پورت‌ها
iptables -A INPUT -p tcp --dport 22 -j DROP

مزایا و معایب:

- مزایا:
- کاهش سطح دسترسی به اطلاعات حساس.
- کاهش احتمال حملات خودکار.

- معایب:
- ایجاد یک حس کاذب از امنیت.
- عدم توانایی در جایگزینی روش‌های امنیتی اساسی.

نتیجه‌گیری:

"امنیت از طریق عدم شفافیت" یک لایه اضافی از امنیت فراهم می‌کند، اما نباید به عنوان تنها روش امنیتی مورد استفاده قرار گیرد. استفاده از روش‌های امنیتی قوی‌تر مانند به‌روزرسانی مداوم، پیکربندی صحیح و نظارت مداوم بر سیستم‌ها نیز ضروری است. 🛡️🔒

🔻برای دونستن چیزای بیشتر اینجا کلیک کن

#امنیت #لینوکس #آموزش_برنامه_نویسی #سیستم_عامل #امنیت_شبکه #پروژه_های_پایتون
👍4
پارت ۱۵: پروژه ۱ - مدیریت مخاطبین 📞📝

در این پارت، یک پروژه عملی برای مدیریت مخاطبین را پیاده‌سازی می‌کنیم. هدف این پروژه آشنایی با مفاهیم پایه‌ای مانند کار با فایل‌ها، دیکشنری‌ها، و توابع است.

۱. تعریف ساختار پروژه
این پروژه شامل قابلیت‌های زیر خواهد بود:
- اضافه کردن مخاطب جدید
- نمایش لیست مخاطبین
- جستجو در مخاطبین
- حذف مخاطب
- ذخیره و بازیابی مخاطبین در فایل

۲. ایجاد فایل اصلی پروژه
ابتدا فایل اصلی پروژه را ایجاد کنید و ساختار اولیه آن را پیاده‌سازی کنید.

import json

# مسیر فایل ذخیره مخاطبین
CONTACTS_FILE = 'contacts.json'

def load_contacts():
"""بارگذاری مخاطبین از فایل"""
try:
with open(CONTACTS_FILE, 'r') as file:
return json.load(file)
except FileNotFoundError:
return []

def save_contacts(contacts):
"""ذخیره مخاطبین در فایل"""
with open(CONTACTS_FILE, 'w') as file:
json.dump(contacts, file, indent=4)

def add_contact(contacts):
"""اضافه کردن مخاطب جدید"""
name = input("نام: ")
phone = input("شماره تلفن: ")
email = input("ایمیل: ")

contact = {
'name': name,
'phone': phone,
'email': email
}
contacts.append(contact)
print("مخاطب جدید اضافه شد.")

def display_contacts(contacts):
"""نمایش لیست مخاطبین"""
for idx, contact in enumerate(contacts, start=1):
print(f"{idx}. {contact['name']} - {contact['phone']} - {contact['email']}")

def search_contacts(contacts):
"""جستجو در مخاطبین"""
search_name = input("نام برای جستجو: ")
found_contacts = [c for c in contacts if search_name.lower() in c['name'].lower()]

if found_contacts:
for contact in found_contacts:
print(f"{contact['name']} - {contact['phone']} - {contact['email']}")
else:
print("مخاطبی پیدا نشد.")

def delete_contact(contacts):
"""حذف مخاطب"""
display_contacts(contacts)
idx = int(input("شماره مخاطب برای حذف: ")) - 1

if 0 <= idx < len(contacts):
deleted_contact = contacts.pop(idx)
print(f"مخاطب {deleted_contact['name']} حذف شد.")
else:
print("شماره نامعتبر است.")

def main():
contacts = load_contacts()

while True:
print("\nمدیریت مخاطبین:")
print("1. اضافه کردن مخاطب")
print("2. نمایش لیست مخاطبین")
print("3. جستجو در مخاطبین")
print("4. حذف مخاطب")
print("5. خروج")

choice = input("انتخاب شما: ")

if choice == '1':
add_contact(contacts)
elif choice == '2':
display_contacts(contacts)
elif choice == '3':
search_contacts(contacts)
elif choice == '4':
delete_contact(contacts)
elif choice == '5':
save_contacts(contacts)
break
else:
print("انتخاب نامعتبر است.")

if __name__ == '__main__':
main()

۳. توضیحات هر تابع
- تابع load_contacts: مخاطبین را از فایل JSON بارگذاری می‌کند. اگر فایل موجود نباشد، یک لیست خالی برمی‌گرداند.
- تابع save_contacts: مخاطبین را در فایل JSON ذخیره می‌کند.
- تابع add_contact: اطلاعات یک مخاطب جدید را از کاربر می‌گیرد و به لیست مخاطبین اضافه می‌کند.
- تابع display_contacts: لیست مخاطبین را با استفاده از یک حلقه چاپ می‌کند.
- تابع search_contacts: نام وارد شده را جستجو کرده و مخاطبین مرتبط را نمایش می‌دهد.
- تابع delete_contact: مخاطب مورد نظر را بر اساس شماره انتخاب شده از لیست حذف می‌کند.
- تابع main: حلقه اصلی برنامه که منوی اصلی را نمایش داده و انتخاب کاربر را مدیریت می‌کند.

۴. نکات مهم
- مدیریت فایل: برای ذخیره و بارگذاری مخاطبین از فایل JSON استفاده شده است تا بتوانیم داده‌ها را بین اجراهای مختلف برنامه حفظ کنیم.
- پیشگیری از خطا: در حذف مخاطب، اطمینان حاصل می‌شود که شماره وارد شده معتبر است.
- تعامل با کاربر: اطلاعات مخاطب را از ورودی کاربر گرفته و نتیجه عملیات را به کاربر نمایش می‌دهد.

🔻اینجا کلیک کن برای آموزش های بیشتر

#پایتون #آموزش_پایتون #پروژه_پایتون #مدیریت_مخاطبین #PythonProjects #ContactsManagement
👍2
پارت ۱۶: پروژه ۲ - ماشین حساب پیشرفته 🧮

در این پارت، یک ماشین حساب پیشرفته را با استفاده از پایتون پیاده‌سازی می‌کنیم که قابلیت انجام عملیات پایه‌ای و پیشرفته ریاضی را دارد.

۱. تعریف ساختار پروژه
این پروژه شامل قابلیت‌های زیر خواهد بود:
- انجام عملیات جمع، تفریق، ضرب و تقسیم
- محاسبه توان و ریشه
- انجام محاسبات مثلثاتی (سینوس، کسینوس و تانژانت)
- استفاده از توابع لگاریتم و نمایی

۲. ایجاد فایل اصلی پروژه
ابتدا فایل اصلی پروژه را ایجاد کنید و ساختار اولیه آن را پیاده‌سازی کنید.

import math

def add(x, y):
return x + y

def subtract(x, y):
return x - y

def multiply(x, y):
return x * y

def divide(x, y):
if y == 0:
return "تقسیم بر صفر امکان‌پذیر نیست!"
return x / y

def power(x, y):
return x ** y

def sqrt(x):
if x < 0:
return "جذر عدد منفی امکان‌پذیر نیست!"
return math.sqrt(x)

def sine(x):
return math.sin(math.radians(x))

def cosine(x):
return math.cos(math.radians(x))

def tangent(x):
return math.tan(math.radians(x))

def logarithm(x, base=10):
if x <= 0:
return "لگاریتم عدد صفر یا منفی امکان‌پذیر نیست!"
return math.log(x, base)

def exponential(x):
return math.exp(x)

def display_menu():
print("\nماشین حساب پیشرفته:")
print("1. جمع")
print("2. تفریق")
print("3. ضرب")
print("4. تقسیم")
print("5. توان")
print("6. جذر")
print("7. سینوس")
print("8. کسینوس")
print("9. تانژانت")
print("10. لگاریتم")
print("11. نمایی")
print("12. خروج")

def main():
while True:
display_menu()
choice = input("انتخاب شما: ")

if choice == '1':
x = float(input("عدد اول: "))
y = float(input("عدد دوم: "))
print(f"نتیجه: {add(x, y)}")
elif choice == '2':
x = float(input("عدد اول: "))
y = float(input("عدد دوم: "))
print(f"نتیجه: {subtract(x, y)}")
elif choice == '3':
x = float(input("عدد اول: "))
y = float(input("عدد دوم: "))
print(f"نتیجه: {multiply(x, y)}")
elif choice == '4':
x = float(input("عدد اول: "))
y = float(input("عدد دوم: "))
print(f"نتیجه: {divide(x, y)}")
elif choice == '5':
x = float(input("عدد اول: "))
y = float(input("توان: "))
print(f"نتیجه: {power(x, y)}")
elif choice == '6':
x = float(input("عدد: "))
print(f"نتیجه: {sqrt(x)}")
elif choice == '7':
x = float(input("زاویه (درجه): "))
print(f"نتیجه: {sine(x)}")
elif choice == '8':
x = float(input("زاویه (درجه): "))
print(f"نتیجه: {cosine(x)}")
elif choice == '9':
x = float(input("زاویه (درجه): "))
print(f"نتیجه: {tangent(x)}")
elif choice == '10':
x = float(input("عدد: "))
base = float(input("پایه (پیش‌فرض 10): ") or 10)
print(f"نتیجه: {logarithm(x, base)}")
elif choice == '11':
x = float(input("عدد: "))
print(f"نتیجه: {exponential(x)}")
elif choice == '12':
print("خروج از ماشین حساب...")
break
else:
print("انتخاب نامعتبر است.")

if __name__ == '__main__':
main()

۳. توضیحات هر تابع
- توابع عملیات پایه‌ای: add, subtract, multiply, divide برای انجام عملیات جمع، تفریق، ضرب و تقسیم.
- توابع عملیات پیشرفته: power, sqrt برای محاسبه توان و جذر.
- توابع مثلثاتی: sine, cosine, tangent برای محاسبات مثلثاتی.
- توابع لگاریتم و نمایی: logarithm, exponential برای انجام محاسبات لگاریتمی و نمایی.
- تابع display_menu: نمایش منوی اصلی.
- تابع main: حلقه اصلی برنامه که منوی اصلی را نمایش داده و انتخاب کاربر را مدیریت می‌کند.
👍1
۴. نکات مهم
- مدیریت خطاها: در توابع divide, sqrt و logarithm برای جلوگیری از وقوع خطاها، بررسی‌های لازم انجام شده است.
- ورودی کاربر: برنامه از کاربر مقادیر ورودی را دریافت کرده و نتیجه محاسبات را نمایش می‌دهد.
- تابع math: برای انجام محاسبات پیچیده‌تر از کتابخانه math استفاده شده است.

🔻برای آموزش های بیشتر اینجا کلیک کن

#پایتون #آموزش_پایتون #پروژه_پایتون #ماشین_حساب #PythonProjects #AdvancedCalculator
👍1
صبح همتون بخیر دوستان ☕️
👍2
تشابهات زبان پایتون و C 🐍💻

سلام دوستان! امروز قصد دارم در مورد تشابهات بین دو زبان برنامه‌نویسی محبوب، پایتون و C صحبت کنم. هر دو زبان در دنیای برنامه‌نویسی بسیار مهم هستند و هر کدام ویژگی‌های خاص خودشون رو دارند. در ادامه به برخی از تشابهات این دو زبان اشاره می‌کنم.

1. مفاهیم پایه‌ای مشترک 📚

هر دو زبان پایتون و C از مفاهیم پایه‌ای برنامه‌نویسی مانند متغیرها، توابع و ساختارهای کنترلی (if، for، while) استفاده می‌کنند. این مفاهیم پایه‌ای در بیشتر زبان‌های برنامه‌نویسی مشترک هستند و یادگیری یکی از این زبان‌ها می‌تواند به یادگیری زبان دیگر کمک کند.

2. مدیریت حافظه 🔄

اگرچه مدیریت حافظه در C به صورت دستی انجام می‌شود (با استفاده از malloc و free)، پایتون نیز از مدیریت حافظه استفاده می‌کند، اما به صورت خودکار. در پایتون، مدیریت حافظه با استفاده از سیستم جمع‌آوری زباله (Garbage Collection) انجام می‌شود. در هر دو زبان، اهمیت مدیریت بهینه حافظه به منظور جلوگیری از نشتی حافظه و بهبود عملکرد برنامه وجود دارد.

3. استفاده از کتابخانه‌ها 📚

هر دو زبان از کتابخانه‌ها برای گسترش قابلیت‌ها و انجام کارهای خاص استفاده می‌کنند. در C، کتابخانه‌های استاندارد مانند stdio.h و math.h برای ورودی/خروجی و محاسبات ریاضی استفاده می‌شوند. در پایتون، کتابخانه‌های استاندارد و شخص ثالث زیادی مانند math، numpy و pandas وجود دارند که برای انجام کارهای مختلف به کار می‌روند.

4. استفاده در سیستم‌عامل‌ها و توسعه سیستم‌های نرم‌افزاری 🖥️

C به عنوان یکی از زبان‌های پایه‌ای برای نوشتن سیستم‌عامل‌ها و نرم‌افزارهای سیستمی شناخته می‌شود. بسیاری از سیستم‌عامل‌ها مانند Unix و Linux با استفاده از C نوشته شده‌اند. از سوی دیگر، پایتون نیز به دلیل سادگی و قدرتش در توسعه اسکریپت‌ها و ابزارهای مدیریتی سیستم‌عامل‌ها به کار می‌رود.

5. قابلیت‌های پردازش رشته‌ها 📝

هر دو زبان قابلیت‌های قدرتمندی برای پردازش رشته‌ها دارند. در C، پردازش رشته‌ها با استفاده از آرایه‌های کاراکتر و توابع کتابخانه‌ای مانند strcpy و strlen انجام می‌شود. در پایتون، پردازش رشته‌ها با استفاده از کلاس str و متدهای متعدد آن انجام می‌شود که کار با رشته‌ها را بسیار ساده‌تر می‌کند.

6. پشتیبانی از توابع 📜

هر دو زبان پایتون و C از توابع برای سازماندهی و کپسوله‌سازی کد استفاده می‌کنند. توابع در هر دو زبان می‌توانند ورودی بگیرند، خروجی بدهند و کدهای پیچیده را به بخش‌های کوچک‌تر و قابل مدیریت‌تر تقسیم کنند.

امیدوارم این معرفی کوتاه از تشابهات پایتون و C برای شما مفید باشه! اگر سوالی دارید یا نکته‌ای هست که دوست دارید بیشتر بدونید، در نظرات بپرسید. 😊

🔻آموزش های بیشتر اینجاست

#پایتون #C #برنامه_نویسی #آموزش_برنامه_نویسی #تشابهات_زبان_های_برنامه_نویسی
👍8
آموزش استفاده از متدهای کاربردی پایتون برای مدیریت تاریخ و زمان 📅🕒

سلام دوستان! امروز قصد داریم در مورد مدیریت تاریخ و زمان با پایتون صحبت کنیم. این موضوع می‌تواند برای بسیاری از برنامه‌های کاربردی مهم باشد، از جمله برنامه‌های مالی، برنامه‌های ردیابی فعالیت‌ها، و بسیاری موارد دیگر. بیایید با هم یاد بگیریم! 😊

1. وارد کردن کتابخانه datetime 📚

ابتدا کتابخانه datetime را وارد می‌کنیم:

import datetime

2. دریافت تاریخ و زمان فعلی 🕒

برای دریافت تاریخ و زمان فعلی، از متد datetime.now() استفاده می‌کنیم:

now = datetime.datetime.now()
print("Current date and time:", now)

3. قالب‌بندی تاریخ و زمان

می‌توانیم تاریخ و زمان را به فرمت‌های مختلف قالب‌بندی کنیم. برای مثال:

formatted_date = now.strftime("%Y-%m-%d")
formatted_time = now.strftime("%H:%M:%S")
print("Formatted date:", formatted_date)
print("Formatted time:", formatted_time)

4. کار با زمان‌های دلخواه

برای ایجاد یک زمان دلخواه، از کلاس datetime استفاده می‌کنیم:

specific_date = datetime.datetime(2023, 7, 5, 15, 30, 0)
print("Specific date and time:", specific_date)

5. محاسبات زمانی 🕰️

می‌توانیم با استفاده از timedelta محاسبات زمانی انجام دهیم. برای مثال، افزودن یا کاهش یک بازه زمانی به یک تاریخ مشخص:

future_date = now + datetime.timedelta(days=10)
past_date = now - datetime.timedelta(days=10)
print("Date 10 days in the future:", future_date)
print("Date 10 days in the past:", past_date)

6. تبدیل رشته به تاریخ و زمان 🔄

می‌توانیم رشته‌های متنی را به تاریخ و زمان تبدیل کنیم:

date_string = "2024-07-06 14:30:00"
date_object = datetime.datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
print("Date object from string:", date_object)

7. استفاده از کتابخانه pytz برای منطقه‌های زمانی 🌍

کتابخانه pytz به ما امکان می‌دهد که با منطقه‌های زمانی مختلف کار کنیم:

import pytz

# منطقه زمانی UTC
utc = pytz.utc
utc_now = datetime.datetime.now(utc)
print("UTC time:", utc_now)

# منطقه زمانی محلی
local_tz = pytz.timezone("Asia/Tehran")
local_time = utc_now.astimezone(local_tz)
print("Local time in Tehran:", local_time)

8. جمع‌بندی 📜

مدیریت تاریخ و زمان در پایتون با استفاده از کتابخانه‌های datetime و pytz بسیار ساده و کاربردی است. با استفاده از این متدها و تکنیک‌ها می‌توانید برنامه‌های خود را بهبود بخشید و مدیریت دقیقی بر روی تاریخ و زمان داشته باشید. امیدوارم این آموزش برای شما مفید باشد!

🔻آموزش های مفید بیشتر تو این کانال


#پایتون #برنامه_نویسی #تاریخ_زمان #مدیریت_زمان #آموزش #کتابخانه #datetime #pytz
👍1
معرفی کتابخانه‌های گرافیکی در پایتون 🎨

سلام دوستان! امروز می‌خواهیم به معرفی چند کتابخانه گرافیکی عالی برای پایتون بپردازیم که به شما کمک می‌کنند تا پروژه‌های گرافیکی خلاقانه و حرفه‌ای بسازید. هر یک از این کتابخانه‌ها قابلیت‌ها و کاربردهای منحصر به فردی دارند. بیایید آن‌ها را بررسی کنیم! 😊

1. Pygame 🎮

Pygame یکی از محبوب‌ترین کتابخانه‌ها برای توسعه بازی‌های دوبعدی است. این کتابخانه به شما امکان می‌دهد تا به راحتی بازی‌های گرافیکی بسازید و از امکانات مختلفی مثل صدا، تصویر و رویدادها استفاده کنید.

ویژگی‌ها:
- پشتیبانی از صدا و تصویر
- مدیریت رویدادها
- قابلیت ساخت بازی‌های دوبعدی

2. Tkinter 🖥️

Tkinter کتابخانه‌ی داخلی پایتون برای ساخت رابط‌های کاربری گرافیکی (GUI) است. با استفاده از Tkinter می‌توانید برنامه‌های دسکتاپی با رابط کاربری زیبا و کاربردی بسازید.

ویژگی‌ها:
- کتابخانه‌ی داخلی پایتون
- مناسب برای ساخت برنامه‌های دسکتاپی
- ابزارهای متعدد برای طراحی رابط کاربری

3. Matplotlib 📊

Matplotlib کتابخانه‌ای برای ترسیم نمودارها و گراف‌ها است. این کتابخانه به شما امکان می‌دهد تا نمودارهای خطی، ستونی، پراکنده و بسیاری از نمودارهای دیگر را به راحتی رسم کنید.

ویژگی‌ها:
- ترسیم انواع نمودارها
- سفارشی‌سازی بالا
- مناسب برای تحلیل داده‌ها

4. PIL/Pillow 🖼️

PIL (Python Imaging Library) و نسخه به‌روز شده‌ی آن Pillow، کتابخانه‌هایی برای پردازش تصویر هستند. با استفاده از این کتابخانه‌ها می‌توانید تصاویر را باز کنید، ویرایش کنید و ذخیره کنید.

ویژگی‌ها:
- باز و ذخیره کردن تصاویر
- ویرایش تصاویر
- پشتیبانی از فرمت‌های مختلف تصویری

5. OpenCV 👁️

OpenCV (Open Source Computer Vision Library) یکی از قدرتمندترین کتابخانه‌ها برای پردازش تصویر و بینایی ماشین است. این کتابخانه امکانات بسیاری برای تحلیل و پردازش تصاویر ارائه می‌دهد.

ویژگی‌ها:
- پردازش تصویر و ویدئو
- تشخیص اشیا و چهره
- تحلیل ویدئویی

6. Kivy 📱

Kivy یک کتابخانه متن‌باز برای ساخت برنامه‌های چند لمسی (multi-touch) و رابط‌های کاربری گرافیکی است. این کتابخانه برای توسعه برنامه‌های موبایلی بسیار مناسب است.

ویژگی‌ها:
- توسعه رابط‌های کاربری چند لمسی
- پشتیبانی از اندروید و iOS
- مناسب برای برنامه‌های موبایلی

7. PyQt5 🖌️

PyQt5 یک کتابخانه گرافیکی برای ساخت رابط‌های کاربری گرافیکی است که از ابزارهای Qt استفاده می‌کند. این کتابخانه به شما امکان می‌دهد تا برنامه‌های دسکتاپی حرفه‌ای و زیبا بسازید.

ویژگی‌ها:
- رابط‌های کاربری حرفه‌ای
- ابزارهای متعدد برای طراحی رابط
- مناسب برای برنامه‌های دسکتاپی

8. Plotly 📈

Plotly کتابخانه‌ای برای ترسیم نمودارهای تعاملی و زیبا است. این کتابخانه به شما امکان می‌دهد تا نمودارهای تعاملی و وب‌محور بسازید که می‌توانند در صفحات وب قرار گیرند.

ویژگی‌ها:
- نمودارهای تعاملی
- مناسب برای صفحات وب
- پشتیبانی از انواع نمودارها

9. Bokeh 🌼

Bokeh کتابخانه‌ای برای ترسیم نمودارهای تعاملی و بصری است که به شما امکان می‌دهد تا نمودارهای تعاملی و حرفه‌ای برای تحلیل داده‌ها بسازید.

ویژگی‌ها:
- نمودارهای تعاملی
- مناسب برای تحلیل داده‌ها
- ابزارهای متعدد برای سفارشی‌سازی

10. Turtle 🐢

Turtle یک کتابخانه آموزشی برای یادگیری مفاهیم گرافیک و برنامه‌نویسی است. این کتابخانه به کودکان و مبتدیان کمک می‌کند تا با استفاده از یک لاک‌پشت مجازی، مفاهیم گرافیکی را به راحتی یاد بگیرند.

ویژگی‌ها:
- آموزشی و سرگرم‌کننده
- مناسب برای کودکان و مبتدیان
- یادگیری مفاهیم گرافیک و برنامه‌نویسی

🔻معرفی کتابخانه های مفید بیشتر اینجاست

#پایتون #برنامه‌نویسی #کتابخانه_گرافیکی #Pygame #Tkinter #Matplotlib #Pillow #OpenCV #Kivy #PyQt5 #Plotly #Bokeh #Turtle
👍4
آموزش ساخت QR کد با پایتون 🖼️

سلام دوستان! امروز می‌خواهیم در مورد چگونگی ایجاد QR کد با استفاده از پایتون صحبت کنیم. QR کد‌ها می‌توانند برای بسیاری از موارد مفید باشند، مانند اشتراک‌گذاری لینک‌ها، اطلاعات تماس و بسیاری موارد دیگر. بیایید با هم یاد بگیریم! 😊

1. نصب کتابخانه qrcode 📦

ابتدا باید کتابخانه qrcode را نصب کنیم. این کتابخانه به ما امکان می‌دهد که به راحتی QR کد ایجاد کنیم. برای نصب آن از pip استفاده کنید:

pip install qrcode[pil]

2. وارد کردن کتابخانه qrcode 📚

پس از نصب، کتابخانه qrcode را وارد می‌کنیم:

import qrcode

3. ایجاد یک QR کد ساده 🎨

حالا می‌خواهیم یک QR کد ساده ایجاد کنیم. در این مثال، ما یک لینک به وب‌سایت را در QR کد قرار می‌دهیم:

# ایجاد یک QR کد ساده
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)

# داده‌ای که می‌خواهید در QR کد قرار دهید
data = "https://www.example.com"

# اضافه کردن داده به QR کد
qr.add_data(data)
qr.make(fit=True)

# ساخت تصویر QR کد
img = qr.make_image(fill_color="black", back_color="white")

# ذخیره تصویر QR کد
img.save("qrcode.png")

4. تنظیمات بیشتر برای QR کد 🔧

می‌توانید تنظیمات بیشتری برای QR کد اعمال کنید، مانند تغییر رنگ‌ها، اندازه و سطح تصحیح خطا. برای مثال:

# ایجاد یک QR کد با تنظیمات بیشتر
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_H, # سطح تصحیح خطا: H (بالا)
box_size=10,
border=4,
)

data = "https://www.example.com"
qr.add_data(data)
qr.make(fit=True)

# ساخت تصویر QR کد با رنگ‌های سفارشی
img = qr.make_image(fill_color="blue", back_color="yellow")

# ذخیره تصویر QR کد
img.save("custom_qrcode.png")

5. استفاده از کتابخانه pillow برای نمایش QR کد 🖼️

برای نمایش تصویر QR کد در برنامه پایتون، می‌توانیم از کتابخانه Pillow استفاده کنیم. اگر هنوز نصب نکرده‌اید، آن را نصب کنید:

pip install Pillow

سپس از آن برای نمایش تصویر استفاده کنید:

from PIL import Image

# باز کردن و نمایش تصویر QR کد
img = Image.open("qrcode.png")
img.show()

6. جمع‌بندی 📜

با استفاده از کتابخانه qrcode در پایتون، می‌توانید به راحتی QR کد‌های سفارشی ایجاد کنید. این QR کد‌ها می‌توانند برای کاربردهای مختلفی مانند به اشتراک‌گذاری لینک‌ها، اطلاعات تماس، و حتی پرداخت‌ها استفاده شوند. امیدوارم این آموزش برای شما مفید باشد و بتوانید از آن در پروژه‌های خود استفاده کنید.

🔻آموزش های مفید پایتون اینجا هست

#پایتون #برنامه_نویسی #QRCode #آموزش #کتابخانه #qrcode #Pillow
👍4
📚 دوره آموزش پایتون از 0 تا 100

پارت ۱۷: Decorators و Generators 🚀

در این پارت با دو مفهوم پیشرفته در پایتون یعنی Decorators و Generators آشنا می‌شویم. این دو ابزار به شما کمک می‌کنند تا کدهای خوانا‌تر، ماژولارتر و بهینه‌تری بنویسید.

۱. Decorators 🎨
Decorators یکی از ویژگی‌های قدرتمند پایتون است که به شما اجازه می‌دهد تا رفتار توابع یا کلاس‌ها را بدون تغییر در کد اصلی آن‌ها، اصلاح کنید.

۱.۱. تعریف یک Decorator
یک decorator در واقع یک تابع است که یک تابع دیگر را به عنوان ورودی می‌گیرد و یک تابع جدید را برمی‌گرداند.

def my_decorator(func):
def wrapper():
print("Something is happening before the function is called.")
func()
print("Something is happening after the function is called.")
return wrapper

@my_decorator
def say_hello():
print("Hello!")

say_hello()

در این مثال:
- my_decorator یک decorator است که تابع say_hello را تزئین می‌کند.
- @my_decorator قبل از تعریف say_hello باعث می‌شود که say_hello به صورت خودکار با my_decorator تزئین شود.

۱.۲. Decorators با آرگومان‌ها

def repeat(n):
def decorator(func):
def wrapper(*args, **kwargs):
for _ in range(n):
func(*args, **kwargs)
return wrapper
return decorator

@repeat(3)
def greet(name):
print(f"Hello, {name}!")

greet("Alice")

در این مثال:
- repeat یک decorator با آرگومان است که تابع greet را ۳ بار اجرا می‌کند.

۲. Generators 🔄
Generators به شما اجازه می‌دهند تا به راحتی iteratorهای خود را تعریف کنید. آن‌ها به جای برگرداندن یک لیست کامل، یک به یک مقادیر را تولید می‌کنند که باعث بهینه‌تر شدن حافظه می‌شود.

۲.۱. تعریف یک Generator

def count_up_to(max):
count = 1
while count <= max:
yield count
count += 1

counter = count_up_to(5)
for num in counter:
print(num)

در این مثال:
- count_up_to یک generator است که از ۱ تا max را تولید می‌کند.
- yield به جای return استفاده شده است که مقادیر را یکی یکی تولید می‌کند.

۲.۲. Generators با تابع next()

def simple_gen():
yield 1
yield 2
yield 3

gen = simple_gen()
print(next(gen)) # 1
print(next(gen)) # 2
print(next(gen)) # 3

در این مثال:
- simple_gen یک generator ساده است که مقادیر ۱، ۲ و ۳ را تولید می‌کند.
- با استفاده از next() می‌توان مقادیر بعدی را از generator دریافت کرد.


نکات مهم
- Decoratorها: برای تزئین توابع و تغییر رفتار آن‌ها بدون تغییر در کد اصلی استفاده می‌شوند. آن‌ها می‌توانند به توابعی با آرگومان‌های مختلف اعمال شوند.
- Generatorها: برای ایجاد iteratorهای کارآمد و بهینه استفاده می‌شوند. آن‌ها مقادیر را به صورت lazy evaluation تولید می‌کنند که باعث کاهش استفاده از حافظه می‌شود.

این دو مفهوم به شما کمک می‌کنند تا کدهای پیچیده‌تر و بهینه‌تری در پایتون بنویسید. امیدوارم این آموزش برای شما مفید بوده باشد! 🌟

🔻برای دیدن آموزش های مفید بیشتر اینجا کلیک کن

#پایتون #آموزش_پایتون #Decorators #Generators #PythonAdvanced #PythonProgramming
👍5
چقدر پایتون بلدید؟😁

👇👇👇جواب بدید 👇👇👇
2
دوستان برنامه‌نویس و کدنویس! 👩‍💻👨‍💻

یه روز دیگه رو با کلی کد و چالش‌های جدید پشت سر گذاشتیم. حالا وقتشه که یه نفس عمیق بکشیم و یه استراحت حسابی بکنیم.

یادتون نره:
- قبل از خواب، کدهاتون رو کامیت و پوش کنید! 📂
- لاگ‌ها و ارورها رو بذارید برای فردا، شب برای استراحت و ریکاوریه! 😴
- هر چقدر هم که باگ داشته باشه، پروژه‌تون پیشرفت کرده. همیشه به جلو حرکت کنید! 🚀

کدی که امروز نوشتیم، فردا دیباگ می‌کنیم. شب بخیر و به امید روزی پر از کدهای پاک و بی‌باگ!

#برنامه_نویسی #کدنویسی #شب_بخیر #استراحت #ریکاوری
👍5
رکورد ری‌اکشن رو بزنید 🤭
{رکورد قبلی -8-}
{رکورد جدید -11-}
👍74
صبح همتون بخیر دوستان ☕️
📚 دوره آموزش پایتون از 0 تا 100

پارت ۱۸: مدیریت حافظه و Garbage Collection در پایتون 🗑️🧠

در این پارت با مدیریت حافظه و مکانیزم Garbage Collection (GC) در پایتون آشنا می‌شویم. مدیریت حافظه یکی از مفاهیم مهم در برنامه‌نویسی است که به بهینه‌سازی عملکرد برنامه کمک می‌کند.

۱. مدیریت حافظه در پایتون 🧠

پایتون به طور خودکار مدیریت حافظه را انجام می‌دهد، به این معنی که به شما اجازه می‌دهد تا روی نوشتن کد تمرکز کنید بدون اینکه نگرانی از مدیریت دستی حافظه داشته باشید.

- فضای حافظه: هر متغیری که تعریف می‌کنید، فضایی در حافظه اشغال می‌کند.
- هندلینگ خودکار: پایتون به طور خودکار حافظه را تخصیص داده و آزاد می‌کند.

۲. Garbage Collection در پایتون 🗑️

Garbage Collection فرآیندی است که حافظه اشغال‌شده توسط اشیاء غیرقابل‌دسترسی (غیرقابل‌استفاده) را آزاد می‌کند. پایتون دارای یک garbage collector داخلی است که به طور خودکار این فرآیند را مدیریت می‌کند.

۲.۱. اصول اولیه GC

- تخصیص حافظه: هنگامی که یک شیء جدید ایجاد می‌شود، پایتون حافظه موردنیاز را به آن اختصاص می‌دهد.
- جمع‌آوری زباله: هنگامی که یک شیء دیگر قابل‌دسترسی نیست، garbage collector آن را پیدا کرده و حافظه را آزاد می‌کند.

۲.۲. روش‌های GC در پایتون

پایتون از دو روش اصلی برای جمع‌آوری زباله استفاده می‌کند:
- مرجع‌سنجی: هر شیء دارای یک شمارنده مرجع است که تعداد مراجع به آن را نگهداری می‌کند. هنگامی که شمارنده به صفر می‌رسد، حافظه آزاد می‌شود.
- چرخه‌یابی: پایتون از الگوریتم چرخه‌یابی برای شناسایی و آزاد کردن چرخه‌های مرجع که در آن دو یا چند شیء به یکدیگر ارجاع می‌دهند و هرگز آزاد نمی‌شوند، استفاده می‌کند.

۲.۳. استفاده از ماژول gc

ماژول gc در پایتون امکان کنترل و مشاهده وضعیت GC را فراهم می‌کند.

import gc

# فعال‌سازی جمع‌آوری زباله
gc.enable()

# غیر فعال‌سازی جمع‌آوری زباله
gc.disable()

# انجام یک چرخه جمع‌آوری زباله به صورت دستی
gc.collect()

# مشاهده وضعیت جمع‌آوری زباله
print(gc.get_stats())

۳. بهینه‌سازی استفاده از حافظه

برای بهینه‌سازی حافظه در برنامه‌های پایتون، می‌توانید به نکات زیر توجه کنید:

- استفاده از متغیرها و اشیاء بهینه: متغیرها و اشیائی که دیگر نیاز ندارید را آزاد کنید.
- اجتناب از ایجاد چرخه‌های مرجع: چرخه‌های مرجع باعث می‌شوند که garbage collector نتواند حافظه را آزاد کند.
- پایش و پروفایل حافظه: از ابزارهای مختلفی مانند memory_profiler برای پایش و تحلیل مصرف حافظه استفاده کنید.

from memory_profiler import profile

@profile
def my_function():
a = [i for i in range(10000)]
b = {i: i for i in range(10000)}
return a, b

if name == 'main':
my_function()

نکات مهم
- مدیریت حافظه: پایتون به صورت خودکار مدیریت حافظه را انجام می‌دهد.
- جمع‌آوری زباله: پایتون از تکنیک‌های مرجع‌سنجی و چرخه‌یابی برای جمع‌آوری زباله استفاده می‌کند.
- بهینه‌سازی: بهینه‌سازی مصرف حافظه با استفاده از ابزارهای مختلف و تکنیک‌های مدیریت حافظه.

این آموزش به شما کمک می‌کند تا با مفاهیم مدیریت حافظه و Garbage Collection در پایتون آشنا شوید و بتوانید برنامه‌های بهینه‌تری بنویسید. موفق باشید! 🌟

🔻آموزش های مفید بیشتر اینجاست

#پایتون #آموزش_پایتون #مدیریت_حافظه #GarbageCollection #PythonMemoryManagement #PythonProgramming
👍3
نکات پنهان پایتون 🔍🐍

دوستان عزیز برنامه‌نویس و علاقه‌مند به پایتون، سلام! 👋 امروز می‌خوایم یه سری پست‌های جذاب و سرگرم‌کننده رو شروع کنیم که توشون نکات و ترفندهای پنهان و کمتر شناخته‌شده‌ی زبان پایتون رو با هم به اشتراک بگذاریم. این نکات می‌تونن بهتون کمک کنن تا کدنویسی بهتری داشته باشین و بیشتر از قابلیت‌های این زبان محبوب استفاده کنین.

🔍 هر روز یک نکته پنهان پایتون
- هدف: آشنایی با ویژگی‌ها و ترفندهای ناشناخته‌ی پایتون.
- فواید: افزایش مهارت‌های برنامه‌نویسی و شناخت بهتر زبان پایتون.

📋 مثال‌هایی از نکات پنهان:
1. استفاده از تابع getattr() برای دسترسی پویا به خصوصیات و متدها:

   class MyClass:
def __init__(self, value):
self.value = value

def print_value(self):
print(self.value)

obj = MyClass(10)
method_name = "print_value"
getattr(obj, method_name)() # دسترسی به متد و اجرا

2. استفاده از تابع dir() برای مشاهده تمامی خصوصیات و متدهای یک شیء:

   obj = MyClass(10)
print(dir(obj))

3. استفاده از توابع لامبدا برای ساخت توابع ناشناس:

   add = lambda x, y: x + y
print(add(3, 5)) # خروجی: 8

🎯 هدف اصلی این پست‌ها:
- آموزش نکات پنهان پایتون به صورت ساده و کاربردی.
- افزایش دانش برنامه‌نویسی و بهره‌وری در کدنویسی.

با ما همراه باشید و هر روز یک نکته‌ی جدید یاد بگیرید!

#پایتون #برنامه_نویسی #نکات_پنهان #ترفندها #کدنویسی #آموزش
👍3
یدونه
print("متن بزارید😁")

کامنت بزارید😂❤️
👍21
آموزش ساخت تصاویر متحرک با پایتون بدون استفاده از فایل‌های تصویری 📽️

سلام دوستان! 🌟 امروز می‌خوایم یاد بگیریم که چطور با پایتون تصاویر متحرک (GIF) بسازیم بدون اینکه از فایل‌های تصویری استفاده کنیم. این آموزش جذاب و کاربردی می‌تونه به شما کمک کنه تا با استفاده از کدنویسی، انیمیشن‌های ساده و جالب خلق کنید. 🎉

مرحله 1: نصب کتابخانه‌های لازم 📦
قبل از هر چیز، باید کتابخانه‌های مورد نیاز رو نصب کنیم. خوشبختانه برای ساخت GIF متحرک، کتابخانه‌ی Pillow که یک کتابخانه‌ی داخلی برای کار با تصاویر هست، به کارمون میاد. برای نصب این کتابخانه، از دستور زیر استفاده کنید:

pip install pillow

مرحله 2: ایجاد تصاویر متحرک 🎨
حالا که کتابخانه‌ها نصب شدن، بریم سراغ نوشتن کد برای ایجاد تصاویر متحرک. در این مثال، ما یک دایره‌ی ساده که حرکت می‌کنه رو به صورت GIF ایجاد می‌کنیم. 🟠➡️

from PIL import Image, ImageDraw

# تنظیمات اولیه
width, height = 200, 200
frames = []

# ایجاد فریم‌ها
for i in range(20):
# ایجاد یک تصویر جدید
img = Image.new('RGB', (width, height), color='white')
draw = ImageDraw.Draw(img)

# محاسبه موقعیت دایره
x = 10 * i
y = 100

# رسم دایره
draw.ellipse((x, y, x + 20, y + 20), fill='blue')

# اضافه کردن فریم به لیست فریم‌ها
frames.append(img)

# ذخیره تصاویر به صورت GIF
frames[0].save('moving_circle.gif', save_all=True, append_images=frames[1:], duration=100, loop=0)

print("تصویر متحرک با موفقیت ایجاد شد! 🎉")

توضیحات:
1. تنظیمات اولیه: ما عرض و ارتفاع تصویر رو 200 پیکسل در نظر گرفتیم.
2. ایجاد فریم‌ها: در یک حلقه، 20 فریم برای انیمیشن ایجاد می‌کنیم. در هر فریم، یک دایره آبی در موقعیت متفاوتی رسم می‌کنیم.
3. ذخیره تصاویر به صورت GIF: در نهایت، فریم‌ها رو به صورت یک GIF ذخیره می‌کنیم. duration=100 مدت زمان نمایش هر فریم (100 میلی‌ثانیه) و loop=0 برای پخش بی‌نهایت GIF هست.

نتیجه نهایی 🎉
با اجرای کد بالا، یک فایل GIF به نام moving_circle.gif ایجاد می‌شه که می‌تونید اون رو در مرورگرتون یا هر نرم‌افزار نمایش GIF باز کنید و از انیمیشن لذت ببرید. این آموزش ساده به شما کمک می‌کنه تا پایه‌های ایجاد انیمیشن رو یاد بگیرید و پروژه‌های جالب‌تری درست کنید! 🌟

🔻بیا اینجا تا بیشتر یاد بگیری

امیدوارم این آموزش براتون مفید باشه. برای دریافت آموزش‌های بیشتر، کانال رو دنبال کنید و نظراتتون رو با ما در میون بذارید.

📚 #پایتون #آموزش #انیمیشن #کدنویسی
👍1
شرمنده دوستات نتونستم امروز پست بزارم اینارو دیگه قبول کنید از من
👍1
آموزش ساخت یک ویرایشگر متنی (Text Editor) با پایتون 📄🖥️

یکی از پروژه‌های جذاب و کاربردی در پایتون، ساخت یک ویرایشگر متنی ساده است. در این آموزش، از کتابخانه داخلی tkinter استفاده می‌کنیم تا یک رابط کاربری گرافیکی برای ویرایش متن ایجاد کنیم. این ویرایشگر می‌تواند متن را باز، ویرایش و ذخیره کند.

مرحله 1: نصب و وارد کردن کتابخانه‌ها 📚

ابتدا باید tkinter را نصب کنید. tkinter به طور پیش‌فرض با پایتون نصب می‌شود، بنابراین نیازی به نصب جداگانه نیست.

import tkinter as tk
from tkinter import filedialog
from tkinter import messagebox

مرحله 2: ایجاد پنجره اصلی 🖼️

یک پنجره اصلی برای ویرایشگر متنی خود ایجاد کنید.

def create_window():
window = tk.Tk()
window.title("Simple Text Editor")
window.geometry("800x600")

return window

مرحله 3: ایجاد منو 📜

یک منو برای باز کردن، ذخیره کردن و خروج از ویرایشگر ایجاد کنید.

def create_menu(window, text_widget):
def open_file():
file_path = filedialog.askopenfilename(filetypes=[("Text Files", "*.txt")])
if file_path:
with open(file_path, 'r') as file:
content = file.read()
text_widget.delete(1.0, tk.END)
text_widget.insert(tk.END, content)

def save_file():
file_path = filedialog.asksaveasfilename(defaultextension=".txt", filetypes=[("Text Files", "*.txt")])
if file_path:
with open(file_path, 'w') as file:
content = text_widget.get(1.0, tk.END)
file.write(content)

def exit_editor():
if messagebox.askokcancel("Quit", "Do you want to quit?"):
window.destroy()

menu = tk.Menu(window)
window.config(menu=menu)

file_menu = tk.Menu(menu, tearoff=0)
menu.add_cascade(label="File", menu=file_menu)
file_menu.add_command(label="Open", command=open_file)
file_menu.add_command(label="Save", command=save_file)
file_menu.add_separator()
file_menu.add_command(label="Exit", command=exit_editor)

مرحله 4: ایجاد ویجت متنی 🖋️

یک ویجت متنی برای نوشتن و ویرایش متن ایجاد کنید.

def create_text_widget(window):
text_widget = tk.Text(window, wrap='word')
text_widget.pack(expand=1, fill='both')

return text_widget

مرحله 5: اجرای برنامه 🚀

در نهایت، تمام قطعات را به هم متصل کنید و برنامه را اجرا کنید.

if __name__ == "__main__":
window = create_window()
text_widget = create_text_widget(window)
create_menu(window, text_widget)
window.mainloop()

نتیجه‌گیری 🌟

این ویرایشگر متنی ساده می‌تواند به شما در نوشتن و ویرایش متن کمک کند. با استفاده از کتابخانه tkinter، توانستیم یک رابط کاربری ساده و کارآمد ایجاد کنیم. امیدوارم این آموزش برای شما مفید باشد!


🔻اینجا کلیک کن تا بیشتر یاد بگیری

#پایتون #کدنویسی #آموزش #ویرایشگر_متنی #برنامه‌نویسی
👍2