تبادلہ خیال variables پر تبصرے

محمدصابر

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

نیرنگ خیال

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

محمداحمد

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

اتنی ساری باتیں تو مجھے نہیں پتہ ! البتہ یہ ہے کہ متغیر کی ڈیٹا ٹائپ ویلیوہی سے اخذ کی جاتی ہے یعنی یہ جاوا اسکرپٹ کی طرح loosely typed variables ہوتے ہیں۔ اور یہ کہ کسی فنکشن میں بتایا جانے والا ویری ایبل لوکل ہوتا ہے اور _main_ میں استعمال ہونے والا گلوبل۔ مین فریم میں استعمال ہونے والے ویری ایبل کو کسی فنکشن میں استعمال کرنے کے لئے global کا keyword استعمال کیا جا تا ہے۔

مثلاً :

PHP:
a = 5
c = 10
 
print (a)
 
 
def abc():
    global a
    a = 15
    print (a)

فائل رن کر نے پر a کی قدر 5 ہوگی جب کہ فنکشن کال کرنے پر a کی قدر 15 ہوگی۔

PHP:
>>>
5
>>> abc()
15
>>>
 

نیرنگ خیال

لائبریرین
اتنی ساری باتیں تو مجھے نہیں پتہ ! البتہ یہ ہے کہ متغیر کی ڈیٹا ٹائپ ویلیوہی سے اخذ کی جاتی ہے یعنی یہ جاوا اسکرپٹ کی طرح loosely typed variables ہوتے ہیں۔ اور یہ کہ کسی فنکشن میں بتایا جانے والا ویری ایبل لوکل ہوتا ہے اور _main_ میں استعمال ہونے والا گلوبل۔ مین فریم میں استعمال ہونے والے ویری ایبل کو کسی فنکشن میں استعمال کرنے کے لئے global کا keyword استعمال کیا جا تا ہے۔

مثلاً :

PHP:
a = 5
c = 10
 
print (a)
 
 
def abc():
    global a
    a = 15
    print (a)

فائل رن کر نے پر a کی قدر 5 ہوگی جب کہ فنکشن کال کرنے پر a کی قدر 15 ہوگی۔

PHP:
>>>
5
>>> abc()
15
>>>
اچھا تو اگر کوئی متغیر دونوں ویلیوز کا کنٹینر ہو تو کیسے کام کرے گا؟
اور دوسرا یہ کہ اوپری مثال میں a کی ویلیو 5 تھی۔ فنکشن کال پر 15 ہو گئی۔ جب فنکشن ایگزٹ ہوگا تو ویلیو 15 رہے گی۔ کیوں کہ گلوبلی متعارف کرائے گئے متغیر کی زندگی پروگرام تک ہونی چاہیئے۔ اس صورت میں فائل میں ویلیو تبدیل ہونے سے غلط نتائج حاصل ہو سکتے ہیں؟ کیوں کہ فنکشن کال درمیان میں ہے۔ میرا خیال ہے کہ اچھا طریقہ کار یہی رہے گا کہ کروی متغیرات شروع میں متعارف کرائے جائیں؟
نوٹ: میں چونکہ اس میں نیا ہوں تو میرے احمقانہ سوالات پر اگر کسی کو اکتاہٹ ہو تو وہ اس دوران کینٹین میں بیٹھ کر چائے پیئے۔ مجھے منع نہ کرے۔ :frustrated:
 

محمداحمد

لائبریرین
اچھا تو اگر کوئی متغیر دونوں ویلیوز کا کنٹینر ہو تو کیسے کام کرے گا؟
اور دوسرا یہ کہ اوپری مثال میں a کی ویلیو 5 تھی۔ فنکشن کال پر 15 ہو گئی۔ جب فنکشن ایگزٹ ہوگا تو ویلیو 15 رہے گی۔ کیوں کہ گلوبلی متعارف کرائے گئے متغیر کی زندگی پروگرام تک ہونی چاہیئے۔ اس صورت میں فائل میں ویلیو تبدیل ہونے سے غلط نتائج حاصل ہو سکتے ہیں؟ کیوں کہ فنکشن کال درمیان میں ہے۔ میرا خیال ہے کہ اچھا طریقہ کار یہی رہے گا کہ کروی متغیرات شروع میں متعارف کرائے جائیں؟
نوٹ: میں چونکہ اس میں نیا ہوں تو میرے احمقانہ سوالات پر اگر کسی کو اکتاہٹ ہو تو وہ اس دوران کینٹین میں بیٹھ کر چائے پیئے۔ مجھے منع نہ کرے۔ :frustrated:

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

اچھا تو اگر کوئی متغیر دونوں ویلیوز کا کنٹینر ہو تو کیسے کام کرے گا؟

یہ بات میری سمجھ نہیں آئی، شاید آپ کی مراد ڈیٹا اسٹرکچر کے موضوعات سے ہے۔

اچھا طریقہ کار یہی رہے گا کہ کروی متغیرات شروع میں متعارف کرائے جائیں؟

کروی متغیرات سے کیا مراد ہے؟



ہماری قیافہ شناسی واقعی کام آ رہی ہے اور آپ سے کافی سیکھنے کو مل رہا ہے۔ :)

نوٹ: میں چونکہ بالکل ہی نیا ہوں تو میرے احمقانہ سوالات پر اگر کسی کو اکتاہٹ ہو تو وہ اس دوران کینٹین میں بیٹھ کر چائے پیئے۔ مجھے منع نہ کرے۔ :frustrated:
 

نیرنگ خیال

لائبریرین
اگر آپ ویری ایبل کو فنکشن تک محدود رکھنا چاہتے ہیں تو بہتر ہے کہ فنکشن میں لوکل ویری ایبلز ہی استعمال کیے جائیں۔
بالکل اور میرا نظریہ بھی یہی ہے کہ اگر اک ہی نام سے متغیر استعمال کرنا ہے تو اسکی عالمگیری ویلیو نہ دیں بلکہ ہر فنکشن کے اندر الگ سے ویلیو دیں۔

یہ بات میری سمجھ نہیں آئی، شاید آپ کی مراد ڈیٹا اسٹرکچر کے موضوعات سے ہے۔
مطلب نمبر اور سٹرنگ اکھٹی ہو تو۔۔۔۔ :rolleyes: اب یہ ڈیٹا اسٹریکچر کیا بلا ہے۔:surprise: ہمیں سٹیک اور لنک لسٹ نہیں پڑھنی ہیں۔ سچی۔۔۔۔۔۔۔۔۔:noxxx:

کروی متغیرات سے کیا مراد ہے؟
گلوبلی کی اردو کی تھی :cry:

ہماری قیافہ شناسی واقعی کام آ رہی ہے اور آپ سے کافی سیکھنے کو مل رہا ہے۔ :)
تو کیا چھپا رہا ہے پائتھون پر میراعلم دیکھ کر
اے کف شنا س میں بھی قیافہ شناس ہوں :ROFLMAO:

نوٹ: میں چونکہ بالکل ہی نیا ہوں تو میرے احمقانہ سوالات پر اگر کسی کو اکتاہٹ ہو تو وہ اس دوران کینٹین میں بیٹھ کر چائے پیئے۔ مجھے منع نہ کرے۔ :frustrated:
میرے جملے کو چوری نہ کیا جائے۔ ورنہ سرقہ کا الزام لگایا جائے گا۔

پس نوشت: پرمزاح آخری دو جملوں کے لیئے کیا تھا۔
 

محمداحمد

لائبریرین
نہیں اگر آپ وہاں تک پہنچے ہیں تو یہ بھی معلوم ہوگا کہ میں نے ادھر کیا لکھا ہوا ہے :twisted:

ویسے عاطف بھائی نے تو یہ کہہ کر سرقہ کوہی legalize کردیا ہے۔ :)
یہ یاد رکھئے کہ عظیم لوگ اکثر ایک جیسا ہی سوچتے ہیں! ؛)
 

محمداحمد

لائبریرین
مطلب نمبر اور سٹرنگ اکھٹی ہو تو۔۔۔ ۔

اس کے بارے میں آپ نے ڈیٹا ٹائپ میں پڑھا ہوگا۔

ویسے عموماً نمبر اور اسٹرنگ علیحدہ ہی لکھے جاتے ہیں اور پھر ان کو کنورٹ کر کے concatenate کروا لیا جاتا ہے۔

PHP:
>>> a = "1"
>>> print (a)
1
>>> b = 2
>>> print (a + b)
Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    print (a + b)
TypeError: Can't convert 'int' object to str implicitly
>>> # اس ایرر کی وجہ يہ ہے کہ 'اے' ايک سٹرنگ ويليو ہےَ اور اسٹرنگ پر حسابی عمل ممکن نہیں۔
>>>
>>>
>>> print (int(a) + b)
3
>>>

ویسے مجھے اب بھی شاید اندازہ نہیں ہے کہ آپ کیا پوچھنا چاہ رہے ہیں۔ :)
 

نیرنگ خیال

لائبریرین
اس کے بارے میں آپ نے ڈیٹا ٹائپ میں پڑھا ہوگا۔

ویسے عموماً نمبر اور اسٹرنگ علیحدہ ہی لکھے جاتے ہیں اور پھر ان کو کنورٹ کر کے concatenate کروا لیا جاتا ہے۔

PHP:
>>> a = "1"
>>> print (a)
1
>>> b = 2
>>> print (a + b)
Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    print (a + b)
TypeError: Can't convert 'int' object to str implicitly
>>> # اس ایرر کی وجہ يہ ہے کہ 'اے' ايک سٹرنگ ويليو ہےَ اور اسٹرنگ پر حسابی عمل ممکن نہیں۔
>>>
>>>
>>> print (int(a) + b)
3
>>>

ویسے مجھے اب بھی شاید اندازہ نہیں ہے کہ آپ کیا پوچھنا چاہ رہے ہیں۔ :)
چوکس ہو گیا کام۔۔۔۔ اصل میں یہ بات تھی کہ 100 Cars تو 100 کے لیئے الگ متغیر اور کارز کے لیئے الگ۔ دونوں کو اک میں سٹور نہیں کیا جا سکتا۔ :)
 

نمرہ

محفلین
مزید اس میں نمبر رینج کیا ہوتی ہے۔ اور سٹرنگ ٹائپ کا متغیر کتنی ویلیو تک کو سٹور رکھ سکتا ہے؟
نمبر اور سٹرنگ کی زیادہ سے زیادہ رینج، سسٹم اور اس کی میموری پرمنحصر ہے، پائتھون کی طرف سے کوئی پابندی عائد نہیں۔
 
مطلب اس میں ہم ویلیو سیٹ کر کے الجبرا کے سوالات کو حل کرسکتے ہیں۔۔
باقاعدہ کورس میں چیزوں کو آرام سے لے کر چلیں گے اور کئی مفید لنک اور مواد کی نشاندہی بھی ہوگی تاکہ جو کوئی مزید سیکھنا چاہے وہ اپنے طور پر سیکھ سکے۔

ویسے ایک دھاگہ مفید مواد کے نام سے موجود ہے اسی زمرے میں۔
 
Top