...',"..."Python میں، اگر آپ مندرجہ ذیل حروف میں سے کسی ایک کے ساتھ ان سٹرنگ لٹریلز کا سابقہ لگاتے ہیں، تو قدر فرار کی ترتیب کو بڑھائے بغیر سٹرنگ بن جائے گی۔
rR
سٹرنگز سے نمٹنے کے دوران مفید ہے جو بہت زیادہ بیک سلیش استعمال کرتی ہیں، جیسے کہ ونڈوز پاتھز اور ریگولر ایکسپریشن پیٹرن۔
درج ذیل معلومات یہاں فراہم کی گئی ہیں۔
- فرار کی ترتیب
- خام تاروں میں فرار کے سلسلے کو نظر انداز کریں (غیر فعال)
- نارمل سٹرنگ کو خام سٹرنگ میں تبدیل کریں۔:
repr() - آخر میں بیک سلیش کو نوٹ کریں۔
فرار کی ترتیب
Python میں، ایسے حروف جن کی عام سٹرنگ میں نمائندگی نہیں کی جا سکتی ہے (جیسے ٹیبز اور نیو لائنز) کو بیک سلیش کے ساتھ فرار کی ترتیب کا استعمال کرتے ہوئے بیان کیا جاتا ہے، سی زبان کی طرح۔ فرار کی ترتیب کی ایک مثال ذیل میں دکھائی گئی ہے۔
\t\n
s = 'a\tb\nA\tB'
print(s)
# a b
# A B
خام تاروں میں فرار کے سلسلے کو نظر انداز کریں (غیر فعال)
...',"..."اگر آپ مندرجہ ذیل میں سے کسی ایک کے ساتھ ایسی سٹرنگ لٹریل کا سابقہ لگاتے ہیں، تو قدر فرار کی ترتیب کو بڑھائے بغیر سٹرنگ بن جائے گی۔ ایسی تار کو خام تار کہا جاتا ہے۔
rR
rs = r'a\tb\nA\tB'
print(rs)
# a\tb\nA\tB
خام سٹرنگ ٹائپ نامی کوئی خاص قسم نہیں ہے، یہ صرف ایک سٹرنگ کی قسم ہے اور ایک عام سٹرنگ کے برابر ہے جس کی بیک سلیش مندرجہ ذیل ہے\\
print(type(rs))
# <class 'str'>
print(rs == 'a\\tb\\nA\\tB')
# True
ایک عام سٹرنگ میں، فرار کی ترتیب کو ایک کریکٹر سمجھا جاتا ہے، لیکن خام سٹرنگ میں، بیک سلیش کو بھی کریکٹر کے طور پر شمار کیا جاتا ہے۔ سٹرنگ کی لمبائی اور ہر کریکٹر مندرجہ ذیل ہے۔
print(len(s))
# 7
print(list(s))
# ['a', '\t', 'b', '\n', 'A', '\t', 'B']
print(len(rs))
# 10
print(list(rs))
# ['a', '\\', 't', 'b', '\\', 'n', 'A', '\\', 't', 'B']
ونڈوز پاتھ
جب آپ ونڈوز پاتھ کو سٹرنگ کے طور پر پیش کرنا چاہتے ہیں تو خام سٹرنگ کا استعمال مفید ہے۔
ونڈوز کے راستے بیک سلیش کے ذریعے الگ کیے جاتے ہیں، اس لیے اگر آپ عام سٹرنگ استعمال کرتے ہیں، تو آپ کو اس راستے سے بچنا ہوگا، لیکن اگر آپ خام سٹرنگ استعمال کرتے ہیں، تو آپ اسے ویسا ہی لکھ سکتے ہیں۔ اقدار برابر ہیں۔\\
path = 'C:\\Windows\\system32\\cmd.exe'
rpath = r'C:\Windows\system32\cmd.exe'
print(path == rpath)
# True
نوٹ کریں کہ بیک سلیش کی ایک طاق تعداد کے ساتھ ختم ہونے والی اسٹرنگ کے نتیجے میں ایک خرابی ہوگی، جیسا کہ ذیل میں بیان کیا گیا ہے۔ اس صورت میں، یہ ضروری ہے کہ سٹرنگ کو ایک عام سٹرنگ کے طور پر لکھیں، یا سٹرنگ کے صرف آخر کو ایک عام سٹرنگ کے طور پر لکھ کر اس کو جوڑ دیں۔
path2 = 'C:\\Windows\\system32\\'
# rpath2 = r'C:\Windows\system32\'
# SyntaxError: EOL while scanning string literal
rpath2 = r'C:\Windows\system32' + '\\'
print(path2 == rpath2)
# True
repr() کے ساتھ عام تاروں کو خام تاروں میں تبدیل کریں
اگر آپ ایک عام سٹرنگ کو خام سٹرنگ میں تبدیل کرنا چاہتے ہیں (غیر فعال) فرار کے سلسلے کو نظر انداز کرتے ہوئے، آپ بلٹ ان فنکشن repr() استعمال کر سکتے ہیں۔
s_r = repr(s)
print(s_r)
# 'a\tb\nA\tB'
جو repr() لوٹاتا ہے وہ ایک سٹرنگ ہے جو کسی چیز کی نمائندگی کرتی ہے جیسے کہ اس کی وہی قدر ہوتی ہے جب اسے eval() میں آگے اور پیچھے آنے والے حروف کے ساتھ پاس کیا گیا تھا۔
print(list(s_r))
# ["'", 'a', '\\', 't', 'b', '\\', 'n', 'A', '\\', 't', 'B', "'"]
سلائسز کا استعمال کرتے ہوئے، ہم r منسلک کے ساتھ خام سٹرنگ کے برابر سٹرنگ حاصل کر سکتے ہیں۔
s_r2 = repr(s)[1:-1]
print(s_r2)
# a\tb\nA\tB
print(s_r2 == rs)
# True
print(r'\t' == repr('\t')[1:-1])
# True
آخر میں بیک سلیش کو نوٹ کریں۔
چونکہ بیک سلیش اس کے فوراً بعد کوٹنگ کریکٹر سے بچ جاتا ہے، اس لیے اگر سٹرنگ کے آخر میں بیک سلیش کی ایک عجیب تعداد موجود ہو تو ایک خرابی واقع ہو گی۔ بیک سلیش کی ایک برابر تعداد ٹھیک ہے۔
# print(r'\')
# SyntaxError: EOL while scanning string literal
print(r'\\')
# \\
# print(r'\\\')
# SyntaxError: EOL while scanning string literal


