🐍 Python & Raspberry 🐍
8.21K subscribers
1.92K photos
125 videos
623 files
1.23K links
Python- Raspberry Pi-AI-IOT
ادمین : فرهاد ناصری زاده
@farhad_naserizadeh
@farhad3412

گروه پایتون
@Python_QA
تبادل
@mmtahmasbi
کانال مرتبط
@new_mathematical
@micropython_iot
@c_micro
اینستاگرام
http://Instagram.com/python_raspberry
Download Telegram
اسکریپت تولید پسورد با پایتون + دانلود
https://arshatech.com/blog/coding/python/passgen-for-generating-passwords/

از طرف @arshatech_com

🔰 @raspberry_python
This media is not supported in your browser
VIEW IN TELEGRAM
استاد شفیعی کدکنی،آبروی ادبیات ایران
🔰 @raspberry_python
This media is not supported in your browser
VIEW IN TELEGRAM
آنالیر و مانیتور کردن حرکات دست به طور مکانیکی دیجیتالی!
🔰 @raspberry_python
This media is not supported in your browser
VIEW IN TELEGRAM
شیوه محاسبات ماشین حساب مکانیکی (1)
🔰 @raspberry_python
This media is not supported in your browser
VIEW IN TELEGRAM
شیوه محاسبات ماشین حساب مکانیکی (2)
🔰 @raspberry_python
Jason_Papathanasiou,_Nikolaos_Ploskas.pdf
2.1 MB
Multiple Criteria Decision
Aid Methods, Examples and
Python Implementations

🌟 انتشارات اشپرینگر 2018

🔰 @raspberry_python
یک بازی بسیار جالب و تحلیل آن توسط نظریه بازی ها
(من ک درس زندگی گرفتم)

https://ncase.me/trust/

@raspberry_python
آپدیت جدید پایتون ۳.۸
CPython Core Developer Sprint 2018

@raspberry_python
سنسور dht11 با raspberry pi

@raspberry_python
کد پایتون dht11

import Adafruit_DHT
sensor = Adafruit_DHT.DHT11

pin = 4

while True:
humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)

print('Temp={0:0.1f}*C Humidity={1:0.1f %'.format(temperature, humidity))

@raspberry_python
💐🍃🌿🌸
🍃🌺🍂 #xrandr #xorg #resolution #gtf #cvt #linux_command
🌿🍂 HOT TO CHANGE RESOLUTION USING XRANDR
🌸
#آموزش

🌟 روش تغییر اندازه تصویر مانیتور در توزیع های لینوکس با استفاده از دستور xrandr در محیط گرافیکی xrog

* این آموزش به دلیل اینکه کاربر دچار اشتباهی نشود به صورت (تقریبا) کامل توضیح داده شده.اگه نیاز دارید نگاه نکنید به اینکه طولانیه و بیخیال بشه.


۱- نکته : این آموزش فقط برای محیط گرافیکی xorg هست.
۲- نکته : این روش در صورتی جواب میده که شما از درایور گرافیکی آزاد پیشرفض استفاده کنید.
+ یعنی درصورتی که مثلا درایور کارت گرافیک nVidia رو نصب کرده باشید این روش بی تاثیره.

اول شما باید Mode اون resolution رو به دست بیارید. برای این کار میتونید از دو دستور :
gtf - cvt‍
استفاده کنید.
به این صورت :
(gtf|cvt) h-resolution h-resolution [refresh]

نکته : درصورتی که از دستور cvt استفاده کنید. وارد کردن refresh اختیاری هست ولی درصورتی که از دستور gft استفاده کنید. باید refresh رو وارد کنید. (برای توضیحات بیشتر به man page مراجعه شود)

مثلا درصورتی که ما بخوایم اندازه صفحه 1920x1200 با رفرش ریت 75 باشه. به این صورت وارد میکنیم :
(gtf|cvt) 1920 1200 75
در خروجی شما عبارت جلوی ModeLine را تا انتها کپی کنید.
نمونه :
"1920x1200_60.00" 193.25 1920 2056 2256 2592 1200 1203 1209 1245 -hsync +vsync
خب حالا باید با استفاده از دستور xrandr و سوییچ newmode این مد رو اضافه کنیم :
xrandr --newmode "1920x1200_60.00" 193.25 1920 2056 2256 2592 1200 1203 1209 1245 -hsync +vsync

نکته : برای اجرای این دستورات احتیاجی به دسترسی روت ندارید.

حالا بعد از اینکه اضافه شد شما باید این مد رو به خروجی مانیتور خودتون اضافه کنید.
برای اینکه اسم خروجی مانیتور رو پیدا کنید. دستور xrandr رو بدون هیچ ورودی اجرا کنید. خروجی زیر در سیستم من هست :
https://hastebin.com/ukoqahoqaq.css
همینطوری که میبینید جلوی
DVI-I-0
DVI-I-1

عبارت connected نوشته شده است. به این معنا که این خروجی ها در حال حاضر استفاده میشن.
ممکنه برای شما یکی باشه درصورتی که یک مانیتور داشته باشید.
حالا باید این اسامی (اسم) رو کپی کنید. و با استفاده از دستور xrandr و سویچ addmode مود مورد نظرمون رو به این خروجی مانیتور ها اضافه کنیم:
xrandr --addmode DVI-I-0 "1920x1200_60.00"
خب دیگه تموم شد !
حالا باید دوباره با استفاده از دستور xrandr و سوییچ output و mode مود رو فعالش کنیم :
xrandr --output DVI-I-0 --mode "1920x1200_60.00"
بعد از این دستور باید اون مد مورد نظر درصورتی که مورد قبول مانیتور باشه فعلا بشه.

خب تمام این دستوراتی که اجرا کردید به صورت موقتی اعمال شدن. برای اینکه شما این دستورات رو دائمی کنید باید اونارو توی یه فایل bash بنویسید و بزارید استارت آپ سیستم باشن.

نکته : میشه این دستورات رو توی فایل های .bashrc و امثال اینها گذاشت ولی عملکردشون توی توزیع های متخلف متفاوت هست.

من یه فایل به اسم xrandr درست کردم و اون دستورات رو داخلش گذاشتم :
xrandr.sh (https://hastebin.com/mumofafata.nginx) (https://hastebin.com/mumofafata.nginx)
بعد باید به این فایل دسترسی اجرایی بدید :
chmod u+x xrandr.sh
و بعد به استارت آپ سیستمتون اضافه کنید.

نکته : اضافه کردن به استارت آپ در محیط های گرافیکی مختلف متفاوت میباشد.

با تشکر از مهندس

@AhmadiNasab_Sg

🔰 @raspberry_python
💐🍃🌿🌸
🍃🌺🍂 #vim #vimrc #texteditor #linux_command
🌿🍂 VIM AND VIMRC
🌸
#آموزش

🌟ویرایشگر متنی vim

یک ویرایش گر بسیار قدرتمندی هست که خیلی مواقع میتونه به دادمون برسه.
شاید در اولین دیدار با vim کسی خاطره خوشی نداشته باشه. دلیلش اینکه vim یه محیط بسیار متفاوت و عالی تر نسبت به مابقی ویرایشگر های متن داره. توی این برنامه شما دو محیط command و insert دارید. که میتونید با استفاده از کلید Esc به محیط command برید.
فرض کنید که به شما یه سرور دادن که باید مدیریتش کنید از راه دور. شما دیگه توی اون سرور که محیط X ندارید که ویرایشگر گرافیکی باز کنید. برای همین مجبورید از vim استفاده کنید یا اینکه وقتی که کارخرابی کردید و دیگه توی سیستم خودتونم محیط X هم ندارید.

نکته : در توزیع های لینوکس شما محیط گرافیکی X را دارید. که جدیدا Wayland در حال توسعه است.

خب ! چند تا نکته در مورد این vim :
۱- برای اینکه وارد محیط insert بشید و متنی تایپ کنید کافیه که از روی صفحه کلید. کلید i رو بزنید.( قبلش با فشردن دکمه Esc از بودن در محیط command اطمینان حاصل کنید)

۲- برای اینکه از محیط insert خارج بشید. باید از کلید Esc استفاده کنید.

۳- وقتی هم که میخواید کلا از برنامه خارج بشید.
+ با استفاده از دستور q: از برنامه خارج میشید.
+ با استفاده از دستور
:q!
از ویرایشگر خارج میشید بدون اینکه تغییراتی که در فایل دادید ذخیره بشه.
+ با استفاده از دستور
:w
تغییراتی که داده اید در فایل ثبت میشن.
+ شما میتونید این دستورات رو هم ترکیب هم بکنید. مثلا با استفاده از ترکیب
:wq
تغییرات در فایل نوشته میشود و از ویرایشگر خارج میشوید.

۴- با استفاده از کامند dd شما یک خط رو دیلیت میکنید.
+ همچنین میتونید دستور بدید که چه تعداد خط پاک بشن. به این صورت که اول تعداد خطی که نیاز هست پاک بشه نوشته میشه و یعد دستور dd. مثلا برای پاک کردن ۱۰۰۰ خط :
1000dd

برنامه vim یه ویرایشگر قدرتمند هست. میتونید با تایپ دستور vimtutor یک دوره آموزشی vim را در کامند لاین ببینید :)
همچنین میتونید از این آموزش هم استفاده کنید.

همچنین آموزش های بسیار خوبی برای شخصی سازی vim توسط اقای علیرضا امیرصمیمی در وبلاگشون قرار داره.

همانطوری که میدونید هر برنامه ای تقریبا یه فایل کانفینگ برای خودش در دایرکتوری etc دارد. فایل کانفینگی که ما باش کار داریم در آدرس
/etc/vim/vimrc
قرار داره. این فایل کانفینگ های vim رو مشخص میکنه.
یکی از ساده ترین شخصی سازی که میتونید انجام بدید اینکه شماره خطوط رو اصافه کنید.
برای اینکار شما با استفاده از این دستور این فایل رو با استفاده از همین ویرایشگر باز میکنید :)
sudo vim /etc/vim/vimrc
و بعد با استفاده از کلید G (دقت کنید که حروف بزرگ است) به انتهای فایل برید و
۱- میتونید با استفاده از زدن کلید i و رفتم به محیط insert و ایجاد یه خط جدید ..
۲- میتونید هم از کلید o استفاده کنید که همزمان یک خط جدید ایجاد میکند و به محیط insert وارد میشد
(بعد از اینکه با استفاده از یکی از دوروش بالا یک خط جدید درست کردید) این دستور رو به این فایل اضافه کنید :
set number
و با استفاده از کلید Esc به محیط command برید و دستور wq: را بزنید تا فایل رو ذخیره و خارج بشود.
بعد از اینکه دوباره وارد این برنامه شدید میبینید که شماره خطوط هم وارد شده است.

درصورتی که یه کاربر توزیع های لینوکس هستید برنامه vim یک ابزار بسیار عالی هست که بسیار در روند کار های روزانه میتونه به شما کمک کنه.
با تشکر از مهندس
@AhmadiNasab_Sg

🔰 @raspberry_python
💐🍃🌿🌸
🍃🌺🍂 #regex #python #re
🌿🍂 REGULAR EXPRESSION
🌸
#آموزش

🌟عبارت با قاعده یا regex (رجکس)😍

فرض کنید میخواید توی یه عالمه صفحه بشمارید ببینید چند تا اسم علی هست ! یا اینکه فرض کنید شما یه سایتی دارید که میخواید اطلاعات این سایت رو بگیره و مقادیر خاصیش رو نمایش بده.

نکته : در اینجا قصد آموزش regex را نداریم. فقط در حد آشنایی با این ابزار قدرتمند مینویسیم.

یه مثال داغون بزنیم:) . فرض کنید. شما یه رشته ای به این صورت دارید :
hassan hossein ali ahmad ali sajad shabnam shaghayegh ali javad
میخواید ببینید داخل این رشته چه تعداد اسم وجود داره که ۳ حرف هست و اولشون با a هست.
و به الفرض که این رشته رو هم از یک سایتی خوندید. regex به این صورت میشه :
\sa..\s
به این صورت که میگیم اولش یه whit space هست و بعد حرف a و بعد دو تا کاراکتر (هرکاراکتری) و بعد دوباره یک white space.
میتونیم پیشرفته ترش هم بکنیم. مثلا بگید که اولش حتما باید یک حرف بزرگ بین A تا D باشه :
\s[A-D]..\s

رجکس ها چیز های ساده ای هستن. به راحتی میشه نوشتشون ولی متاسفانه به سختی میشه خوندشون.
اینجا با چند تا از مواردی که میشه در این regex استفاده کرد گفته میشه :

۱-با استفاده از d\ میتونید بگید که حداقل یک عدد بین ۰ تا ۹.
۲-با استفاده از w\ میگید که حداقل یک کاراکتر ASCII.
۳-با استفاده از s\ میگید که یک white space باشه.

۱-کاراکتر * مشخص میکنه که هر چند تا. یعنی ۰ تا n.
۲-کاراکتر + مشخص میکنه که حداقل یکی یا بیشتر.
+ مثلا میخواید بگید که درصورتی که یکی یا بیشتر کاراکتر a بود :
a+
+ یا اینکه میخواید بگید که حداقل هیچی یا هر تعداد کاراکتر a بود :
a*
3-کاراکتر ? میگه یا یکی یا هیچی.


این موارد یکی از ساده ترین مواردی درمورد regex بودن. شما میتونید برای اطلاعات بیشتر در به این لینک ها مراجعه کنید :
http://www.rexegg.com/regex-quickstart.html
https://www.regular-expressions.info/

خب ! تا اینچا با regex آشنا شدیم.
حالا روش استفاده از این ابزار توی python3 به این صورت هست که شما باید ابتدا کتابخونه re را به برنامه اتون اضافه کنید.
اینجا میخوایم یه نمونه ساده را پیاده کنیم.
مثلا فرض کنید که یه لیستی به این صورت دارید :
email = [
"g1999saeed@gmail.com",
"shaghayegh1989@gmail.com",
"jadijadi@yahoo.com",
"feredManesh@micro.edu",
"JustForTest@Org.ppn"
]
حالا شما میخواید با استفاده از regex سرویس دهنده های این ایمیل هارو به دست بیارید برای اینکار ما باید یه regex به این صورت بنویسیم :
@(.*\..*)

نکته با استفاده از ( ) یک گروه درست میکنیم .
کد برنامه ی ما به اینصورت میشه :
for item in email :
export = re.search('@(.*\..*)',item);
print ( export.group(1) );
که خروجی حاصل به این صورت میشود :
gmail.com
gmail.com
yahoo.com
micro.edu
Org.ppn

برای آشنایی بیشتر با روش استفاده از regex در پایتون به این لینک مراجعه کنید:
https://docs.python.org/3/library/re.html

با تشکر
@AhmadiNasab_Sg

🔰 @raspberry_python
#آموزش

تغییر محتوای یک لیست
numbers = [5, 8, 1, 3, 2, 6]

numbers[2] = 2*numbers[0]

print(numbers)

OUTPUT:

[5, 8, 10, 3, 2, 6]

❇️ @raspberry_python
https://trix-editor.org/
یک خبر خوب برا دوستانی ک طراحی وب میکنند
اگه خواستید یک تکست ادیتور داخل سایتتون بزارید میتوانید از این کد استفاده کنید که کلی ابزار و امکانات بهتون میده :)

https://github.com/basecamp/trix

@raspberry_python
Qt5 Python GUI Programming

کتابی جدید
🌟سال انتشار 2018

🔰 @raspberry_python