اعلان Python سیکھنے میں کون کون دلچسپی رکھتا ہے

محمداحمد

لائبریرین
شاید ٹائپو کر گئے ہیں آپ۔۔۔
ہائی لیول لینگویجز سیکھنے میں آسان ہوتی ہیں اور ان کا موڈیفیکیشن بھی نسبتاً آسان ہوتی ہیں۔ ان کا سنٹکس بھی انسانی زبان سے قریب تر ہوتا ہے۔ ہائی لیول لینگویج کی مثالوں میں سی، سی ++ ، جاوا اور پائتھون وغیر ہ شامل ہیں۔

جی واقعی ٹائپو ہوگیا ۔ :)

شکریہ تصیح کا، میں نے اصل پیغام بھی مدون کر دیا ہے۔
 

محمداحمد

لائبریرین
کہتے ہیں پائتھون کے ذریعے صرف 3 لائنز کے کوڈ سے ویب سرور تیار ہو جاتا ہے۔

Python is powerful... and fast

Fans of Python use the phrase "batteries included" to describe the standard library, which covers everything from asynchronous processing to zip files. The language itself is a flexible powerhouse that can handle practically any problem domain. Build your own web server in three lines of code. Build flexible data-driven code using Python's powerful and dynamic introspection capabilities and advanced language features such as meta-classes, duck typing and decorators.

یہ کیا معاملہ ہے؟؟؟؟
 

محمداحمد

لائبریرین
لگتا ہے ہمارے آڑھے ٹیڑھے بیانات سے سب ہی عاجز آگئے ہیں اور ہم یہاں اکیلے ہی رہ گئے۔

یاشاید

محب بھیا ناراض ہوگئے۔
 

اشتیاق علی

لائبریرین
Programming Paradigms کے بارے میں بھی کسی نے لکھنا شروع کیا ہے ؟؟
اگر ہاں تو کس زمرے میں ؟ ہو سکے تو ربط دے دیجئے۔
 
لو لیول لینگویجز مثلاً مختلف آرکیٹیکچرز کے لئے اسمبلی۔
لو لیول زبانوں میں لکھا گیا کوڈ زیادہ طویل مگر ایفیشنٹ ہوتا ہے اور مشین کوڈ کے زیادہ نزدیک ہوتا ہے، بہ نسبت ایک ہائی لیول لینگویج کے۔ یہ کسی خاص ہارڈوئیر کے لئے بھی لکھا جا سکتا ہے۔ اس میں وہ کمانڈز مقابلتاً کم ہوتی ہیں جو کوئی پروگرامر استعمال کر سکتا ہے۔
compiler بیسڈ زبانوں میں ایک پورا پروگرام لکھنے کے بعد کمپائل کیا جاتا ہے اور اس عمل کے مکمل ہونے کے بعد ہی اسے run کیا جا سکتا ہے۔ کمپائلر اسے مشین میں چلنے کے قابل بائنری کوڈ میں تبدیل کر دیتا ہے۔ اگر پروگرام میں کوئی ایرر ہو تو کمپائلیشن کا عمل رک جاتا ہے۔
interpreter استعمال کرنے والی زبانوں میں جب ایک مکمل پروگرام چلایا جاتا ہے تو interpreter ایک ایک سطر پڑھ کر اسے run کرتا ہے، یعنی جس وقت پروگرام چل رہا ہے تو ساتھ ساتھ ہی بائنری کوڈ لکھا جا رہا ہے، اگر اس میں پروگرام میں کوئی ایرر ہو تو چلنے کے دوران ہی انٹرپریٹر کو اس کا علم ہوتا ہے۔
کچھ پروگرامنگ لینگویجز کمپائلر استعمال کرتی ہیں اور کچھ انٹرپریٹر۔


کمپائلر اور انٹرپریٹر کو ترتیب سے دکھانا ہو تو کچھ اس طرح کی شکل بنے گی۔

Interpreter
سورس کوڈ ----> Interpreter ------> آؤٹ پٹ
interpret.png


Compiler

سورس کوڈ ----> Executor <-------Object Code<------- Compiler------> آؤٹ پٹ
compile.png


یعنی کمپائلر پر مبنی زبانوں میں دو مراحل اضافی ہوتے ہیں ، پہلے کمپائلر اسے آبجیکٹ کود یا exe میں بدل دیتا ہے اور پھر کسی بغیر تبدیلی کے جتنی دفعہ مرضی چلایا جا سکتا ہے یعنی مشین کوڈ (بائنری کوڈ) میں تبدیل کیا جا سکتا ہے۔
 
رہی بات ڈائنامک ٹائپنگ کی تو ، اب تک کی معلومات کے مطابق ، ڈائنامک ٹائپ لینگویجز میں کسی بھی ویری ایبل کو استعمال کرنے سے پہلے اسے ڈیفائن کرنا ضروری ہوتا ہے، لیکن اس کی ٹائپ ڈیفائن کرنے کی ضرورت نہیں ہوتی بلکہ اس کی ٹائپ اس کی ویلیو سے اخذ کی جاتی ہے۔ اس کی مثال پائتھون ہے۔ شاید جاوا اسکرپٹ بھی اسی ذمرے میں آئے کہ اس میں بھی ویری ایبل کی ٹائپ ڈیفائن نہیں کی جاتی اور شاید اسی لئے جاوا اسکرپٹ کو لوزلی ٹائپڈ لینگویج کہا جاتا ہے۔​

دوسری قسم اسٹیٹک ٹائپنگ ہوتی ہے جس میں ویرایبل کو استعمال سے پہلے ڈیفائن کرنا ضروری نہیں ہوتا ہے لیکن اس میں ڈیٹا ٹائپ کا پری فکس دینا ضروری ہوتا ہے۔​


Statically typed language
ایسی زبان جس میں ٹائپ کمپائل کے وقت ہی طے ہو جاتی ہے۔ ایسی زبانوں میں عموما کسی بھی متغیر () کو بیان کرنے سے پہلے ہی اس کی ٹائپ بتانی پڑتی ہے۔ جاوا اور سی اس کی مثالیں ہیں۔

dynamically typed language
اسی زبان جس میں ٹائپ execution کے موقع پر پتہ چلتی ہے یعنی سٹیٹک ٹائپ کے بالکل متضاد ۔ وی بی سکرپٹ اور پائتھون اس کی مثالیں ہیں۔ اس میں متغیر کی ٹائپ اس کی ویلیو سے پتہ چلتی ہے۔

strongly typed language
ایسی زبان جس میں ٹائپ کو بزور نافذ کیا جاتا ہے یعنی ایک ٹائپ کو دوسری ٹائپ کے طور پر استعمال نہیں کیا جا سکتا ۔ اگر ایک متغیر میں نمبر ہے تو اسے اسٹرنگ کے طور پر نہیں برتا جا سکتا تاوقتیکہ اسے واضح طور پر اسٹرنگ میں بدلا نہ جائے۔ جاوا اور پائتھون اس کی مثالیں ہیں۔

weakly typed language
ایسی زبان جس میں ٹائپ کو نظر انداز کر دیا جاتا ہے strongly typed کی متضاد ۔ وی بی سکرپٹ اس کی مثال ہے۔

پائتھون strongly typed اور dynamically typed زبان ہے
 
لگتا ہے ہمارے آڑھے ٹیڑھے بیانات سے سب ہی عاجز آگئے ہیں اور ہم یہاں اکیلے ہی رہ گئے۔

یاشاید

محب بھیا ناراض ہوگئے۔

کیسی باتیں کر رہے ہو بھئی، میں تو خوش ہوں کہ کچھ لوگ ابھی میدان میں ہیں اور یہ تو مل جل کر ہی ہم سیکھ رہے ہیں۔

تم اکیلے تو نہیں ہو ، نمرہ اور فاتح نے جواب دیے تو ہیں۔
 
interpreter کو استعمال کرنے کے دو طریقے ہیں :

interactive mode
script mode

interactive mode میں ہم ایک prompt استعمال کریں گے اور اس پر جو لکھیں گے اسے interpreter چلا دے گا۔

>>> chevron پائتھون میں prompt کہلاتا ہے

اسے ہم ایک کیلکولیٹر کے طور پر بھی استعمال کر سکتے ہیں۔

>>> 1 + 1
2

دوسرا طریقہ ہے کہ کوڈ کو کسی فائل میں لکھ کر محفوظ کر لیا جایا، یہ فائل سکرپٹ کہلائے گی اور انٹرپریٹر اس کی ہدایات کو ایک ایک کرکے چلا دے گا۔ عموما پائتھون سکرپٹ کا اختتام .py میں ہوتا ہے۔
 
پروگرام کیا ہے
پروگرام ہدایات کا ایک ترتیب وار مجموعہ ہوتا ہے جو بتاتا ہے کہ کیسے حساب و تخمینہ لگانا ہے۔ تخمینہ سراسر حسابی بھی ہو سکتا ہے جس میں مساوات حل کرنا اور یہ علامتی تخمینہ بھی ہو سکتا ہے جس میں کسی دستاویز میں کسی تحریر کو ڈھونڈنا اور پھر کسی اور تحریر سے بدلنا حتی کہ ایک پروگرام کو کمپائل کرنا بھی ہو سکتا ہے۔

پروگرام کوئی بھی ہو اور کسی بھی زبان میں لکھا ہو ، عموما یہ بنیادی ہدایات ہر زبان میں موجود ہوتی ہیں

ان پٹ
ڈیٹا جو کی بورڈ ، فائل یا کسی بھی دوسری ڈیوائس کی شکل میں ہو سکتا ہے

آؤٹ پٹ
ڈیٹا کو کسی سکرین پر ڈسپلے کرنا یا کسی فائل یا ڈیوائس کو بھیجنا

حساب
بنیادی حسابی عمل جیسا کہ جمع ، تفریق

شرائطی عمل درآمد (conditional execution)
کچھ شرائط کو دیکھنا اور پھر اس کے مطابق چند ہدایات کو ترتیب وار چلانا

دہرائی (repetition)
چند ہدایات بار بار تھوڑی سی تبدیلی کے ساتھ چلانا

تمام پروگرام چاہے کتنے ہی پیچیدہ ، گنجلک اور بڑے کیوں نہ ہوں وہ چھوٹے ٹکڑوں میں بٹ کر یہی کام کر رہے ہوتے ہیں۔
 
Debugging
پروگرامنگ میں غلطیوں کو bugs کہتے ہیں اور ان غلطیوں کو ڈھونڈنے کا عمل debugging کہلاتا ہے۔

تین قسم کی غلطیاں ایک پروگرام میں ہو سکتی ہیں
syntax errors
runtime errors
semantic errors

syntax errors
یہ ایسی غلطیاں ہوتی ہیں جن کا تعلق پروگرام کی ساخت اور ساخت کے قواعد سے ہوتا ہے۔ ایسی غلطیوں کی موجودگی میں پائتھون پروگرام کو چلانے سے انکاری ہوتا ہے جب تک تمام ایسی غلطیاں دور نہ ہو جائیں۔ (1+2) اس میں اگر ایک قوسین چھوٹ جائے تو یہ syntax error ہو گی اور اسے دور کرنا ہوگا۔ ایسا ہی ہے جیسے انگریزی میں ایک جملے کی تکمیل فل سٹاپ سے ہوتی ہے اور اگر آپ وہ نہ لگائیں تو تکمیل کا پتہ نہیں چلے گا۔

runtime errors (نفاذی یا تعمیلی غلطیاں)
یہ پروگرام کے چلتے وقت سامنے آتی ہیں اور exceptions بھی کہلاتی ہیں۔ ان سے کم کم واسطہ پڑتا ہے مگر ان کا دور کرنا پہلی غلطیوں کے مقابلے میں دشوارہوتا ہے۔

semantic errors (معنوی غلطیاں)
اس قسم کی غلطیاں پروگرام کو چلنے سے نہیں روکتی اور نہ ہی کسی قسم کا اشارہ دیتی ہیں کہ پروگرام میں غلطی ہے۔ یہ منطقی غلطیاں ہوتی ہیں جو کہ پروگرام کی حسب منشا تکمیل میں رکاوٹ پیدا کرتی ہیں۔ پروگرام سے جس طرح کی آؤٹ پٹ آپ توقع کر رہے ہوتے ہیں اس سے مختلف نکلنے کی صورت میں ایسی ہی غلطیوں کا عمل دخل ہوتا ہے۔ انہیں درست کرنے کے لیے آپ کو پروگرام کی منطق کو دوبارہ دیکھنا اور درست کرنا پڑتا ہے۔
 
زبردست بہت ہی معلوماتی دھاگہ ہے۔ بہت سے بنیادی کانسیپٹس واضح ہوئے۔ جب میں محفل کا رکن بنا تھا تو اس زمانے میں محب بھائی سی شارپ سکھانے کا کہتے رہتے تھے مگر سکھاتے نہیں تھے۔ :p

لیکن اس بار لگ رہا ہے کہ انشاءاللہ پائتھون سکھا کر دم لیں گے۔ کم از کم اس قسم کی بنیادی معلومات اتنے آسان انداز میں محفل میں آج تک پڑھنے کو نہیں ملیں۔ یہ سلسلہ جاری رہنا چاہیئے۔ باقی تمام لوگوں کا بھی شکریہ جنھوں نے اس دھاگے میں حصہ ڈالا۔ :thumbsup:
 

اشتیاق علی

لائبریرین
بالکل شعیب بھائی میں آپ کی بات سے متفق ہوں۔ :)
علوی صاحب نے واقعی بہت آسان اور عمدہ تحریر لکھی جس سے ابتدائی معلومات حاصل ہوئیں کہ پروگرام کیا اس میں کیا کیا چیزیں ہیں اور موٹی موٹی خرابیوں کے بارے میں بھی پتہ چل گیا ۔
کیوں ناں ایسی معلومات کے لیے محفل کے کسی مناسب زمرے میں الگ دھاگہ کھول دیا جائے ۔ تاکہ نئے ممبران اور دیگر اراکین کے لیے سہولت ہو جائے۔
 
زبردست بہت ہی معلوماتی دھاگہ ہے۔ بہت سے بنیادی کانسیپٹس واضح ہوئے۔ جب میں محفل کا رکن بنا تھا تو اس زمانے میں محب بھائی سی شارپ سکھانے کا کہتے رہتے تھے مگر سکھاتے نہیں تھے۔ :p

لیکن اس بار لگ رہا ہے کہ انشاءاللہ پائتھون سکھا کر دم لیں گے۔ کم از کم اس قسم کی بنیادی معلومات اتنے آسان انداز میں محفل میں آج تک پڑھنے کو نہیں ملیں۔ یہ سلسلہ جاری رہنا چاہیئے۔ باقی تمام لوگوں کا بھی شکریہ جنھوں نے اس دھاگے میں حصہ ڈالا۔ :thumbsup:

بہت شکریہ شوبی اور واقعی ماضی یاد کروا دیا ، اصل میں سی شارپ سیکھنے کا ارادہ ہی رہ گیا تو اس لیے شروع نہ ہو سکی۔

اب پائتھون پر کوشش ہے کہ بنیادی چیزوں پر گفتگو ہو اور سب دوستوں کے ساتھ مل جل کر اسے کسی بھی نو آموز کے لیے آسان بنایا جائے۔ میں چاہتا ہوں کہ آپ سب بھی کسی بھی چیز کی مزید تشریح کے لیے یا ایک دو پوائنٹس کا اضافہ کرکے اپنا حصہ ڈالتے جائیں۔ اس سے کافی آسانی رہے گی۔
 
بالکل شعیب بھائی میں آپ کی بات سے متفق ہوں۔ :)
علوی صاحب نے واقعی بہت آسان اور عمدہ تحریر لکھی جس سے ابتدائی معلومات حاصل ہوئیں کہ پروگرام کیا اس میں کیا کیا چیزیں ہیں اور موٹی موٹی خرابیوں کے بارے میں بھی پتہ چل گیا ۔
کیوں ناں ایسی معلومات کے لیے محفل کے کسی مناسب زمرے میں الگ دھاگہ کھول دیا جائے ۔ تاکہ نئے ممبران اور دیگر اراکین کے لیے سہولت ہو جائے۔

شکریہ اشتیاق صاحب ،

جی اس سلسلے میں ابن سعید کو ٹیگ کرنے سے پہلے کچھ مواد جمع کر لیں تو پھر ایسا یقینا سود مند ہوگا۔ آپ بھی جو دھاگہ کھولنا چاہ رہے تھے وہ کھول لیں تو پھر شاید آئی ٹی کے بنیادی موضوعات پر ایک ذیلی زمرہ بنایا جا سکے۔
 
فطری زبانیں (Natural Languages)
ایسی زبانیں جو لوگ خود نہیں بناتے بلکہ وہ آپ معرض وجود میں آتی ہیں جیسا کہ انگریزی ، اردو ، فارسی۔

رسمی زبانیں (Formal Languages)
ایسی زبانیں جو لوگ خود ڈیزائن کرتے ہیں چند مخصوص کام کرنے کے لیے یا کسی خاص اطلاقیہ کے لیے ۔ کیمیا دان مالیکیول کی ساخت کے لیے ایک رسمی زبان استعمال کرتے ہیں ، اسی طرح حساب میں اعداد اور علامتوں کو ظاہر کرنے کے لیے ایک مخصوص زبان ہوتی ہے۔

پروگرامنگ زبانیں بھی ایسی رسمی زبانیں ہوتی ہیں جو ڈیزائن کی جاتی ہیں مخصوص حسابی تخمینہ جات(computational) کو انجام دینے کے لیے جس میں بہت سے کام انجام دیے جا سکتے ہیں۔

فطری زبانیں نحو(syntax) کے معاملے میں اتنی سخت نہیں ہوتی مگر رسمی زبانیں اس معاملے میں بہت سخت ہوتی ہیں۔
نحو(syntax) کے قواعد عموما دو حصوں میں ہوتے ہیں:
ٹوکن (tokens)
ساخت (structure)

ٹوکن (tokens) زبان کے بنیادی اجزا ہوتے ہیں جیسا کہ الفاظ ، نمبر ۔
ساخت (structure) اس طریقہ سے متعلق ہوتی جس میں ٹوکنز کو ترتیب دیا جاتا ہے یعنی الفاظ و اعداد کی ترتیب کے متعلق قواعد۔
 

اشتیاق علی

لائبریرین
شکریہ اشتیاق صاحب ،

جی اس سلسلے میں ابن سعید کو ٹیگ کرنے سے پہلے کچھ مواد جمع کر لیں تو پھر ایسا یقینا سود مند ہوگا۔ آپ بھی جو دھاگہ کھولنا چاہ رہے تھے وہ کھول لیں تو پھر شاید آئی ٹی کے بنیادی موضوعات پر ایک ذیلی زمرہ بنایا جا سکے۔
سعود بھائی یقینا اس سلسلہ میں بہترین کام ہی کریں گے۔ اور میرے خیال سے اچھا یہی ہو گا کہ دھاگہ بھی وہی کھولے جو اس سلسلہ میں کچھ نہ کچھ لکھ رہا ہے ۔
 
بالکل پہلے مواد اکٹھا ہو جائے پھر پروگرامنگ سیکھئے کے نام سے ایک علیحدہ زمرہ بنادیا جائے۔ مجھے تھوڑی بہت فلیش ایکشن اسکرپٹ آتی ہے جس کے بنیادی کانسیپٹس پر میں لکھ سکتا ہوں۔ فلیش ٹیوٹوریل سیکشن میں میں نے ایک علیحدہ دھاگہ شروع کیا تھا ایکشن اسکرپٹ کے لیے۔ سوچ رہا ہوں اسی میں اضافہ کرنا شروع کر دوں۔ یہاں جو سوالات پوچھے جائیں گے، اگر اس حوالے سے میرے پاس معلومات ہوئیں تو وہ میں یہاں پوسٹ کر دوں گا انشاءاللہ!
 
سعود بھائی یقینا اس سلسلہ میں بہترین کام ہی کریں گے۔ اور میرے خیال سے اچھا یہی ہو گا کہ دھاگہ بھی وہی کھولے جو اس سلسلہ میں کچھ نہ کچھ لکھ رہا ہے ۔
سعود بھائی اس وقت کافی کاموں میں مصروف ہیں اس لیے ان کے لیے وقت نکالنا بہت مشکل ہوگا ۔

آپ کسی بھی سلسلے میں کوئی دھاگہ کھول لیں جس میں آپ سمجھتے ہیں کہ آپ اضافہ کر سکتے ہیں ، یقینا کچھ لوگ اس میں ضرور آپ کے ساتھ ہوں گے۔
 

اشتیاق علی

لائبریرین
بالکل پہلے مواد اکٹھا ہو جائے پھر پروگرامنگ سیکھئے کے نام سے ایک علیحدہ زمرہ بنادیا جائے۔ مجھے تھوڑی بہت فلیش ایکشن اسکرپٹ آتی ہے جس کے بنیادی کانسیپٹس پر میں لکھ سکتا ہوں۔ فلیش ٹیوٹوریل سیکشن میں میں نے ایک علیحدہ دھاگہ شروع کیا تھا ایکشن اسکرپٹ کے لیے۔ سوچ رہا ہوں اسی میں اضافہ کرنا شروع کر دوں۔ یہاں جو سوالات پوچھے جائیں گے، اگر اس حوالے سے میرے پاس معلومات ہوئیں تو وہ میں یہاں پوسٹ کر دوں گا انشاءاللہ!
مطلب آپ فلیش کے ماہر ہیں۔ بہت خوب ۔ ان ٹیوٹوریلز کا ہمیں بھی انتظار رہے گا۔
 
Top