ලොකු අකුරකින් නූලක් හෝ ලොකු අකුරක් කුඩා අකුරකට පරිවර්තනය කිරීමට ක්රමයක් තිබේද?
උදාහරණයක් ලෙස, "කිලෝමීටර" → "කිලෝමීටර්".
ලොකු අකුරකින් නූලක් හෝ ලොකු අකුරක් කුඩා අකුරකට පරිවර්තනය කිරීමට ක්රමයක් තිබේද?
උදාහරණයක් ලෙස, "කිලෝමීටර" → "කිලෝමීටර්".
Answers:
භාවිතා කරන්න .lower()
- උදාහරණයක් ලෙස:
s = "Kilometer"
print(s.lower())
නිල 2.x ප්රලේඛනය මෙහි ඇත:
නිල 3.x ප්රලේඛනය මෙහි ඇත:str.lower()
str.lower()
පයිතන් හි කුඩා අකුරු බවට නූල් පරිවර්තනය කරන්නේ කෙසේද?
සමස්ත පරිශීලක ආදාන නූලක් ලොකු අකුරෙන් හෝ කුඩා අකුරෙන් කුඩා අකුරක් බවට පරිවර්තනය කිරීමට ක්රමයක් තිබේද?
උදා කිලෝමීටර් -> කිලෝමීටර
කැනොනිකල් පයිතොනික් ක්රමය මෙයයි
>>> 'Kilometers'.lower()
'kilometers'
කෙසේ වෙතත්, සිද්ධි සංවේදී නොගැලපීම සිදු කිරීම අරමුණ නම්, ඔබ සිද්ධි-නැවීම භාවිතා කළ යුතුය:
>>> 'Kilometers'.casefold()
'kilometers'
මෙන්න හේතුව:
>>> "Maße".casefold()
'masse'
>>> "Maße".lower()
'maße'
>>> "MASSE" == "Maße"
False
>>> "MASSE".lower() == "Maße".lower()
False
>>> "MASSE".casefold() == "Maße".casefold()
True
මෙය Python 3 හි str ක්රමයකි, නමුත් Python 2 හි ඔබට PyICU හෝ py2casefold දෙස බැලීමට අවශ්ය වනු ඇත - පිළිතුරු කිහිපයක් මෙහි ආමන්ත්රණය කරයි .
පයිතන් 3 සරල නූල් වචනාර්ථ යුනිකෝඩ් ලෙස හසුරුවයි:
>>> string = 'Километр'
>>> string
'Километр'
>>> string.lower()
'километр'
පයිතන් 2 හි, පහත දැක්වෙන්නේ කවචයකට අලවා, වචනානුසාරයෙන් බයිට් මාලාවක් ලෙස සංකේතවත් කරයි utf-8
.
හා lower
අපි එම සංගීත ලබා නිසා බයිට්, දැනුවත් විය හැකි ය යන කවර හෝ වෙනස්කම් සිතියම්ගත නැත.
>>> string = 'Километр'
>>> string
'\xd0\x9a\xd0\xb8\xd0\xbb\xd0\xbe\xd0\xbc\xd0\xb5\xd1\x82\xd1\x80'
>>> string.lower()
'\xd0\x9a\xd0\xb8\xd0\xbb\xd0\xbe\xd0\xbc\xd0\xb5\xd1\x82\xd1\x80'
>>> print string.lower()
Километр
ස්ක්රිප්ට් වලදී, පයිතන් ඇස්කි නොවන (පයිතන් 2.5 වන විට සහ පයිතන් 2.4 හි අනතුරු ඇඟවීම) බයිට් කිසිදු කේතීකරණයක් නොමැති නූලක තිබීම ගැන විරෝධය දක්වනු ඇත, මන්ද අපේක්ෂිත කේතීකරණය අපැහැදිලි වනු ඇත. බව පිළිබඳ වැඩි වශයෙන්, එම යුනිකෝඩ් කෙසේ-කරන්නේද-යන-බලන්න ලේඛන හා පී 263
str
වචනාර්ථයන් භාවිතා කරන්නඑබැවින් unicode
මෙම පරිවර්තනය හැසිරවීමට අපට නූලක් අවශ්ය වන අතර එය යුනිකෝඩ් නූල් වචනාර්ථයෙන් පහසුවෙන් ඉටු කර ගත හැකි අතර එය u
උපසර්ගයක් සමඟ ව්යාකූල කරයි (තවද u
උපසර්ගය පයිතන් 3 හි ද ක්රියාත්මක වන බව සලකන්න ):
>>> unicode_literal = u'Километр'
>>> print(unicode_literal.lower())
километр
බයිට් බයිට් වලට වඩා සම්පූර්ණයෙන්ම වෙනස් බව සලකන්න str
- ගැලවීමේ චරිතය '\u'
අනුගමනය කරන්නේ බයිට් 2 පළල හෝ මෙම unicode
අක්ෂරවල බිට් 16 නිරූපණයෙනි :
>>> unicode_literal
u'\u041a\u0438\u043b\u043e\u043c\u0435\u0442\u0440'
>>> unicode_literal.lower()
u'\u043a\u0438\u043b\u043e\u043c\u0435\u0442\u0440'
දැන් අපට එය ඇත්තේ a ස්වරූපයෙන් නම් str
, අප එය පරිවර්තනය කළ යුතුය unicode
. පයිතන්ගේ යුනිකෝඩ් වර්ගය විශ්ව කේතීකරණ ආකෘතියකි, එය වෙනත් බොහෝ කේතන ක්රමවලට සාපේක්ෂව බොහෝ වාසි ඇත. අපි එක්කෝ භාවිතා කළ හැකිය unicode
ඉදිකිරීමටත් හෝ str.decode
පරිවර්තනය කිරීමට ඇති codec එකේ සමග ක්රමය str
සඳහා unicode
:
>>> unicode_from_string = unicode(string, 'utf-8') # "encoding" unicode from string
>>> print(unicode_from_string.lower())
километр
>>> string_to_unicode = string.decode('utf-8')
>>> print(string_to_unicode.lower())
километр
>>> unicode_from_string == string_to_unicode == unicode_literal
True
මෙම ක්රම දෙකම යුනිකෝඩ් වර්ගයට පරිවර්තනය වේ - සහ යුනිකෝඩ්_ලිටරල් වලට සමාන වේ.
ඔබ සැමවිටම යුනිකෝඩ් හි පෙළ සමඟ වැඩ කිරීම රෙකමදාරු කරනු ලැබේ .
මෘදුකාංගය ක්රියා කළ යුත්තේ අභ්යන්තරව යුනිකෝඩ් නූල් සමඟ වන අතර එය ප්රතිදානය මත විශේෂිත කේතන ක්රමයක් බවට පරිවර්තනය වේ.
කෙසේ වෙතත්, කුඩා අකුරු නැවත වර්ගයට ලබා ගැනීම සඳහා str
, පයිතන් නූල utf-8
නැවත කේතනය කරන්න :
>>> print string
Километр
>>> string
'\xd0\x9a\xd0\xb8\xd0\xbb\xd0\xbe\xd0\xbc\xd0\xb5\xd1\x82\xd1\x80'
>>> string.decode('utf-8')
u'\u041a\u0438\u043b\u043e\u043c\u0435\u0442\u0440'
>>> string.decode('utf-8').lower()
u'\u043a\u0438\u043b\u043e\u043c\u0435\u0442\u0440'
>>> string.decode('utf-8').lower().encode('utf-8')
'\xd0\xba\xd0\xb8\xd0\xbb\xd0\xbe\xd0\xbc\xd0\xb5\xd1\x82\xd1\x80'
>>> print string.decode('utf-8').lower().encode('utf-8')
километр
එබැවින් පයිතන් 2 හි යුනිකෝඩ්ට පයිතන් නූල් වලට කේතනය කළ හැකි අතර පයිතන් නූල් යුනිකෝඩ් වර්ගයට විකේතනය කළ හැකිය.
පයිතන් 2 සමඟ, මෙය යූටීඑෆ් -8 හි ඉංග්රීසි නොවන වචන සඳහා ක්රියා නොකරයි. මෙම අවස්ථාවේ දී decode('utf-8')
උදව් කළ හැකිය:
>>> s='Километр'
>>> print s.lower()
Километр
>>> print s.decode('utf-8').lower()
километр
decode('utf-8')
පයිතන් 3 හි අනවශ්ය දෙයක් පමණක් නොව දෝෂයක් ඇති කරයි යැයි පැවසීමෙන් ටිකක් පැහැදිලි විය යුතුය . ( ref ). උදාහරණය: $python3; >>>s='Километр'; >>>print (s.lower); #result: километр >>>s.decode('utf-8').lower(); #result: ...AttributeError: 'str' object has no attribute 'decode'
@AaronHall හි විශිෂ්ට පිළිතුර සඳහන් කරමින් අපට මෙය කිරීමට දෙවන ක්රමයක් දැකිය හැකිය. >>>s.casefold() #result: километр
එසේම, ඔබට විචල්යයන් කිහිපයක් නැවත ලිවිය හැකිය:
s = input('UPPER CASE')
lower = s.lower()
ඔබ මේ ආකාරයට භාවිතා කරන්නේ නම්:
s = "Kilometer"
print(s.lower()) - kilometer
print(s) - Kilometer
ඇමතූ විට එය ක්රියාත්මක වේ.
s=s.lower()
යා යුතු මාර්ගයයි.
මෙය උත්සාහ නොකරන්න, මුළුමනින්ම නිර්දේශ නොකරන්න, මෙය නොකරන්න:
import string
s='ABCD'
print(''.join([string.ascii_lowercase[string.ascii_uppercase.index(i)] for i in s]))
ප්රතිදානය:
abcd
කිසිවෙකු තවමත් එය ලියා නැති බැවින් ඔබට භාවිතා කළ හැකිය swapcase
(එබැවින් ලොකු අකුරු කුඩා අකුරු බවට පත්වනු ඇත, සහ අනෙක් අතට) (තවද මෙය මා සඳහන් කළ අවස්ථා වලදී භාවිතා කළ යුතුය (ඉහළ සිට පහළට, පහළ සිට ඉහළට)):
s='ABCD'
print(s.swapcase())
ප්රතිදානය:
abcd
>>> "raison d'être".casefold(); "raison d'être"
පරීක්ෂා කරන්න මෙම පිළිතුර ගැනunidecode