பைத்தானில் string ஆனது இம்மியூடபிள் ஆகும்.வேரியபிள் என்பது மெமரியில் உள்ள ஒரு ஆப்ஜெக்டிற்க்கு கொடுக்கும் லேபெள் ஆகும்.. அதாவது இரண்டு வேரியபிள்கள் ஒரே ஸ்டிரிங்குகளை கொண்டிருந்தால் அது மெமரியில் உள்ள ஒரே ஸ்ட்ரிங்க் ஆப்ஜெக்டைக் குறிக்கும். இதை அதன் id() மதிப்பின் மூலம் கண்டறியலாம்.
சான்று: id()
str1="Hello"
str2="Hello"
str3="HELLO"
print (id(str1), id(str2), id(str3))
வெளியீடு:
1215823728944 1215823728944 1215823729648
== என்ற ஆபரேட்டரை பயன்படுத்தி இரண்டு ஸ்ட்ரிங்க் வேரியபிள்களை ஒப்பிட்டால் இரண்டும் ஒரே id() மதிப்பை கொண்டிருந்தால் true எனவும் இல்லையெனில் false எனவும் ரிடர்ன் செய்கின்றது.
சான்று String Comparison using ==
print(str1 == str2)
print(str1 == str3)
வெளியீடு:
True
False
பைத்தானில் != என்ற ஆபரேட்டரும் உள்ளது. இது இரண்டு string வேரியபிள்கள் ஒரே id() மதிப்பை கொண்டிருந்தால் false எனவும் வெவ்வேறு எனில் true எனவும் ரிடர்ன் செய்யும்.
சான்று String Comparison using !=
print(str1 != str2)
print(str1 != str3)
வெளியீடு:
False
True
பைத்தானில் is என்றொரு மற்ற ஆபரேட்டரும் உள்ளது. இது இரண்டு ஆபரெண்டுகளும் ஒன்று எனில் true என்ற பூலியன் மதிப்பை ரிடர்ன் செய்யும்.
சான்று:String Comparison using 'is'
print(str1 is str2)
print(str1 is str3)
வெளியீடு:
True
False
அதே போல் இதற்கு எதிராக வேலை செய்யும் is not என்ற பரேட்டரும் பைத்தானில் உள்ளது.There is also is not operator, which is exactly opposite.
சான்று String Comparison using 'is not' Operator
print (str1 is not str2)
print (str1 is not str3)
வெளியீடு:
False
True
இப்பொழுது == என்ற ஆபரேட்டருக்கும் is என்ற ஆபேரட்டரும் எங்கு மாறுபடுகின்றது என்பதை கீழ் வரும் சான்று மூலம் அறியலாம்.
சான்று String Comparison
var1="Tutorials"
var2="Teacher"
var3="TutorialsTeacher"
print(var1+var2 == var3)
print(var1+var2 is var3)
வெளியீடு:
True
False
var3 ஆனது var1+var2 என்ற ஆபரேசன் மூலம் நடை பெற்றிருந்தாலும் == ஆபரேட்டர் ஆனது true என்ற மதிப்பையும் is ஆபரேட்டர் ஆனது false என்ற மதிப்பையும் ரிடர்ன் செய்கின்றது.
கம்பேரிசன் ஆபரேட்டர்களான ==, !=, <, > <= and >=ஆகியவை ஸ்டிரிங்குளை லெக்சிகோகிராபிக் ஆர்டரில் ஒப்பிடுகின்றது.< மற்றும் > ஆபரேட்டர் ஆனது அதன் யுனிகோட் மதிப்பை வைத்து கம்பேர் செய்கின்றது.
சான்று: > Operator
print("bat">"ball")
print("car">"cat")
வெளியீடு:
True
False
இதில் 't' என்பதன் யுனிகோட் மதிப்பு 'l' என்பதன் யுனிகோட் மதிப்பைக்காட்டிலும் கூடுதல் என்பதால true என்பதை ரிடர்ன் செய்கின்றது.
சான்று:: String Comparison
print(ord('t'), ord('l')) #in first comparison
print(ord('r'), ord('t')) #in second comparison
வெளியீடு:
116 108
114 116
பொதுவாக லோயர் கேஸ் எழுத்துக்களின் யுனிகோட் மதிப்பு அப்பர் கேஸ் எழுத்துக்களை விட கூடுதல் ஆகும்.எனவே கேஸ் சென்சிடிவிட்டி இன்றி ஒப்பிடும் பொழுது அவற்றை லோயர் கேஸிற்கோ அல்லது அப்பர் கேஸிற்கோ மாற்ற வேண்டும்.
சான்று: String Comparison
str1="Hello"
str3="HELLO"
print (str1.upper()>=str3)
வெளியீடு:
True
கடைசியாக match()மற்றும் search() ஃபங்க்சன்கள் பற்றி பார்ப்போம்..இவை re மாடூலில் டெஃபைன் செய்யப்பட்டுள்ளது. match() என்ற ஃபங்க்சன் குறிப்பிட்ட பேட்டெர்னில் ஒரு ஸ்டிரிங்க் ஆரம்பிக்கின்றதா என்பதையும் search() ஃபங்க்சன் ஒரு ஸ்ட்ரிங்க் குறிப்பிட்ட பேட்டர்னைக் கொண்டுள்ளதா என்பதையும் அறிய பயன்படுகின்றது. மற்றொரு ஃபங்க்சன் ஆன findall() ஃபங்க்சன் குறிப்பிட்ட பேட்டெர்ன் ஒரு ஸ்டிர்ங்கில் எங்கெல்லாம் உள்ளது என்பதை ரிடர்ன் செய்யும்.
சான்று: re.match()
import re
string="Simple is better than complex"
pattern="Simple"
if re.match(pattern, string):
print ("found match")
else:
print("match not found")
pattern="dummy"
if re.match(pattern, string):
print ("found match")
else:
print("match not found")
pattern="ple"
obj=re.search(pattern, string)
print ("found pattern at ", obj.start())
obj=re.findall(pattern, string)
print (obj)
வெளியீடு:
found match
match not found
found pattern at 3
['ple', 'ple']
ஒரு குறிப்பிட்ட பேட்டர்னின் ஒவ்வொரு இடத்திலும் உள்ள இண்டெக்சை கண்டறிய finditer() என்ற ஃபங்க்சன் பயன்படுகின்றது.
சான்று: finditer()
obj=re.finditer(pattern, string)
for app in obj:
print ("found pattern at index : ", app.start())
Output
found pattern at index : 3
found pattern at index : 25
நன்றி
முத்து கார்த்திகேயன்,மதுரை.
No comments:
Post a Comment