🧑‍💻PythonDev🧑‍💻
342 subscribers
86 photos
3 videos
15 files
78 links
Python tips and tricks
The Good, Bad and the Ugly

📚توی این کانال فقط قرار هست در مورد core python صحبت کنیم.

👨‍💻این کانال یک بلاگ شخصی هست و پیرامون نظرات و چیزهایی که توی این چند سال کد زدن یاد گرفتم (فقط برای کمک به دوستان تازه‌کار)👨‍💻


@Mtio975
Download Telegram
✔️ استیبل بودن یا نبودن یک الگوریتم مرتب سازی

یکی از دسته بندی های موجود برای الگوریتم هایsort کردن، فاکتور stable بودن یا نبودن هست. به طور خلاصه به الگوریتمی میگن stable که:

موقع sort کردن یک لیست، اگه ۲ تا آیتم مساوی هم بودن، دقیقا به همون ترتیبی که توی لیست اولیه بودن، توی لیست مرتب شده هم ظاهر بشن.

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

lst = [
("Ashkan",17),
("Bahar",18),
("Sorena",17)
]
یک راه مرسوم اینه که به این روش sort رو انجام بدیم:
lst.sort(key=lambda x: (x[1], x[0]))
کاملا درسته و هیچ اشکالی نداره. بیشتر میخواستیم درباره موضوع پست صحبت کنیم.

آیا میتونیم فقط بیایم بر اساس آیتم دوم sort ش کنیم؟ این که خود لیست بر اساس حروف الفبا مرتب شده آیا کمکی میکنه؟ یعنی:
lst.sort(key=lambda x: x[1])
اگه بدونیم الگوریتمی که استفاده شده stable هست بله میتونیم و گارانتی هست که آیتم های مساوی به همون ترتیب در خروجی قرار میگیرن، و چون در حال حاضر بر اساس حروف الفبا مرتب شده هستن، اون افرادی که نمره ی برابر دارن اتوماتیک بر اساس حروف الفبا هم مرتب هستن.

خروجی هردو:
[
('Ashkan', 17),
('Sorena', 17),
('Bahar', 18)
]
پایتون از Tim Sort استفاده میکنه و stable هست.


چند تا از الگوریتم های مرتب سازی استیبل:
• Insertion Sort
• Merge Sort
• Bubble Sort
• Tim Sort
و نقطه‌ی مقابلشون:
• Heap Sort
• Selection Sort
• Quick Sort
🔶🔹File Handling🔹🔶

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

1. باز کردن فایل:
قبل از هر چیزی، باید فایل مورد نظر را باز کنید. این کار با استفاده از تابع open() انجام می‌شود. تابع open() پارامترهایی مانند نام فایل و حالت باز کردن را دریافت می‌کند. به طور مثال:


   file = open("example.txt", "r") # باز کردن فایل برای خواندن

در این مثال، فایل با نام "example.txt" برای خواندن باز شده است.

2. خواندن اطلاعات از فایل:
با داشتن فایل هندل، می‌توانید اطلاعات موجود در فایل را خوانده و استفاده کنید. برای خواندن اطلاعات، از توابعی مانند .read() و .readline() و .readlines() استفاده می‌کنیم. به طور مثال:


   content = file.read() # خواندن تمام محتوای فایل
line = file.readline() # خواندن یک خط از فایل
lines = file.readlines() # خواندن همه خطوط فایل و ذخیره آن‌ها در یک لیست


3. نوشتن در فایل:
اگر قصد دارید اطلاعاتی را در فایل بنویسید، باید فایل را در حالت مناسب باز کنید و از تابع write() استفاده کنید. به طور مثال:


   file = open("example.txt", "w") # باز کردن فایل برای نوشتن
file.write("Hello, World!") # نوشتن رشته در فایل


4. بستن فایل:
پس از اتمام کار با فایل، بهتر است آن را ببندید تا منابع سیستم را آزاد کنید. برای بستن فایل، از تابع close() استفاده می‌کنید. به طور مثال:


   file.close()


ضمناً، روش بهتری برای کار با فایل‌ها و مدیریت آن‌ها در پایتون، استفاده از بلوک with است. مزیت استفاده از این بلوک این است که به صورت خودکار فایل را ببندید و نیازی به صریحترین بستن فایل ندارید. روش استفاده از بلوک with به این صورت است:

with open("example.txt", "r") as file:
content = file.read()
# انجام عملیات مورد نظر
# فایل به طور خودکار بسته می‌شود


به خاطر داشته باشید که در حین کار با فایل‌ها، باید از نحوه‌ی باز کردن فایل، نوشتن و خواندن اطلاعات و بستن فایل به درستی اطمینان حاصل کنید تا از ایجاد خطاها و مشکلات جلوگیری شود.
🔶🔹Python String Formatting🔹🔶

به آرایه‌ای از کاراکترها که یک رشته نامیده می‌شود، "رشته" می‌گویند. یکی از قابلیت‌های پایتون، فرمت‌بندی رشته‌ها است که به شما امکان می‌دهد مقادیر مختلف را درون یک رشته قرار داده و آن را به صورت مطلوب قالب‌بندی کنید.

در پایتون، دو روش متداول برای فرمت‌بندی رشته‌ها وجود دارد:
۱. روش قدیمی: استفاده از عملگر % (عملگر قدیمی)
۲. روش جدید: استفاده از متد .format() (عملگر جدید)

از عملگر قدیمی % برای جایگذاری مقادیر در رشته استفاده می‌شود. این روش خاصیت وراثتی دارد که با فرمت‌بندی‌های متنوعی تعامل دارد. به طور مثال:

age = 25
name = "John"
message = "My name is %s and I am %d years old." % (name, age)
print(message)

Output: My name is John and I am 25 years old.

در عملگر جدید .format()، مقادیر را با استفاده از علامت {} در رشته قرار می‌دهیم و سپس این مقادیر را با استفاده از متد .format() تعیین می‌کنیم. به طور مثال:

age = 25
name = "John"
message = "My name is {} and I am {} years old.".format(name, age)
print(message)

Output: My name is John and I am 25 years old.

همچنین در روش جدید، می‌توانید با استفاده از شماره موقعیت مقادیر در .format()، ترتیب قرارگیری آن‌ها را تغییر دهید. به طور مثال:

age = 25
name = "John"
message = "My name is {1} and I am {0} years old.".format(age, name)
print(message)

Output: My name is John and I am 25 years old.

همچنین می‌توانید با استفاده از ویژگی‌های فرمت‌بندی مانند تعداد اعشاری که نمایش داده می‌شود، طول فیلد و... رشته را قالب‌بندی کنید. به طور مثال:

pi = 3.14159265359
formatted_pi = "{:.2f}".format(pi)
print(formatted_pi)

Output: 3.14

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

ضمناً در پایتون 3.6 و بالاتر، می‌توان از روش f-string استفاده کرد. این روش بسیار ساده و خوانا است و با استفاده از علامت f و داخل آن قرار دادن متغیرها، رشته را قالب‌بندی می‌کند. به طور مثال:

age = 25
name = "John"
message = f"My name is {name} and I am {age} years old."
print(message)

Output: My name is John and I am 25 years old.
🔷🔸Python Arrays🔸🔷

در پایتون، برای ذخیره و مدیریت داده‌ها، از ساختار داده‌ها استفاده می‌شود.
یکی از این ساختارها، آرایه (Array) است که نقطه قوت قابلیت ذخیره‌سازی داده‌های همنوع (داده‌هایی که همگی از یک نوع هستند) و دسترسی به عناصر با استفاده از شاخص‌ها است.

در پایتون، می‌توانیم از دو نوع آرایه استفاده کنیم: "لیست‌ها" (Lists) و "آرایه‌های numpy" (NumPy Arrays).

1. لیست‌ها:
لیست‌ها در پایتون یک ساختار داده پویا و چند منظوره هستند. با استفاده از لیست‌ها می‌توانیم داده‌های مختلف را در یک لیست ذخیره کنیم. برای ایجاد یک لیست، از علامت [] و اعضا را با کاما جدا می‌کنیم. مثال زیر روش‌های ساختن یک لیست را نشان می‌دهد:


   my_list = []  # ایجاد یک لیست خالی
my_list = [1, 2, 3, 4, 5] # ایجاد لیست با مقادیر اولیه
my_list = ['apple', 'banana', 'cherry'] # لیستی از رشته‌ها


لیست‌ها می‌توانند انواع مختلف داده‌ها را شامل شوند، مانند اعداد، رشته‌ها، لیست‌های دیگر و حتی ترکیبی از انواع مختلف. البته، در لیست‌ها همچنین می‌توانیم به عناصر با استفاده از اندیس (شاخص) دسترسی پیدا کنیم و در عملیات‌هایی مانند اضافه کردن، حذف، تغییر و مرتب‌سازی عناصر لیست، تغییراتی ایجاد کنیم.

2. آرایه‌های numpy:
آرایه‌های numpy یک کتابخانه پرکاربرد در پایتون هستند که مفهوم آرایه را گسترش می‌دهند. این کتابخانه امکانات بسیاری را برای عملیات عملیاتی، ریاضیاتی و استنباطی روی داده‌های چند بعدی فراهم می‌کند. برای استفاده از آرایه‌های numpy، ابتدا باید کتابخانه را با دستور import numpy as np وارد کنیم.

برخلاف لیست‌ها، آرایه‌های numpy باید از مقداردهی اولیه داده‌ها با استفاده از توابع خاصی مانند numpy.array() استفاده کنند. مثال زیر نشان می‌دهد که چگونه یک آرایه یک بعدی از لیست‌ها ایجاد کنیم:


   import numpy as np

my_array = np.array([1, 2, 3, 4, 5]) # ایجاد یک آرایه یک بعدی


آرایه‌های numpy قابلیت‌های بسیاری دارند، از جمله عملیات ریاضی و آماری، شاخص‌گذاری و برش، تبدیلات شکل و بسیاری دیگر.

در نتیجه، آرایه‌ها در پایتون ابزارهای قدرتمندی هستند که به ما امکان می‌دهند داده‌ها را سازماندهی و برای آن‌ها عملیات مختلفی انجام دهیم. 🦦📊

#FXL
#numpy
#Python_Arrays
🔷🔸Python PIP🔸🔷

به معنای "PIP Installs Packages." است. PIP یک سیستم مدیریت بسته‌ها در Python است که برای نصب و مدیریت بسته‌های نرم‌افزاری در Python استفاده می‌شود.

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

شما می‌توانید با استفاده از دستورات PIP، بسته‌های مورد نیاز خود را از Python Package Index (PyPI) دانلود و نصب کنید. PyPI یک مخزن در اینترنت است که بسته‌هایی را که توسط جامعه Python توسعه داده شده‌اند، میزبانی می‌کند.

بعضی از دستورات متداول PIP عبارتند از:

- pip install package_name: برای نصب یک بسته از PyPI.
- pip uninstall package_name: برای حذف یک بسته نصب شده.
- pip freeze: نمایش لیست تمام بسته‌های نصب شده به همراه نسخه آن‌ها.
- pip list: نمایش لیست بسته‌های نصب شده.
- pip show package_name: نمایش اطلاعات جزئیات یک بسته نصب شده.

همچنین، می‌توانید با استفاده از فایل requirements.txt، لیستی از بسته‌های مورد نیاز خود را جهت نصب و استفاده توسط PIP تعریف کنید.

پیشنهاد می‌شود قبل از استفاده از PIP، نسخه‌ی مناسبی از Python را نصب کنید و مطمئن شوید که محیط Python شما از PIP پشتیبانی می‌کند. 🐍📦


#FXL
در اینجا دو مثال ساده برای استخراج اطلاعات از یک وب سایت با استفاده از پایتون و کتابخانه beautifulsoup رو برای شما آوردم:

مثال 1: استخراج عنوان های خبرها از یک سایت خبری

import requests
from bs4 import BeautifulSoup

# ارسال درخواست به صفحه وب و دریافت پاسخ
response = requests.get('https://example.com/news')

# بررسی وضعیت درخواست
if response.status_code == 200:
# پارس کردن محتوای صفحه وب
soup = BeautifulSoup(response.text, 'html.parser')

# استخراج عنوان های خبرها
news_titles = soup.find_all('h2', class_='title')

# چاپ عنوان های خبرها
for title in news_titles:
print(title.text)
else:
print('درخواست موفقیت‌آمیز نبود.')


مثال 2 : استخراج قیمت ارزها از یک سایت ارزی

import requests
from bs4 import BeautifulSoup

# ارسال درخواست به صفحه وب و دریافت پاسخ
response = requests.get('https://example.com/currency')

# بررسی وضعیت درخواست
if response.status_code == 200:
# پارس کردن محتوای صفحه وب
soup = BeautifulSoup(response.text, 'html.parser')

# استخراج قیمت ارزها
currency_prices = soup.find_all('span', class_='price')

# چاپ قیمت ارزها
for price in currency_prices:
print(price.text)
else:
print('درخواست موفقیت‌آمیز نبود.')


لطفاً توجه داشته باشید که شما باید آدرس وب سایت مورد نظر خودتونو در توابع requests.get() قرار بدید و الگوهای HTML مورد استخراج رو براساس وب سایت خود تنظیم کنید.
همچنین، ممکنه برای استخراج اطلاعات از وب سایت خاصی نیاز به استفاده از تکنیک‌ها و قوانین خاص داشته باشید که برای هر مورد باید اونهارو بررسی کنید. 🕵️‍♀️


#FXL
#Web_scraping
#پایتون_پیشرفته
#استخراج
PythonNotesForProfessionals.pdf
6.1 MB
یادداشت‌هایی از پایتون برای حرفه‌ای‌ها:

یک کتاب کامل برای یادگیری و مرور نکات پایتون که توش از مفاهیم ساده مثل انواع داده و توابع تا مباحث پیچیده گفته.
🔹 امنیت پایتون

درباره امنیت پایتون باید بگم که این زبان برنامه‌نویسی یک مجموعه‌ای از ابزارها و روش‌های خوبی رو برای افزایش امنیت برنامه‌های اون ارائه میده.
در زیر به توضیحات بیشتری درباره این موضوع می‌پردازم:

1. رمزنگاری (Encryption): پایتون امکان استفاده از الگوریتم‌های رمزنگاری مختلف مانند RSA، AES و HMAC رو فراهم می‌کنه. این الگوریتم‌ها می‌تونن در ارتباطات امن، ذخیره سازی اطلاعات حساس و سایر موارد مورد استفاده قرار بگیرند.

2. اعتبارسنجی و ورود به سیستم (Authentication and Login): پایتون دارای کتابخونه‌های مختلفی مانند Flask-Login و Django Authentication هست که امکانات کاملی برای اعتبارسنجی و ورود به سیستم رو فراهم می‌کنن.
این کتابخونه‌ها شامل امکانات مانند مدیریت کوکی‌ها، نگهداری رمزنگاری شده رمزعبور و مکانیزم‌های امنیتی برای جلوگیری از حملات سرقت حساب کاربری می‌شوند.

3. حفاظت در برابر تزریق کد (Code Injection Prevention): با استفاده از تکنیک‌هایی مانند استفاده از عملکردهای پیش‌فرض امن به جای توابع اشیا از رشد، استفاده از سنتکس‌های امن مانند f-string برای ایجاد رشته‌ها و استفاده از توابع امن برای دسترسی به پایگاه داده، پایتون میتونه در مقابل تزریق کد و جلوگیری از حملات تزریق SQL و تزریق کد خطرناک دیگر مقاومت نشون بده.
4. شبه‌کد نویسی: پایتون معمولاً برای نوشتن کدها و الگوریتم‌های پیچیده استفاده میشه.
با توجه به اینکه پایتون یک زبان شبه‌کدی هست، عموماً نیازی به نگرانی از خطرات امنیتی مربوط به زبان‌های کامپایل شده نیست.
اما باید بهبود امنیتی رو در نظر داشته باشید و به روزرسانی‌های امنیتی پایتون اعتنا کنید.

5. پکیج‌های استاندارد: پایتون با داشتن یک مجموعه وسیعی از پکیج‌های استاندارد، امکانات امنیتی فراوانی رو ارائه میده.
مثلاً کتابخونه‌هایی مانند hashlib برای رمزنگاری و هش، ssl برای ارتباطات امن و secrets برای مدیریت رازها و کلیدها به کار می‌روند.

6. آسیب‌پذیری‌های معروف: هر زبان برنامه‌نویسی ممکن است به آسیب‌پذیری‌های خاصی آسیب‌پذیر باشد.
چند وقتی بود خیلی جاها میدیدم دوستان زیادی سوال میکردن یا دنبال تحقیق بودن که اصلا چه دلیلی داره ما وارد زبان #پایتون بشیم؟
تو این چند روز میخواستم در جواب به این سوال این متن رو آماده کنم که زیاد وقت نمیکردم اما الان میخوام نظر خودم رو بگم.
اولا اینکه دوستان انتخاب زبان نباید به گفته بقیه یا رسانه ها باشه حتما باید بر اساس نیاز و علاقه خود شخص شما باشه. چرا که شما بر اساس حوزه کاری تون زبان مناسب رو انتخاب می‌کنید.
اگر بخوام مثال بزنم زبان #انگلیسی در دنیا زبان اول هست هرکس این زبانو بلد باشه قطعا تو هیچ کشوری گیر نمیکنه ولی یسری شرایط هستن که مجبور میکنه شما از زبان دیگه ای استفاده کنید مثلا روسیه، آلمان یا نوروژ و... شرطی که دارن برای اقامت تحصیلی و کاری حتما باید زبان محلی اون کشور رو بلد باشید.
این یعنی شما مجبور میشید به غیر از انگلیسی زبان دیگری رو نیز یاد بگیرید.

حالا این امر توی برنامه نویسی هم هست اگر علاقه شما به هر دلیلی پایتون هست و ورود کردید ادامه بدید تا آخر ول نکنید از این شاخه به اون شاخه نپرید بعد که حداقل به جایی رسیدید اونجا تصمیم بگیرید که میخواید تغیر بدید یا نه حالت چرا باید تا ته بریم؟
پایتون یک زبان شی گرا، راحت، مفسری و دارای کتابخونه های گسترده و همچنین زبان سطح بالا هست.
پایتون تو حوزه های مختلفی استفاده میشه مثل هوش مصنوعی، دیتا، وب و... اما این نیاز یک #بیزینس هست که تکنولوژی رو انتخاب میکنه که با #جنگو) یکی از فریم ورکای پایتون برای بکند وب هست(بره جلو یا با فریم ورک دیگه یا با #پایتون جلو بره یا زبان دیگه.
پس اگر وارد یک حوزه یا زبانی میشید سعی کنید اول تمامش کنید تمام کننده یک راهی که شروع کردید خیلی مهم و موثر هست بعد ببینید شا قراره تو اون حوزه بمونید یا نه.
برای برنامه نویسی قطعا برای شروع شما باید اول از زبان های راحتی مثل پایتون، سی شارپ)حالا شاید فکر کنید سی شارپ راحت نیست ولی برای شروع مثل پایتون خوبه(شروع کنید سپس بریم سراغ زبان های پیچیده مثل سی و....
پس سعی نکنید وسط راه مسیرتون رو عوض کنید. و درنهایت برای اینکه خبره بشید تو اون حوزه سعی کنید شورشو دربیاری انقد بخونید، مطالعه کنید تمرین کنید که صاحب نظر اون حوزه بشید. یادتون باشه همه چی با خوندن نیست بعضی جاها ممکنه با 10 تا کتاب خوندن هم نتونید یه مورد رو درک کنید خیلی چیزا به تمرین و تجربه هم بستگی دارن تا شما تجربه نکنید تمرین نکنید نمی‌تونید اون مسئله رو حل کنید.

قبل از همه اینا که دوس داشتم آخر این متن بنویسم تقویت زبان انگلیسی تون هست که حتما حتما باید منابع رو به زبان اصلی بخونید و این خیلی کمک کننده هست براتون.
پس اگر یکی میگه پایتون بدرد نمیخوره مطمئن باشید تو بیزینس اون شخص بدردش نخورده و ممکنه بالعکس باشه و در بیزینس شما زبان دیگه ای بدرد نخوره!
و اینم بگم خیلیا میگن چرا خیلی از بیزینس ها با زبان های دیگه ای نوشته شده.
دوستان اکثر بیزینس ها چون در زمان های گذشته نوشته شدن یا قدیمین دیگه نمیصرفه بیان تکنولوژی عوض کنن یا هزینه کنن حتی میتونه ریسک هم باشه و جرات نمیکنن این کار رو بکنن پس اینم مقایسه نکنید چرا فلان بیزینس که مربوط میشه به 20 سال پیش با فلان زبان نوشته شده!
آموزش_پایتون_در_قالب_100_تا_تمرین_و_ترفند.pdf
1008.7 KB
آموزش پایتون در قالب 100 تا تمرین و ترفند به همراه پاسخ از مزیت های پایتون این هست که برای انجام هر کاری، کتابخونه و ترفند خاص خودش وجود داره و لازم نیست برای کارهای پیچیده کدهای زیادی نوشت بلکه فقط کافیه ترفندها و دستورات کلیدی این زبان رو یاد گرفت. توی این کتاب 100 تا ترفند و تمرین به همراه سورس کدهاش توی پایتون وجود داره
حالا برای اینکه به نویسندش برنخوره اسمشم میزنم اونم عشق کنه
نویسنده : Arjun Panwar
سلام دوستان
من برگشتم

آقا یکی دو نفرتون از من پرسیده بودید چطوری می تونیم فایل پایتونو به اپ تبدیل کنیم که آموزشش خیلی راحته کافیه دوتا دستور زیر رو تو ترمینال سیستمت بزنی :

pip install pyinstaller نصب پکیج
pyinstaller name.py —onefile تبدیل به فرمت برنامه

اما موضوعی که می تونه جالب باشه اینه که این روش فایل پایتون رو به فرمت اجرایی سیستم خودتون تبدیل می کنه (یعنی اگر روی ویندوز این کار رو انجام بدید خودکار بهتون exe تحویل می ده)

سوال اینه که چی کار کنیم فرمت اپ یک سیستم عامل دیگرو بده مثلا چجوری وقتی سیسم عاملمون ویندوز هست ، فایل پایتون رو تبدیل به برنامه لینوکس بکنه

تو کامنتا نظراتتون رو بگید

#def
پس از یادگیری #جنگو به صورت متوسط، چه ابزار های دیگه ای رو میتونم یاد بگیرم؟
(فقط در صورت نیاز یا برای مطالعه بیشتر)

1.  Django Rest Framework (DRF)
2.  Docker
3.  Class-Based Views (CBV)
4.  Django Allauth
5.  Django Simple JWT
6.  Celery
7.  Redis
8.  RabbitMQ
9.  Django Guardian
10.  Django Rest Framework JWT
11.  Django Q
12.  Django Taggit
13.  Sentry
14.  ELK Stack (Elasticsearch, Logstash, Kibana)
15.  Prometheus
16.  Grafana
17.  Django Websockets
18.  Django Channels
19.  Django Haystack
20.  Django REST Swagger
21.  Django Storages
22.  Django Compressor
23.  New Relic
24.  Django Sitemap
25.  django-cors-headers
26.  Django CORS Headers
27.  Django Debug Toolbar
28.  django-silk
29.  Django Elasticsearch DSL
30.  Django REST framework filters
با چند تا مثال regex رو یاد بگیر‌(قسمت اول)

1. پترن ما این هستش که توی متن hello داشته باشه:
Pattern := "hello"


2. به بزرگ و کوچیک بودن حروف حساس نباشه:
برای این موارد یه سری flag هایی رو regex در اختیار ما قرار داده. برای اینکه به بزرگ و کوچک بودن حروف حساس نباشه از فلگ i استفاده می کنیم:
Pattern := "(?i)Hello"


3. اول متن با hello شروع بشه و به بزرگ و کوچیک بودن حروف حساس نباشه:
Pattern := "(?i)^hello"

برای اینکار اول الگو از ^ استفاده میکنیم.

4. اول هر خط با hello شروع بشه:
تو مثال قبلی گفتیم اول متن hello باشه اما اینبار اول هر خط رو میخوایم حساب کنیم. برای اینکار از فلگ m استفاده می کنیم که به معنی این است روی چند تا خط ^ و $ رو اعمال کن. همچنین از فلگ g که مخفف global هست، استفاده میکنیم‌ که بعد از پیدا کردن اولین نتیجه return نکنه و بره بقیه متن رو هم بگرده(توی هر زبان به یه شکلی فلگ هارو میدیم)

نکته:
اگه بخوایم بجای اینکه اول رشته با الگو ما تطابق داشته باشه، آخر خط و یا رشته رو چک کنیم، بجای ^ آخر الگو میایم $ قرار میدیم:
pattern := "hello$"


5. کاراکتر اول h باشد، کاراکتر دوم هرچیزی باشه فرقی نمیکنه و کاراکتر های بعدی llo باشد:
Pattern := "h.llo"

با استفاده نقطه مشخص میکنیم هر کاراکتری باشه فرقی نمیکنه.

6. فقط حروف کوچک انگلیسی:
Pattern:= [a-z]

داخل براکت میتونیم مشخص کنیم که چه کاراکتر هایی توی الگو ما هستش. ما اینجا میتونستیم تمامی حروف کوچک انگلیسی را بنویسیم(abcdefghi...) اما بجایش به این صورت نوشتیم که از a تا z باشد.

7. حروف انگیسی باشد و به بزرگ و کوچک بودن حساس نباشد. همچنین اعداد 0 تا 9 را هم داشته باشد:
Pattern := "(?i)[a-z0-9]"

همچنین میتوانیم از فلگ استفاده نکنیم و داخل براکت مشخص کنیم حروف بزرگ هم هستش:
Pattern := [a-zA-Z0-9]


#Regex
1
چرا conda استفاده کنیم؟؟؟


اول اینکه نوع پایتون رو هم خودش براتون بالا میاره حین ساخت محیط و شما دیگه درگیر پیچیدگی و هندل کردن نصب و مدیریت چند نسخه مختلف پایتون نمیشید و حتی کار کردنش باهاش از pyenv راحت تره و عوض کردن نسخه پایتونش هم راحت تره

conda create -n MyENV python=3.8
دوم اینکه محیطی که براتون میسازه رو داخل home شما و در دایرکتوری مخصوص خودش میسازه و نه در مسیر جاری شما خب این مزیتش این هست که شما راحت هرجا باشید میتونید ۱-سریع فعال و ۲-غیرفعال و یا محیط خودتون رو تغییر بدید و یا بدون دغدغه نسبت به محل قرارگیریش محیط جدید بسازید و ۳-حذف هم کنید و بین محیط‌های مختلف راحت سویچ کنید

1- conda activate my_env

2- conda deactivate

3- conda env remove -n MyENV
مورد بعدی هم اینکه:
۱-نصب پکیج هم داخلش راحته
۲-و علاوه بر خودش میتونید از pip هم استفاده کنید
۳- همچنین بروز رسانی پکیج
1- conda install PackName

2- pip install PackName

3- conda update PackName
۱-لیست پکیج‌های نصب شده رو هم میتونید ببینید
۲-و یا یک فایل حاوی ادرس‌های آن جهت نصب بسازید
۳-و یا بصورت yaml براتون قرار میده که از دو بخش تشکیل شده پکیج‌هایی که خودش نصب کرده و پکیج‌هایی که با pip نصب شده

1- conda list

2- conda list --explicit

3- conda env --export > requirements.yml
که بالطبع میتونید اون رو هم در یک محیط دیگه نصب کنید
conda create -f requirements.yml

conda create -n MyENV -f requirements.yml
گفتیم همه محیط‌ها رو در یک مسیر قرار میده که با دستور زیر هم میتونید لیست همه محیط هاتون رو ببینید

conda env list
۱- اگه بخواید یک‌محیط رو‌حذف کنید ۲-یا یک پکیج رو حذف کنید
1- conda env remove -n MyENV --all

2- conda remove PackName
برای دیدن اطلاعات مربوط به محیط تون
conda info
جهت تست و بررسی سلامت محیط
conda doctor
جهت تغییر نام محیط با شرط فعال نبودن محیط تون
conda rename 
۱-جستجوی پکیج با نمایش تاریخچه تگ آن
۲-مشاهده وابستگی های آن
۳-مشاهده پکیج‌ها استفاده کننده آن
1- conda search PackName

2- conda repoquery depends PackName

3- conda repoquery whoneeds PackName
ادغام محیط شل با conda
conda init bash
پاک کردن پکیج‌های نا استفاده
conda clean
برای کانفیگ از قبیل محیط نصب، پکیج‌ها محدودیت دانلود و ...
conda config

conda config --help

موضوع جالب اینکه هنگام نصب پکیج تمام وابستگی‌ها رو اجرایی میکنه و نصب و حتی اگه نیاز به نسخه دیگری از پایتون باشه اون رو downgraid میکنه که منجر میشه تا حد ممکن براتون خطایی رخ نده و دردسر نکشید
👍2
📌 چند سخن در حوزه برنامه نویسی


#تلنگر
شاید من بی عیب نباشم
    قطعا تو هم نیستی ...
پس برو و به جای شماردن و مسخره  کردن
    عیب های من ...
به عیب های خودت رسیدگی کن ...
( مخصوص کسایی که فقط بلدن از بقیه سوتی بگیرن و هر هر بهش بخندن )

#تلنگر
صحبت کردن ساده است.
          اما ....
                   کدت رو نشون بده!

#تلنگر
هر کسی می‌تواند کدی بنویسد که یک کامپیوتر آن‌را درک کند. یک برنامه نویس خوب کدی را می‌نویسد که برای سایر همکارانش قابل درک باش

#فان
شازده کوچولو: چکار کنم که هیچ وقت کدم باگ نده ؟!
روباه: برو زبان HTML کار کن.

#فان
اگر درست کار نکرد نگران نباشید. اگر همه چیز درست بود، بیکار بودید.

#فان
تفوات جاوا و جاوا اسکریپت همان چیزی است که ماشین برای فرش است.

#فان
سنجش ​​پیشرفت برنامه نویسی با خطوط کد مانند اندازه گیری پیشرفت ساخت هواپیما بر اساس وزن آن است.

#تجربه
ناراضی ترین مشتریان شما بزرگترین منبع یادگیری شما هستند.

#تجربه
یک راه آسان و یک راه سخت وجود دارد. بخش سخت، یافتن راه آسان است.

#تجربه
برنامه نویسی مانند هرکار دیگری در ظاهر آسان، در باطن سخت است.

#آزار_دهنده
کم ارزش و بی ارزش نشان دادن کار شما با جملاتی مانند: این کار سختی نیست! کار خاصی انجام ندادید! یک پروژه ساده و آسان میخواهم(با سه صفحه توضیحات کارفرما)

#آزار_دهنده
یک پروژه ای دارم با این مشخصات( دو صفحه شرح پروژه ) با این مقدار بودجه ( 1/10 قیمت واقعی )

#آزار_دهنده
کسانی که پروژه ها را با 1/3 قیمت واقعی انجام می‌دهند.
🔰 12 نکته برای تبدیل شدن به یک برنامه‌نویس حرفه‌ای پایتون

💠 نکته 1: مخزن گیت‌هاب خودتان را بسازید

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

💠 نکته 2: کد‌های با خوانایی بالا بنویسید

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

تورفتگی
زبانه‌ها و فضاها
حداکثر طول خط
چگونگی شکستن خطوط 
خطوط خالی
کدگذاری فایل منبع
نقل قول‌های رشته‌ای
فضاهای سفید در عبارات
به‌کارگیری درست ویرگول 
قراردادهای نامگذاری

💠 نکته 3: مستندات مناسب ایجاد کنید

مستندات مناسب به بهبود خوانایی کدها کمک می‌کنند. به خاطر داشته باشید که باید یک فایل README را در مخزن گیت‌هاب خود قرار دهید. فایل README باید حاوی اطلاعات مقدماتی در مورد پروژه شما باشد. به‌طور مثال، پروژه چه کاری انجام می‌دهد، از چه کتابخانه‌هایی در پروژه استفاده کرده‌اید و غیره. فایل README برای خوانندگانی مفید است که می‌خواهند از کدهای شما نکات جدیدی یاد بگیرند یا سعی کنند کدها را به شکل دیگری اجرا کنند.

💠 نکته 4: کدهای دیگران را با مهارتی که دارید مطالعه کنید 

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

💠 نکته 5: کتاب‌های منتشر شده در مورد پایتون را مطالعه کنید

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

💠 نکته 6: سطح مهارت‌های خود در مورد پایتون را ارتقا دهید

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

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

💠 نکته 7: سعی کنید در زمینه هوش مصنوعی و یادگیری ماشین با پایتون به سطح بالایی از دانش برسید

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

ادامه مطلب ... 👇👇👇