توی این پست قراره بپردازیم به ادامه آموزش کتابخونه های پایتون
قراره یاد بگیریم که چطور میشه از DateTime استفاده کرد ، یا اصلا کاربردش چیه و ...
کاربرد این کتابخونه همونطور که از اسمش مشخصه ، برای کار کردن با تاریخ و زمان و ... هستش
مثلا میتونیم به ویروسمون دستور بدیم که اگه تاریخت برابر با فلان چیز شد
فلان عمل رو انجام بده و ...
بازم مثل قبل میگم ...
من اینجا سعی میکنم توابع و کلاس های مهم رو بگم و بقیش رو خودتون باید پیگیر باشین ...
اول از همه باید کتابخونه ی مورد نظرش رو import کنیم
import datetime
میتونیم تاریخ امروز سیستم رو بیرون بکشیم
t_day = datetime.date.today()
print(t_day)
میتونیم اگه به تاریخ و ماه و روز اگه بصورت تنهایی نیاز داشتیم که بگیم اگه به فلان چیز رسیدی فلان کار رو انجام بده بصورت پایین کد مینویسیم
date = datetime.datetime.today()
print (date.year)
print (date.month)
print (date.day)
حالا خروجی کد پایین رو هم یه نگاه بندازین !
date_time = datetime.datetime.today()
print (date_time.ctime())
این کتابخونه یه سری قالب هایی برای خودش داره
مثلا میتونیم اسم هفته ای که توش هستیم رو بدست بیاریم و ... که چون کم نیستن من فقط یه مثالشو میگم
اما اگه تو نت سرچ کنین لیست خوبی در این مورد گیر میارین !
مثلا من اسم روزی از هفته رو میخوام که الان توش هستم
اونموقع میتونم از قالب a% استفاده کنم که شما هم به جای a% ، میتونین اسم قالب رو که تو نت پیدا کردین ، وارد کنین ...
print(datetime.datetime.today().strftime("%a"))
خب دیگه از بحث تاریخ که بکشیم بیرون
میرسیم به ساعت و ... که مثلا بگیم فلان ساعت فلان کار رو انجام بده
میتونیم از کد پایین استفاده کنیم
time = datetime.time(1,2,3)
print (time)
حالا با یه سری تغییرات و ... میتونیم تبدیل به رشته کنیم و با split کردن که یکی از توابع رشته ها هسسش :)
توی این پست از کار با ماژول ها قراره با کتابخونه ی platform توی پایتون کار کنیم که اطلاعاتی رو در رابطه با سیستم در اختیارمون میزاره
یاد گرفتن این کتابخونه هم سادست و کاربرد خیلی زیادی داره
اول از همه کتابخونه ی مورد نظر رو ایمپورت میکنیم :
import platform
بدست آوردن نوع 32 بیتی یا 64 بیتی بودن ویندوز :
print platform.machine()
بدست آوردن اسم سیستم تو شبکه کامپیوتری :
print platform.node()
بدست آوردن اسم ویندوز به همراه ورژن و ... اون :
print platform.platform()
بدست آوردن اطلاعاتی راجب پردازشگر یا همون cpu :
print platform.processor()
کد پایین نسخه پایتون + تاریخ ساخته شدن اون نسخه رو در قالب یه تاپل بر میگردونه :
print platform.python_build()
شناسایی کامپایلر مورد استفاده برای کامپایل کردن برنامه ی پایتون :
print platform.python_compiler()
کد پایین ورژن پایتون رو بر میگردونه :
print platform.python_version()
کد پایین هم اسم ویندوز رو بر میگردونه ، مثلا به من میگه windows 8.1 :
print platform.release()
کد پایین هم میگه که سیستم عامل از چه نوعیه ، مثلا میگه لینوکسه ، ویندوزه و ... :
print platform.system()
کد پایین هم داخل یه تاپل ، یه خرده اطلاعات کلی به ما میده که خودتون میتونین تست کنین و ببینین که چی میگه :)
print platform.uname()
خب دیگه اینا هم از توابع مهم ماژول platform ...
سلام برای شروع اول باید کلاس random رو import کنید:
import random
random.seed()
تولید یک عدد تصادفی بین 0.0 و 1.0 :
import random
random.seed()
print(random.random())
تولید عدد تصادفی بین دو عدد (دارای رنج):
import random
random.seed()
print(random.randint(1,10))
//5
print(random.uniform(3.2, 6.7))
//3.4089421725853639
توجه کنید دو علامت // به معنای یک نتیجه هستند و جزء کدهای ما نیستند
انتخاب رشته ای تصادفی:
print(random.choice("a string"))
//t
print(random.choice(["some", "random", "strings"]))
//random
print(random.choice(["a string", 10, 14.32, [1,5,5]]))
//[1,5,5]
حالا میخوام قدرت پایتون رو نشونتون بدم بهم ریختن اعداد:
shuffleMe = [0,1,2,3,4,5,6,7,8,9]
random.shuffle(shuffleMe)
print(shuffleMe)
//[2, 4, 6, 3, 7, 8, 0, 5, 9, 1]
نمایش کاراکتر یا اعداد تصادفی:
pickChars = "some things to pick"
print(random.sample(pickChars, 6))
//['c', 's', 'e', 'n', 'g', ' ']
pickNums = [0,1,2,3,4,5,6,7,8,9]
print(random.sample(pickNums, 5))
//[6, 4, 5, 9, 8]
import random
a = random.randint(0,50)
print(a)
در این کد عددی تصادفی بین 0 تا 50 ایجاد خواهد شد
برای مطالعه سلسله مقالات آموزش زبان برنامهنویسی پایتون(اختصاصی شبکه) روی لینک های زیر کلیک کنید
شاید بتوانیم این گونه بیان کنیم که پایتون در مقایسه با زبانهای بزرگ یک زبان نسبتاً جدید به شمار میرود. این زبان برنامهنویسی در سال 1991 به دنیایبرنامهنویسی وارد شد. از همان ابتدا، پایتون بهمنظور پر کردن شکافهای موجود دردنیای برنامهنویسی و ارائه راهکاری بهمنظور نوشتن اسکریپتهایی که فرآیند انجام یکسری از کارهای روتین خستهکننده را به طور خودکار اجرا کنند یا ساخت یک نمونه اولیه از برنامههای کاربردی که در یک یا چند زبان دیگر پیادهسازی شوند، مورد استفاده قرار گرفت. با این حال در چند سال گذشته، پایتون به یکی از ابزارهای تراز اول در زمینه توسعه برنامههای کاربردی، مدیریت زیرساختها و تحلیل دادهها تبدیل شده است. امروزه پایتون در زمینه توسعه برنامههای کاربردی تحت وب و مدیریت سیستمها و تجزیه و تحلیل بزرگ دادهها که رشد انفجاری به خود گرفتهاند و همچنین هوش مصنوعی به یکی از بازیگران اصلی دنیای فناوری تبدیل شده است. پایتون این موفقیت چشمگیر و کاربرد گسترده را مدیون یکسری ویژگیهای ارزشمندی است که هم در اختیار توسعهدهندگان حرفهای و هم در اختیار توسعهدهندگان تازهکار قرار داده است. از جمله این ویژگیها به موارد زیر میتوان اشاره کرد.
یادگیری کمدردسر پایتون به برنامهنویسان تازهکار اجازه داده است با صرف کمی وقت اصول اولیه این زبان را یاد بگیرند و اولین برنامه کاربردی خود را با این زبان طراحی کنند. این زبان به گونهای ساخته شده است که ترکیب نحوی آن کاملاً خوانا است و برنامهنویسان بدون مشکل خاصی قادرند منطق دستورات را بهشکل صریح و روشنی درک کنند و برای همکاران خود شرح دهند. سادگی، خوانایی و دور بودن از پیچیدگیهای رایج باعث شده است تا پایتون به گزینه ایدهآلی برای تدریس در مدارس و مراکز آموزشی تبدیل شود. همین سادگی و دور بودن از پیچیدگیها است که باعث شده است پایتون اولین انتخاب برنامهنویسانی باشد که تازه به دنیایبرنامهنویسی قدم گذاشتهاند. تسلط بر زبان پایتون بهمعنای آن است که طراحان میتوانند زمان بیشتری را برای فکر کردن درباره یک مشکل و پیدا کردن راه حلی برای آن صرف و در مقابل زمان کمتری برای فکر کردن در مورد ترکیب نحوی و پیچیدگیهای دستورات این زبان صرف کنند. همچنین، زمانی که یک برنامه به طور کامل نوشته شد، طراحان با صرف کمترین زمان ممکن میتوانند منطق به کار گرفته در کدها را برای دیگران تشریح کنند، بهدلیل آنکه همه چیز روشن و گویا است.
زبان پایتون دو ویژگی یک زبان خوب یعنی محبوبیت و کاربرد گسترده را توأمان با یکدیگر در اختیار دارد. کافی است به آمارهای منتشر شده از سوی منابع معتبری همچون Tiobe و پروژههایی که روی سایت گیتهاب قرار گرفته و با پایتون نوشته شدهاند نگاهی داشته باشید تا متوجه شوید این زبان تا چه اندازه نزد طراحان محبوب است. (شکل 1)
برنامههای نوشته شده با زبان پایتون روی سیستم عاملها و سکوهای اصلی و سیستم عاملهای خاصتر بهخوبی اجرا میشوند. بخش اعظمی از کتابخانههای بزرگ و سرویسهای مبتنی بر API به اشکال مختلفی پیوندهای مرتبط با زبان پایتون را در خود جای دادهاند، به طوری که به زبان پایتون اجازه دادهاند از طریق واسطها با این سرویسها ارتباط برقرار یا بهطور مستقیم از کتابخانهها استفاده کند. در حالی که پایتون را در گروه سریعترین زبانهای برنامهنویسی نمیتوان قرار داد و شاید کند بودن نقطه ضعف اصلی این زبان به شمار میرود، اما در مقابل تطبیقپذیری بسیار بالایی دارد.
پایتون زبانی نیست که برای انجام کارهای عادی و پیش پا افتاده مورد استفاده قرار گیرد. از این زبان بهمنظور ساخت برنامههای کاملاً حرفهای با کیفیت بالا، برنامههای مستقل و سرویسهای وب میتوان استفاده کرد. اسکریپتهایی که با این زبان نوشته میشوند، بهسادگی قادرند فرآیندهای بزرگی را مدیریت و خودکارسازی کنند.
پایتون یک زبان برنامهنویسی چندمنظوره و شیگرا است که برای توسعه سایتهای پویا، تحلیل دادهها و نوشتن برنامههای دسکتاپ میتوان از آن استفاده کرد. اما اساسیترین کاربرد پایتون در ارتباط با اسکریپتنویسی و خودکارسازی است. پایتونتنها یک جایگزین برای اسکرپیتهای شل یا فایلهای دستهای نیست، بهواسطه آنکه از پایتون برای تعامل خودکار با مرورگرهای وب، برنامههای گرافیکی و پیکربندی سیستمها از طریق ابزارهایی همچون Salt و Ansible میتوان استفاده کرد.
طراحان و توسعهدهندگان نرمافزار این توانایی را دارند تا هر دو گروه برنامههای کنسولی و گرافیکی را با پایتون ایجاد و آنها را بهشکل خوداجرا مستقر کنند. پایتونبه طور ذاتی این توانایی را ندارد تا یک فایل باینری مستقل را از یک اسکریپت ایجاد کند. اما پکیجهای ثالثی شبیه به cx_Freeze یا PyInstaller این کاستی پایتون را جبران کردهاند.
در چند سال اخیر فرآیند تجزیه و تحلیل دادههای مرتبط با فناوری اطلاعات بیش از اندازه پیچیده شده است، به همین دلیل زبان پایتون و در تعقیب آن زبان آر به ستارگان یکهتاز این میدان تبدیل شدهاند. با توجه به محبوبیت بیش از اندازه زبان پایتون امروزه شاهدیم که طیف گستردهای از کتابخانههای مورد استفاده در یادگیری ماشین و علم دادهها یک واسط یا به عبارت دقیقتر رابطهای ویژه زبان پایتون را ارائه کردهاند.
کتابخانههای محلی زبان پایتون بههمراه چهارچوبهای وب بخش ثالث سریعترین و راحتترین راهکار را در اختیار طراحان وب قرار دادهاند تا بدون دردسر خاصی بتوانند توابع REST چندخطی یا یک سایت دادهمحور مملو از اطلاعات را با استفاده از زبان پایتون طراحی کنند. REST (سرنام Representational State Transfer) یک معماری وب سرویس است که از پروتکل HTTP برای انتقال اطلاعات میان کلاینت و سرور استفاده میکند. جدیدترین نگارشهای عرضه شده از زبان پایتون بهشکل قدرتمندی از عملیات غیرهمزمان پشتیبانی میکند. پشتیبانی از عملیات غیرهمزمان بهمعنای آن است که سایتها قادرند دهها هزار درخواست در هر ثانیه را از طریق کتابخانههای درستی که مورد استفاده قرار میدهند مدیریت کنند.
شکل 1- گزارشی که سایت tiobe در آگوست 2017 منتشر کرد، نشان داد که پایتون هنوز هم جزء پنج زبان برتر برنامهنویسی است.
اصطلاح Metaprogramming بهمعنای نوشتن برنامهای است که قادر است فرآیندهای خواندن، تحلیل و ساخت سایر برنامهها و حتی خود را در زمان اجرا مدیریت کند. در زبان پایتون هرچیز همچون ماژولهای پایتون و حتی خود کتابخانهها بهعنوان یک شی در نظر گرفته میشوند. این رویکرد به پایتون اجازه میدهد بهشکل کارآمدتری کدها را تولید کند. در نتیجه امکان ساخت برنامههایی که قادر باشند توابع خود را دستکاری کنند و نوعی فرآیند توسعه را امکانپذیر سازند، در پایتونوجود دارد. رویکردی که پیادهسازی آن در زبانهای دیگر کار بسیار مشکل و در بعضی موارد غیرممکن است.
کدهای پایتون خاصیت چسبندگی دارند، به طوری که در بعضی موارد از زبان پایتونبهعنوان یک زبان چسبنده (Glue language) نام برده میشود. زبان پرل نیز چنین ویژگی را دارد. این ویژگی به شما اجازه میدهد کدهای متفاوت را به یکدیگر وصل کنید. (به طور معمول کتابخانههایی با رابطهای زبان سی) از این تکنیک در زمینه علم دادهها و یادگیری ماشینی استفاده میشود.
حالا که به تواناییهای زبان پایتون اشاره کردیم، بد نیست به یکسری کارهایی کهپایتون قادر به انجام آنها نیست یا بهتر است در انجام چنین کارهایی از زبان پایتوناستفاده نشود نیز اشارهای داشته باشیم. پایتون یک زبان برنامهنویسی سطح بالا است، در نتیجه برای برنامهنویسیهای سطح سیستمی همچون درایورنویسی یا هسته سیستم عاملها مناسب نیست. همچنین، ایده جالبی نیست زمانی که بهدنبال فراخوانی کتابخانههای چندسکویی هستید از پایتون استفاده کنید. میتوانید برنامههای مستقل پایتون را برای سکوهای ویندوز، مک و لینوکس طراحی کنید، اما کار چندان سادهای نیست و در بعضی موارد خروجی ممکن است مطابق میل شما نباشد. سرانجام زمانی که سرعت یکی از اولویتهای اصلی برنامه کاربردی است که بهدنبال ساخت آن هستید، نباید به سراغ پایتون بروید. در چنین شرایطی بهتر است از گزینههای شناخته شدهای همچون سی یا سی پلاس پلاس استفاده کنید.
ترکیب نحوی زبان پایتون کاملاً خوانا و تمیز است. به طور مثال، نوشتن یک برنامه استاندارد Hello world در نسخه 3.x این زبان به دور از هرگونه کد اضافی بهصورت (”!print(“Hello world نوشته میشود. زبان پایتون عناصر نحوی زیادی را ارائه میکند که در مدت زمان اجرای یک برنامه میتوان از آنها استفاده کرد. به طور مثال، برنامه ساده زیر را در نظر بگیرید که برای خواندن خطوط موجود در یک فایل متنی داخل یک شی List نوشته شده است.
with open(‘myfile.txt’) as my_file:
file_lines = [x.strip(‘\n’) for x in my_file]
ساختار with/as از جمله اشیای زبان پایتون به شمار میرود که به قابلیت Context manager تجهیز شده است. این ساختار راهکار کارآمدی برای تعریف یک شی تخصیص داده شده به یک بلوک از کدها و سپس آزاد کردن شی از بلوکی که به آن تخصیص داده شده است را ارائه میکند. در این مثال، شی my_file از طریق تابع open معرفی شده است. همان گونه که مشاهده میکنید، در زبان پایتون اغلب کارها با حداقل کدنویسی به سرانجام میرسند. در مثال فوق، بهجای آنکه به چند خط کدنویسی برای باز کردن یک فایل، خواندن خطوط مختلف و درنهایت بستن فایل نیاز داشته باشید، تنها از طریق دو خط این کارها را انجام دهید.
این تکنیک در مقایسه با بهکارگیری بلوک Try-finally سادهتر بوده و از خوانایی بیشتری برخوردار است. ساختار [x … for x in my_file] یکی دیگر از تکنیکهای مختص زبان پایتون است. این ترکیب نحوی به یک عنصر تخصیص داده شده که شامل عناصر دیگری است اجازه میدهد (در این مثال my_file و خطوطی که همراه با آن هستند) که تکرار شده و به عناصر تکرارشونده نیز (در این مثال x) اجازه میدهد که پردازش شده و به طور خودکار به داخل فهرست اضافه شوند. همانند هر زبان دیگری امکان انجام این کار از طریق یک حلقه for…. نیز امکانپذیر است، اما پایتون به شما اجازه میدهد کارها را با کمترین پیچیدگی و بالاترین خوانایی انجام دهید. شبیه به زبانهای دیگری همچون جاوا، سی شارپ و گو، زبان پایتون برای مدیریت حافظه از تکنیک Garbage collections استفاده میکند. در نتیجه برنامهنویس در زمان نوشتن اشیا و آزادسازی اشیا دغدغهای نخواهد داشت. بهطور معمول، فرآیند Garbage collection در پس زمینه و بهشکل خودکار انجام میشود. اما اگر مشکلی در این زمینه به وجود آید، برنامهنویس میتواند این فرآیند را بهطور دستی مدیریت کند. یکی دیگر از ویژگیهای جالب پایتون پویایی این زبان است. هر چیزی در این زبان همچون توابع و خود ماژولها بهعنوان یک شی شناخته و مدیریت میشوند. در حالی که این تکنیک تا حدودی سرعت را قربانی میکند، اما در مقابل اجازه میدهد کدهای سطح بالا را بهسادگی بنویسید. این تکنیک نهتنها به طراحان اجازه میدهد اشیای پیچیده را بهسادگی و از طریق تنها چند دستورالعمل مدیریت کنند، بلکه به آنها اجازه میدهد بخشهایی از برنامه را در صورت لزوم بهشکل انتزاعی تعریف کنند. شاید یکی از بهترین یا بدترین ویژگیهای زبان پایتون در ارتباط با فضای سفید است. توررفتگیها و رفتن به خطوط دوم در زبان پایتون تنها برای خوانایی برنامه نیست.
فضای سفید یکی از اصلیترین بخشهای ترکیب نحوی پایتون به شمار میرود. مفسران زبان پایتون برنامههایی را که بهشکل درستی از دندانهگذاری بهمنظور نشان دادن جریان کنترل برنامه استفاده نکرده باشند رد میکنند.
در حال حاضر، دو نسخه از زبان پایتون در اختیار برنامهنویسان قرار دارد. هریک از این دو نسخه ویژگیهای خاص خود را دارند. پایتون نسخه 2.X نسخه قدیمیتر است و پشتیبانی رسمی و عرضه بهروزرسانیها برای این نسخه تا سال 2020 ادامه خواهد داشت. حتی این احتمال وجود دارد که پس از این تاریخ نیز بهصورت غیررسمی از این نسخه پشتیبانی به عمل آید. نسخه 3.X نسخه جدیدتر است که یکسری ویژگیهای مفید و البته مهم دارد.
پایتون یک زبان برنامهنویسی سطح بالا است، در نتیجه برای برنامهنویسیهای سطح سیستمی همچون درایورنویسی یا هسته سیستم عاملها مناسب نیست
ویژگیهایی که در نسخه 2.x وجود ندارند. مفسران کارآمدتر و کنترلهای همروندی بهتر از جمله این ویژگیها هستند. اگر در گذشته برای نوشتن یک برنامه همروند در پایتون با مشکل روبهرو بودید، نسخه 3.x این مشکل شما را برطرف کرده است. با وجود این، پذیرش پایتون3 بهآرامی انجام گرفت، در نتیجه پشتیبانی از یکسری کتابخانههای بخش ثالث روند نسبتاً کندی داشته است. اغلب کتابخانههای پایتون تنها در نسخه 2 پشتیبانی میشوند که همین موضوع سوئیچ کردن به نسخه 3 را با دشواری همراه میسازد. اما در چند سال گذشته، تعداد کتابخانههایی که تنها در نسخه 2 پشتیبانی میشدند رو به افول نهاده است و اکثر این کتابخانهها با هر دو نسخه سازگاری دارند. در مقطع فعلی به دلایل مختلفی میتوان اشاره کرد که مهاجرت به پایتون 3 را توجیهپذیر میسازند.
یکی از نکات رایجی که در ارتباط با پایتون وجود دارد مبحث کند بودن آن است. این موضوع تا حدودی صحت دارد. برنامههای نوشته شده با پایتون در مقایسه با برنامههایی که به زبانهای سی، سی پلاس پلاس و جاوا نوشته میشوند عمدتاً کندتر اجرا میشوند. اما سؤال این است که چرا این برنامهها کند هستند؟
بسیاری بر این باورند که مشکل کند بودن به دلیل آن است که محیطهای زمان اجرای پایتون مبتنی بر مفسر هستند و اگر از کامپایلر استفاده شده بود مشکل کندی برطرف میشد، اما این تمام ماجرا نیست.
پویایی ذاتی و انعطافپذیری اشیا در پایتون باعث شده است تا فرآیند بهینهسازی سرعت بهسختی امکانپذیر باشد. با وجود این، مبحث سرعت مشکل بزرگی نیست که پایتون را تحتالشعاع خود قرار دهد. بهواسطه آنکه راهکارهایی برای حل این مشکل وجود دارد. پایتون راهکارهای مختلفی برای بهینهسازی سرعت در اختیار دارد.
اگر گفته میشود که یک برنامه نوشته شده با پایتون کند است، بهمعنای آن نیست که این برنامه تا آخرین روزهای حیاتش کند خواهد بود. بیشتر برنامههای پایتون کند هستند، بهواسطه آنکه ممکن است از کتابخانههای استاندارد پایتون استفاده نکرده یا بهدرستی از ویژگیهای موجود در پایتون بهره نبرده باشند.
عملیات ریاضی و آماری میتوانند از طریق کتابخانههایی همچون NumPy و Pandas و محیط زمان اجرای PyPy سریعتر شوند و بهشکل قابل توجهی سرعت برنامههایپایتون را افزایش دهند. درنهایت اگر بهدنبال دادهکاوی داده هستید، بهتر است اززبان پایتون غافل نشوید.