توی پایتون میتونید با استفاده از * اولین ایتم و اخرین ایتم و ایتم های وسط رو جداگانه بگیرید
#python
@CleverDevs
@CleverDevsGp
#python
@CleverDevs
@CleverDevsGp
برای دیکد و اینکد کردن متن توی پایتون میتونید از کد های زیر استفاده کنید
اینکد
دیکد
by @Mer_Py
#python
@CleverDevs
@CleverDevs
اینکد
import base64
encoded_data = base64.b64encode("Encode this text")
print("Encoded text with base 64 is")
print(encoded_data)
دیکد
import base64
decoded_data = base64.b64decode("RW5jb2RlIHRoaXMgdGV4dA==")
print("decoded text is ")
print(decoded_data)
by @Mer_Py
#python
@CleverDevs
@CleverDevs
👍17🤣6👌1🆒1
تو این پست میخوام درباره venv تو پایتون توضیح بدم
وقتی شما پایتون رو روی سیستمتون نصب میکنید کلی پکیج استاندارد هم همراهش نصب میشن ولی برای بیشتر پروژه ها شما باید یه سری پکیج های ثانویه رو هم با pip نصب کنید
وقتی پروژه هاتون پیچیده تر میشه اینکه بفهمید کدوم پکیج برا کدوم پروژهاس سخت تر میشه همچنین ممکنه پروژه های مختلف از ورژن های مختلف یک پکیج استفاده کنن
برای اینکه پروژه هاتون رو ساختارمند تر کنید باید برای هر پروژه یک محیط مجازی درست کنید (virtual environment ) این محیط در واقع یه کپی از پایتون اصلی نصب شده رو سیستمون هست و شما میتونید همه پکیجای مربوط به پروژتون رو اینجا نصب کنید و این پکیجا با پیکج های پروژه های دیگه تداخلی نخواهند داشت
با کامند زیر میتونید یه محیط مجازی جدید هرجا که خواستید درست کنید
document:
https://docs.python.org/3/library/venv.html
#python
@CleverDevs
@CleverDevsGp
وقتی شما پایتون رو روی سیستمتون نصب میکنید کلی پکیج استاندارد هم همراهش نصب میشن ولی برای بیشتر پروژه ها شما باید یه سری پکیج های ثانویه رو هم با pip نصب کنید
وقتی پروژه هاتون پیچیده تر میشه اینکه بفهمید کدوم پکیج برا کدوم پروژهاس سخت تر میشه همچنین ممکنه پروژه های مختلف از ورژن های مختلف یک پکیج استفاده کنن
برای اینکه پروژه هاتون رو ساختارمند تر کنید باید برای هر پروژه یک محیط مجازی درست کنید (virtual environment ) این محیط در واقع یه کپی از پایتون اصلی نصب شده رو سیستمون هست و شما میتونید همه پکیجای مربوط به پروژتون رو اینجا نصب کنید و این پکیجا با پیکج های پروژه های دیگه تداخلی نخواهند داشت
با کامند زیر میتونید یه محیط مجازی جدید هرجا که خواستید درست کنید
python -m venv /path/to/new/virtual/environment
document:
https://docs.python.org/3/library/venv.html
#python
@CleverDevs
@CleverDevsGp
🔥8👍4❤3🆒1
مدیریت مموری میتونه تاثیر بسزایی روی پرفورمنس اپلیکیشن شما داشته باشه .
توی پایتون شما میتونید با sys.getsizeof() ببیند هر متغیری چقدر از حافظه مموری رو اشغال کرده تا اگه متغیری مصرف بهینه ای نداشت بتونید کدتون رو اصلاح کنید و به برنامتون سرعت بدید
#python
@CleverDevs - @CleverDevsGp
توی پایتون شما میتونید با sys.getsizeof() ببیند هر متغیری چقدر از حافظه مموری رو اشغال کرده تا اگه متغیری مصرف بهینه ای نداشت بتونید کدتون رو اصلاح کنید و به برنامتون سرعت بدید
#python
@CleverDevs - @CleverDevsGp
👍15🔥4🆒4💯1
تو پایتون با این روش میتونید یه لیست بسازید و به تعداد دلخواه ایتم با مقدار اولیه توش بزارید
#python
@CleverDevs - @CleverDevsGp
#python
@CleverDevs - @CleverDevsGp
👍18🔥4❤🔥2❤1👎1
توی این پست میخوام درباره assert توی پایتون توضیح بدم
این کلیدواژه که کاربرد اصلی اون برای دیباگ کردنه
یه شرط میگیره اگه شرط true باشه شتر دیدی ندیدی اما اگه اگه شرط false باشه ارور میده و برنامه متوقف میشه
همچنین میتونید یه ارور مسیج کاستوم هم براش بزاید
مثال توی تصویر هم یکی از کاربرد های این کلیدواژه رو نوشته مثلا وقتی شما دارید یه فروشگاه با پایتون میزنید برا قسمت کد تخفیف اینطوری میتونید چک کنید که مبلغ بعد تخفیف کمتر از صفر یا بیشتر از مبلغ اصلی نباشه وگرنه AssertionError میده
#python
@CleverDevs - @CleverDevs
این کلیدواژه که کاربرد اصلی اون برای دیباگ کردنه
یه شرط میگیره اگه شرط true باشه شتر دیدی ندیدی اما اگه اگه شرط false باشه ارور میده و برنامه متوقف میشه
همچنین میتونید یه ارور مسیج کاستوم هم براش بزاید
Devs = "stupid"الان تعیین کردیم که اگه Devs برابر با Clever نبود ارور بده و متن ارور رو هم بعد کاما نوشتیم
assert Devs == "Clever","Devs must be clever"
مثال توی تصویر هم یکی از کاربرد های این کلیدواژه رو نوشته مثلا وقتی شما دارید یه فروشگاه با پایتون میزنید برا قسمت کد تخفیف اینطوری میتونید چک کنید که مبلغ بعد تخفیف کمتر از صفر یا بیشتر از مبلغ اصلی نباشه وگرنه AssertionError میده
#python
@CleverDevs - @CleverDevs
🔥11👍9⚡2
یکی از بچه های چنل یه چت بات ساده با پایتون نوشته که تایتل مقاله ویکی پدیا میگیره و در باره اون مقاله ازش سوال میپرسید
گیت هاب پروژه :
https://github.com/NextProduction/42
اگه هم خواستید تستش کنید فایل theproject42 رو به عنوان نوت بوک توی colab باز کنید و کد هاشو ران کنید
// شماهم اگه پروژه ای داشتید که خواستید معرفی کنید برام بفرستید@mmdrsdev
#python #ai
@CleverDevs - @CleverDevsGp
گیت هاب پروژه :
https://github.com/NextProduction/42
اگه هم خواستید تستش کنید فایل theproject42 رو به عنوان نوت بوک توی colab باز کنید و کد هاشو ران کنید
// شماهم اگه پروژه ای داشتید که خواستید معرفی کنید برام بفرستید
#python #ai
@CleverDevs - @CleverDevsGp
🔥15👍4🤣3⚡1
عبارت with توی پایتون چیه و به چه دردی میخوره؟!
عبارت with برای مدیریت کردن خطا بدرد میخوره و میتونه کدمون رو تمیز تر و قابل خوندن تر بکنه
مدیریت فایل ها و... رو راحت تر میکنه مثلا تو کد بالا سه تیکه کد داریم که همشون یه کار انجام میدن اما سومی هم راحت تره هم مطمئن تر مثلا برخلاف دوتای اولی تو سومی نیازی نیست file.close رو بنویسید و خود with زحمتش رو برامون میکشه
تو کد بالا قسمت اول که اصلا مستعد باگه و ولش کنید قسمت دوم اوکیه ولی خب کدمون رو سخت میکنه ولی وقتی از with استفاده کی هم باگ نداری و هم کدت اسون تره در واقع سومی در نهایت به دومی ترجمه میشه
اگه خواستید بیشتر در باره with statement بدونید مقاله زیر رو بخونید
https://www.geeksforgeeks.org/with-statement-in-python/
#python
@CleverDevs - @CleverDevsGp
عبارت with برای مدیریت کردن خطا بدرد میخوره و میتونه کدمون رو تمیز تر و قابل خوندن تر بکنه
مدیریت فایل ها و... رو راحت تر میکنه مثلا تو کد بالا سه تیکه کد داریم که همشون یه کار انجام میدن اما سومی هم راحت تره هم مطمئن تر مثلا برخلاف دوتای اولی تو سومی نیازی نیست file.close رو بنویسید و خود with زحمتش رو برامون میکشه
تو کد بالا قسمت اول که اصلا مستعد باگه و ولش کنید قسمت دوم اوکیه ولی خب کدمون رو سخت میکنه ولی وقتی از with استفاده کی هم باگ نداری و هم کدت اسون تره در واقع سومی در نهایت به دومی ترجمه میشه
اگه خواستید بیشتر در باره with statement بدونید مقاله زیر رو بخونید
https://www.geeksforgeeks.org/with-statement-in-python/
#python
@CleverDevs - @CleverDevsGp
👍20🔥6👎2👌1
یکی از چیزای باحالی که تو پایتون هست یه شعر به اسم zen of python هستش که اصول کد زدن درست رو توش گفته . ذن پایتون رو Tim Peters توی سال 2004 نوشته و تو پایتون گذاشته
برای دیدن ذن کافیه این تیکه کد زیر رو توی پایتون بنویسید
و این خروجی رو بگیرید
#python | peps
@CleverDevs - @CleverDevsGp
برای دیدن ذن کافیه این تیکه کد زیر رو توی پایتون بنویسید
import this
و این خروجی رو بگیرید
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
CleverDevs are better than other devs
#python | peps
@CleverDevs - @CleverDevsGp
😁26👍9👌3❤2👎1
توی پایتون همه دیتاها با آبحکت ها یا ارتباط بین آبجکت ها نشون داده میشن ; عجب زبونیه ، همش آبجکته. چیزایی مثل list , string , function توی پایتون آبجکت هستن
بر همین اساس ما یه تابع که آبجکت هست رو میتونم مثل هر ابجکت دیگه ای بریزیم توی یه متغیر دیگه یه نگاه به این کد بندازید
حالا میایم این تابع رو میریزیم توی یه تابع دیگه
دیدم که فانکشن دوم هم مث اولی درست حسابی کار میکنه اما اگه بیایم فانکشن اصلی رو با کلیدواژه del پاک کنیم چی میشه ؟
حالا پایتون میاد و به هر فانکشنی که میسازید یه هویت میده که میتونید با اتریبیوت name بهش دسترسی داشته باشید
همونطور که میبینید هویت فانکشن bark همون yell شد چون که دقیقا یه ابجکت رو کپی کردیم رو متغیر جدید پس اتریبیوت هاش هم تغییری نکردن
اما با اینکه name اسم فانکشن اصلی رو برمیگردونه تغییر تو نحوه صدا زدن فانکشن bark برامون ایجاد نمیشه
درواقع name برای دیباگ کردن بدرد میخوره
#python
@CleverDevs - @CleverDevsGp
بر همین اساس ما یه تابع که آبجکت هست رو میتونم مثل هر ابجکت دیگه ای بریزیم توی یه متغیر دیگه یه نگاه به این کد بندازید
def yell(text):
return text.upper() + '!'
>>> yell("cleverdevs")
CLEVERDEVS
حالا میایم این تابع رو میریزیم توی یه تابع دیگه
bark = yell
>>> bark('mammad')
MAMMAD
دیدم که فانکشن دوم هم مث اولی درست حسابی کار میکنه اما اگه بیایم فانکشن اصلی رو با کلیدواژه del پاک کنیم چی میشه ؟
>>> del yell
>>> yell('hello?')
NameError: "name 'yell' is not defined"
>>> bark('hey')
'HEY!'
حالا پایتون میاد و به هر فانکشنی که میسازید یه هویت میده که میتونید با اتریبیوت name بهش دسترسی داشته باشید
>>> bark.__name__
'yell'
همونطور که میبینید هویت فانکشن bark همون yell شد چون که دقیقا یه ابجکت رو کپی کردیم رو متغیر جدید پس اتریبیوت هاش هم تغییری نکردن
اما با اینکه name اسم فانکشن اصلی رو برمیگردونه تغییر تو نحوه صدا زدن فانکشن bark برامون ایجاد نمیشه
درواقع name برای دیباگ کردن بدرد میخوره
#python
@CleverDevs - @CleverDevsGp
👍22🔥4👌3❤1