پائتھون ٹپس

محمداحمد

لائبریرین
پائتھون ٹپس

پائتھون شیل پر پہلے سے لکھی ہوئی کمانڈ کو دوبارہ سے استعمال کرنے کے لئے Alt+p کی "شارٹ کٹ کی" استعمال کیجے۔ اور کیپس لاک آف ہونا چاہیے۔

شیل کو کسی بھی وقت ری اسٹارٹ کرنے کے لئے Ctrl + F6 کی "شارٹ کٹ کی" استعمال کیجے۔
 

محمداحمد

لائبریرین
کبھی کبھی ہمیں کچھ اعداد سے پہلے 0 لکھنے کی ضرورت پڑتی ہے۔ جو پائتھون میں ویسے ممکن نہیں ہوتا۔

مثلاً اگر ہم وقت (Time) پر کام کر رہے ہیں اور ہمیں ڈیٹا میں 11 گھنٹے اور 5 سیکنڈز ملتے ہیں تو اسے ظاہر (Represent) کرنے کے لئے ہم 5 سے پہلے 0 بھی دکھانا چاہتے ہیں۔ کچھ ایسے۔ 11:05۔

لیکن وہ کچھ یوں نظر آتا ہے۔

PHP:
>>> hours = 11
>>> seconds = 5
>>> print (str(hours)+':'+str(seconds))
11:5
>>>

اس کے لئے ہم اسٹرنگ میتھڈ rjust استعمال کر سکتے ہیں۔ rjust سے مراد Right Justified ہے۔
کچھ ایسے:

PHP:
>>> hours = 11
>>> seconds = 5
>>> print (str(hours).rjust(2,'0')+':'+str(seconds).rjust(2,'0'))
11:05
>>>

rjust میں پہلی دلیل چوڑائی (width) ہے اور دوسری دلیل جگہ بھرنے کے لئے ہے جسے fillchar کہا جاتا ہے۔

عموماً یہ طریقہ پیڈنگ سیٹ کرنے کے لئے استعمال کیا جاتا ہے۔
 
ایک لسٹ جس میں طاق (odd) اور جفت (even) اعداد موجود ہیں۔

لسٹ جامعیت (list comprehension) کے ذریعے لسٹ میں سے ایک ایک عدد کو دیکھا گیا ہے اور پھر عدد کو 2 سے تقسیم کیا گیا ہے ۔
اگر بقایا صفر ہے تو نئی لسٹ میں odd کا اضافہ کر دیا گیا ہے اور اگر بقایا صفر کے سوا کچھ اور ہے یعنی 1 ہے تو even ۔



PHP:
>>> my_list = [1, 7, 11, 8, 13, 2]
>>> [("odd","even")[i % 2 == 0] for i in my_list]
 
['odd', 'odd', 'odd', 'even', 'odd', 'even']
 
List Comprehension

یہ عملی زندگی سے لی گئی مثال ہے ۔ اس میں تمام کوڈان (codon) جو کہ حقیقت میں (triplets of nucleotide bases)کی لسٹ مرتب کی گئی ہے لسٹ جامعیت(List Comprehension) کے ذریعے.


PHP:
>>> bases = ['U', 'C', 'A', 'G']
>>> codons = [a+b+c for a in bases for b in bases for c in bases]
>>> codons
 
['UUU', 'UUC', 'UUA', 'UUG', 'UCU', 'UCC', 'UCA', 'UCG', 'UAU', 'UAC', 'UAA', 'UAG', 'UGU', 'UGC', 'UGA', 'UGG', 'CUU', 'CUC', 'CUA', 'CUG', 'CCU', 'CCC', 'CCA', 'CCG', 'CAU', 'CAC', 'CAA', 'CAG', 'CGU', 'CGC', 'CGA', 'CGG', 'AUU', 'AUC', 'AUA', 'AUG', 'ACU', 'ACC', 'ACA', 'ACG', 'AAU', 'AAC', 'AAA', 'AAG', 'AGU', 'AGC', 'AGA', 'AGG', 'GUU', 'GUC', 'GUA', 'GUG', 'GCU', 'GCC', 'GCA', 'GCG', 'GAU', 'GAC', 'GAA', 'GAG', 'GGU', 'GGC', 'GGA', 'GGG']
 
اگر ریجیکس میں re.findall استعمال کریں تو نتائج tuple کی شکل میں ظاہر ہوتے ہیں، لیکن بسااوقات ہمیں نتائج جملوں کی شکل میں درکار ہوتے ہیں اور findall کا استعمال بھی ناگزیر ہوتا ہے۔ چنانچہ re.findall کے نتائج کو جملوں میں بدلنے کا ایک طریقہ:

PHP:
import re

reg = r"([\w\.-]+)(@)([\w\.-]+)(\.[\w\.]+)"
jumla = "Please contact info-ur@wikimedia.org for assistance. Please contact info-ur@wikimedia.org for assistance. Please contact info-ur@wikimedia.org for assistance"

natija = re.findall(reg, jumla)
if natija:
    tup = natija
    a,*b = tup
    for i in tup:
        print(''.join(i))
 
عمدہ شیئرنگ ہے محمد شعیب

میرے خیال سے یہ لائن اضافی ہے۔

a,*b = tup
یوں:
PHP:
import re

reg = r"([\w\.-]+)(@)([\w\.-]+)(\.[\w\.]+)"
jumla = "Please contact info-ur@wikimedia.org for assistance. Please contact info-ur@wikimedia.org for assistance. Please contact info-ur@wikimedia.org for assistance"

natija = re.findall(reg, jumla)
if natija:
    for i in natija:
        print(''.join(i))
 
Top