
◙◙ برای ارسال سوالات، مشاوره، بحث با دوستان و ...
◙◙ از بخش آرشیو نظرات زیر استفاده کنید.
درج نظرات عمومی برای تمامی پستها به زودی فعال میشود.
وضعیت مدیریت: آفلاین ◙
شاد و پیروز باشید.... | سعید دامغانیان


◙◙ برای ارسال سوالات، مشاوره، بحث با دوستان و ...
◙◙ از بخش آرشیو نظرات زیر استفاده کنید.
درج نظرات عمومی برای تمامی پستها به زودی فعال میشود.
وضعیت مدیریت: آفلاین ◙
شاد و پیروز باشید.... | سعید دامغانیان
دانلود رایگان کتاب آموزشی زبان برنامه نویسی پایتون به زبان انگلیسی #درخواستی_شما
به درخواست شما دوستان و همراهان عزیز رادیو صدای ققنوس کتاب آموزش زبان برنامه نویسی پایتون نسخه پنجم (جدیدترین نسخه) از سری کتابهای برگزیده زبان پایتون را در اینجا آپلود میکنم. همیشه در حال یادگیری و پیروز باشید. #سعید_دامغانیان

خروجی کد زیر را در کنسول پایتون حدس بزنید. سپس کد را اجرا نموده و خروجی واقعی را تحلیل کنید.
سطح سئوال: متوسط

همیشه در حال یادگیری
موفق باشید...
برای دسترسی به پستهای آموزشی، تمرین و پروژه های زبان برنامه نویسی پایتون از وبلاگ پایتون ما هم دیدن کنید.
pyschool . blog . ir

words = ("spam", "eggs", "sausages",)شما می توانید با مقادیر خود در مقیاس به همان اندازه که با لیست ها دسترسی داشتید دسترسی پیدا کنید:
print(words[0])تلاش برای تخصیص یک مقدار در یک Tuple، یک TypeError را ایجاد می کند.
words[1] = "cheese"خروجی:
>>>
TypeError: 'tuple' object does not support item assignment
>>>نکته:مانند لیست ها و dictionary ها، tuple ها را می توان در داخل یکدیگر قرار داد.
tuple ها را می توان فقط با جدا کردن مقادیر با کاما و بدون پرانتز ایجاد کرد.
مثال:
my_tuple = "one", "two", "three"
print(my_tuple[0])خروجی:
>>>
one
>>>یک tuple خالی با استفاده از یک جفت پرانتز خالی ایجاد می شود.
tpl = ()نکته:tuple ها سریعتر از لیست ها هستند اما قابل تغییر نیستند.
برنامه ای بنویسید که سایز دو آرایه را از ورودی بخواند. سپس آیتمهای آرایه ها را از ورودی خوانده و سپس دو آرایه را جمع بزند. (میدانیم که حاصل جمع دو آرایه مثلا 3 بعدی، یک آرایه سه بعدی دیگر است که تمام عناصر آن حاصل جمع دو عنصر متناظر در آرایه های اول و دوم است) #ساختمان_داده

یک نمونه خروجی برنامه بالا:

دانلود فایل سی پلاس پلاس:
برای تبدیل مبنای اعداد
می بایست عدد در مبنای ۱۰ را به طور متوالی تقسیم بر ۲ کنیم و باقیمانده ها را نگهداریم . این عمل را آنقدر ادامه می دهیم تا خارج قسمت صفر شود. در آخر باقیمانده ها را از راست به چپ کنار هم می نویسیم.
به اعداد در مبنای ۲ ، باینری (binary) می گویند. در مبنای ۲ فقط ارقام صفر و یک را داریم.
تبدیل مبنای ۲ به ۱۰
زیر عدد خط کشیده به هر رقم یک موقعیت می دهیم.موقعیتها از سمت راست به چپ و از صفر شماره گذاری می شوند.هر رقم را ضرب در مبنا(۲) به توان موقعیت می کنیم.نهایتاْ اعداد را با هم جمع می کنیم.
تبدیل مبنای ۱۰ به ۱۶
می بایست عدد در مبنای ۱۰ را مرتباْ بر ۱۶ تقسیم کنیم و باقیمانده ها را نگه داریم.این عمل را آنقدر ادامه می دهیم تا خارج قسمت صفر شود.در آخر باقیمانده ها را زا راست به چپ کنار هم می نویسیم.در مبنای ۱۶ به شانزده نماد نیاز داریم ارقام صفر تا ۹ و نمادهای a,b,c,d,e,f که به ترتیب متناظر اعداد 10,11,12,13,14,15 هستند.
مبنای ۱۶ را هگزادسیمال (hex) نیز می گویند.
تبدیل مبنای ۱۶ به ۱۰
زیر عدد خط کشیده به هر رقم یک موقعیت می دهیم.موقعیت ها از سمت راست به چپ و از صفر شماره گذاری می شوند.هر زقم را ضرب در مبنا (۱۶) به توان موقعیت میکنیم.نهایتاْ اعداد حاصله را با هم جمع می کنیم.
تبدیل مبنای ۱۰ به 8
می بایست عدد در مبنای ۱۰ را مرتباْ تقسیم بر 8 کنیم و باقیمانده ها را نگه داریم . این عمل را آنقدر ادامه می دهیم تا خارج قسمت صفر شود.در آخر باقیمانده ها را از راست به چپ کنار هم می نویسیم.
تبدیل مبنای ۸ به ۱۰
زیر عدد خط کشیده به هر رقم یک موقعیت می دهیم.موقعیتها از سمت راست به چپ و از صفر شماره گذاری می شوند.هر رقم را ضرب در مبنای (۸) به توان موقعیت می کنیم.نهایتاْ اعداد حاصله را با هم جمع می کنیم.
تبدیل مبنای ۲ به ۸ و بالعکس
برای تبدیل مبنای ۸ به ۲ کافی است به جا هر رقم معادل ۳ بیتی آن را ازجدول دودهی قرار دهیم.
2(011 101 100)=2(?)=8(354)
برای تبدیل مبنای ۲ به ۸ از سمت راست ۳ بیت ۳ بیت جدا می کنیم.اگرتعدادبیتها مضربی از ۳ نبوداز سمت چپ صفر اضافه می کنیم.آنگاه معادل۳بیتی های جدا شده را از جدول زیر می نویسیم.
8(?) =2(1101111011)
8(1573)=2(001'101'111'011)
جهت دانلود رایگان ده ها مسئله حل شده با پاسخ تشریحی درس نظریه زبانها و ماشینها
دانشگاه یزد (استاد ارجمند جناب آقای متین خواه)
از لینکهای زیر استفاده نمایید.

همیشه در حال یادگیری
سعید دامغانیان- رادیو صدای ققنوس
جزوه مدار منطقی - مقطع کارشناسی( مهندسی کامپیوتر و مهندسی فناوری اطلاعات)
اسلایدهای استاد ارجمند: جناب آقای مجیـد نـیکزر
دانشگاه یزد

همیشه در حال یادگیری
سعید دامغانیان- رادیو صدای ققنوس
در سالیان اخیر، زبان برنامه نویسی پایتون محبوبیت زیادی میان ما توسعه دهندگان وب پیدا کرده است. تنوع فریم ورک ها، قابلیت کراس پلتفرم و سینتکس ساده، روزانه بر محبوبیت زبان پایتون میافزاید. در این مقاله، در مورد فریم ورک های پایتون برای توسعه وب، اینکه کدام فریم ورک برای کدام پروژه بهتر است، و مزایا و معایب این زبان در وب صحبت خواهیم کرد.
پایتون سینتکس سادهای دارد و این ویژگی به تیم های کوچک برنامه نویسی کمک بسیاری میکند زیرا هر یک از اعضای تیم به راحتی میتوانند بخش های مختلف کد را متوجه شود.
با اینکه پایتون یک ابزار نوظهور در توسعه وب شناخته میشود، بنیان قوی ای را برای توسعه دهندگان وب فراهم آورده است.
همچنین سادگی پایتون، ساخت و پیاده سازی سیستم های پیچیده را سریع و آسان کرده است. تعداد بالای کتابخانه های پایتون و ابزار های از پیش آماده شده در آن، به شما اجازهی ایجاد پروژه، حل مشکلات پیچیده و حل خودکار مشکلات را کوچک میدهد. استفاده از کتابخانه های متنوع پایتون سرعت و کارایی محاسبات شما را نسبت بالا میبرد و به واسطه آن سرعت عمل شما را در تولید برنامه افزایش میدهد.
مزیتهای به کارگیری پایتون در وب
این قابلیت به برنامه نویسان این اجازه را میدهد که محصولی با کمترین ارزش را، در زمان نسبتا کوتاهی تولید کنند. شما هیچ نیازی به راه اندازی سرویس های پیچیده ندارید. تنها کاری که باید انجام دهید، ایجاد یک فایل پایتون و صرف کمی زمان روی آن است. با افزایش مهارت در این زبان سرعت کدنویسی افزایش یافته و راه حل ها بهینه خواهد شد.
مبتدی ها برای حل مشکلات پیچیده نیاز به کمک دارند و پایتون این نیاز را برطرف میکند. شما میتوانید سوالات خود را در فروم های آن بپرسید و دانش خود با بهره گیری از تجربه و دانش برنامه نویسان حرفه ای ارتقا دهید. و همچنین پاسخ سوالات مشابه به سوالات خود را بیابید.
پایتون به لطف تنوع در روش های جمع آوری اطلاعات، بهترین انتخاب برای هوش مصنوعی است. برای برآورده کردن نیاز های یادگیری ماشین، زبان برنامه نویسی شما باید پایدار، انعطاف پذیر و دارای ابزارهای متنوعی باشد.
* برنامه های مقیاس پذیر
شما میتوانید برنامه های وب بسیار مقیاس پذیر، با چندین پایگاه داده در سرورهای مختلف طراحی کنید. این کار تحمل خطا را برای محصول شما فراهم میآورد و عملکرد برنامه را نیز تسریع میکند.
فهمیدن کد پایتون حتی برای برنامه نویسان کم تجربه نیز ساده و آسان است. توسعه دهندگان حرفه ای به راحتی میتوانند کد هم تیمی های کم سابقه خود را فهمیده و آن را ارتقا دهند.
* شيء گرایی
پایتون زبان شی گراست. میتوانید با استفاده از برنامه نویسی شی گرا، کدتان را راحت تر مدیریت کنید. میتوانید بدون نیاز به بازنویسی کدتان، برنامه تان را با ویژگی های جدید بروزرسانی کرده و گسترش دهید.
پایتون فقط برای توسعه back-end استفاده میشود. با این وجود، میتوانید صفحات HTML را رندر کنید و با پایگاه داده های متعددی ارتباط برقرار کنید.
* مصرف نسبتا زیاد حافظه بعلت انعطاف پذیری و چند کاربردی
* محدودیت سرعت
* نداشتن پردازش چندگانه
* نداشتن محبوبیت کافی در توسعه اپ های موبایل
این روزها فریم ورک های پایتون مرتبا داره گسترش پیدا میکنه و کم کم داره از تعداد فریم ورکهای جاوا اسکریپت جلو میزنه. در ادامه به برخی از مهم ترین و محبوبترین فریم ورک های مورد استفاده در Python اشاره می کنم.
Pyramid یک فریم ورکی است که به سرعت در حال رشد است و علاوه بر جامعه ی گسترده ی توسعه دهندگان، مستندات این فریم ورک نیز قابل توجه است و این امکان را در اختیار توسعه دهندگان قرار میدهد تا به سادگی شروع به کار با این فریم ورک نمایند. فریم ورک پیرمید مینیمالیستی، سریع و قابل اعتماد است و برای کسانی که تمایل دارند پروژه های API بنویسند، یک ایده را از بالقوه به بالفعل درآورند و پروژه های بزرگی همچو سی ام اس طراحی کنند مناسب است.
Django یک فریم ورک تجهیز شده به ابزارهای مورد نیاز برای طراحی وب اپلیکیشن با استفاده از زبان برنامه نویسی پایتون است که از جمله ی این ابزارها میتوان به Authentication, URI Routing, ORM و … اشاره کرد. این فریم ورک با قابلیتهایی همچون توسعه ی سریع اپلیکیشن، استفاده ی آسان و عملکرد بالا توانسته توسعه دهندگان ایدهآل گرا را به خود جذب کند. وجود منابع آموزشی و کتابهای تخصصی آموزش جنگو، باعث محبوبیت بیشتر این فریم ورک گشته است.
Flask میکرو فریم ورکی سبک اما در عین حال قابل توسعه است که برای زبان برنامه نویسی پایتون نوشته شده است. گفته میشود که وب اپلیکیشن های طراحی شده با فلسک نسبت به جنگو بیشتر بوی زبان پایتون میدهند چرا که با تعداد خطوط کد کمتری میتوان یک اپلیکیشن به زبان پایتون نوشت.
Turbogearsیک فریم ورکی است با کسب تجربه از فریم ورک های جنگو، روبی آن ریلز و … طراحی گشته که با استفاده از آن در کوتاه ترین زمان ممکن میتوان یک وب اپلیکیشن طراحی کرد. توربوگیرز پاسخی به تمام توسعه دهندگانی است که از محدودیتهای فریم ورک های زبانهای برنامه نویسی مختلف خسته شده و به دنبال راهکاری اثربخش و در عین حال ساده می گردند.
WEB2PY یک فریم ورک اپن سورس، همه منظوره، سریع، توسعه پذیر و ایمن است که برای علاقمندان به زبان برنامه نویسی پایتون طراحی گشته است. از جمله قابلیتهای منحصر به فرد این فریم ورک زبان برنامه نویسی پایتون میتوان به قابلیت ایجاد، ویرایش و مدیریت وب اپلیکیشن از هر زمان و مکانی صرفاً از طریق یک مرورگر همچون فایرفاکس یا گوگل کروم و … اشاره کرد.
Bottle یک میکرو فریم ورک است که بر پایه ی پایتون نسخه ی ۳ اجرا می شود. این فریم ورک دارای حداقل ابزارهای مورد نیاز برای طراحی یک اپلیکیشن است لذا توسعهدهنده به هیچ وجه نیاز به کتابخانههای اضافی نخواهد داشت. انعطاف پذیری، امکان توسعه ی API های تحت وب و طراحی پروژه های سبک و ساده این فریم ورک را به کاندیدای خوبی برای بسیاری از توسعه دهندگان مبدل ساخته است.
Cherrypy نیز یکی از فریم ورک مینیمالیستی برای وب است که استفاده از آن ساده است و همچنین مبتنی بر پارادایم برنامهنویسی شئگرا ساخته شده است. این یک فریمورک HTTP است که کاملا پایدار است و برای یادگیری و استفاده از آن نیازی نیست که کل فریمورک را یاد بگیرید، روند یادگیری آن نیز ساد و لذت بخش است.
Grokمشابه با zope۳ است و با APIهای آن سازگاری دارد. اگر با Zope۳ کار کرده باشید روند یادگیری و استفاده از grok نیز برایتان ساده تر میشود. از طرفی فوایدی نیز دارد برای مثال دیگر به فایلهای ZCML و XML نیازی ندارید، بیشتر فایلها در این چهارچوب به صورت خودکار تولید میشوند.
Pylons یک فریم ورک انعطاف پذیر است که بسیاری از پروژههای خوب با استفاده از آن ساخته شده اند، همچنین این فریمورک روی توسعه وب مدرن تمرکز دارد. همچنین این فریمورک شامل یک دیباگر آنلاین است که رفع کردن عیبها و اشکالات را برایتان سادهتر میکند. اگر با فریمورکی مانند django کار کرده باشید روند یادگیری این مورد نیز برایتان بسیار سادهتر خواهد شد و همچنین شروع کار با آن ساده است.
Zope2 یکی از قدیمیترین فریم ورکهای پایتون از سال ۱۹۹۵ به بعد است، برای برنامهنویسی شئگرا مناسب است و همچنین روند یادگیری و اشکال یابی سادهای دارد. این فریمورک روی کامپوننتهایی با قابلیت استفاده مجدد تمرکز دارد.
Tornadoاین مورد فریم ورکی است که بیشتر در وب سرورها کاربرد دارد و توانایی مدیریت همزمان هزاران ارتباط را دارد. TORNADO یک فریمورک است که قابلیت ناهمزمانی دارد، حلقه رویداد و قابلیت پشتیبانی از وب سوکتها نیز از موارد مرتبط دیگر است. همچنین این فریمورک با WSGI یا واسط دروازه کارساز وب نیز ترکیب شده است.
Web.Py معادل با ساده و قدرتمند بودن است. این فریم ورک سبک است و استفاده کردن از آن ساده است، ایده پشت این فریم ورک مینیمال و متن باز بودن است. استفاده کردن از آن ساده است و برای شروع کار نیازی به هیچ معماری نرم افزاری یا موارد مشابهی نیست.
Nagare فریم ورکی متن باز مبتنی بر ترکیبات ادامهای بدون توقف پایتون است. این موضوع ما را کمک میکند که بتوانیم درخواستهای ارتباطات HTTP را بهبود ببخشیم. راهی که با آن میشود از طریق Nagare اپلیکیشنها را توسعه داد تقریبا مشابه همان روند توسعه اپلیکیشنهای دسکتاپی است.
Sanic یک فریم ورک وب است که به دلیل سریع بودن و مدیریت ناهمزمان درخواستهای HTTP محبوب است. این فریم ورک مبتنی بر UVLOOP و HTTPtools است که برای سریع بودن توسعه داده شده، sanic توسط گیتهاب و جمع بزرگی از توسعهدهندگان ایجاد شده است.
Falcon یک فریم ورک مینیمال WSGI است که در آن تنها موارد ضروری قرار دارد و موارد حواس پرت کن اضافی حذف شده است. این فریم ورک بسیار قابل اطمینان و منعطف است و میتوان در هر دو سطح بالا و پایین از توسعه پروژه استفاده شود.
Reahl یک فریم ورک با ویژگیهای بسیار است که کاملا با پایتون ایجاد شده است. در این فریم ورک هیچ مورد اضافی یا کتابخانهای وجود ندارد و از پایتون خالص تشکیل شده است. یادگیری آن تنها با دانستن پایتون ساده است و در مقایسه با دیگر فریمورکها روند یادگیری بسیار سادهای دارد.
در اینجا به تعدادی از فریم ورک های زبان برنامه نویسی پایتون اشاره کردیم. البته تعداد فریم ورک های پایتون بیشتر از این موارد اشاره شده می باشد اما سعی کردم بعضی از مهم ترین ها را معرفی کنم.