પાયથોન નક્કી કરે છે અને તપાસે છે કે સ્ટ્રિંગ આંકડાકીય છે કે આલ્ફાબેટીક છે

બિઝનેસ

પાયથોન સ્ટ્રિંગ પ્રકાર આંકડાકીય છે કે આલ્ફાબેટીક છે તે નક્કી કરવા અને તપાસવા માટે ઘણી સ્ટ્રિંગ પદ્ધતિઓ પ્રદાન કરે છે.

દરેક પદ્ધતિને નમૂના કોડ સાથે સમજાવવામાં આવી છે.

  • સ્ટ્રિંગ દશાંશ અંક છે કે કેમ તે નક્કી કરે છે:str.isdecimal()
  • જો શબ્દમાળા એક સંખ્યા છે તે નક્કી કરવું:str.isdigit()
  • નિર્ધારિત કરે છે કે શું સ્ટ્રિંગ એ સંખ્યાનું પ્રતિનિધિત્વ કરતું અક્ષર છે:str.isnumeric()
  • સ્ટ્રિંગ આલ્ફાબેટીક છે કે કેમ તે નક્કી કરે છે:str.isalpha()
  • સ્ટ્રિંગ આલ્ફાન્યૂમેરિક છે કે કેમ તે નક્કી કરો:str.isalnum()
  • સ્ટ્રિંગ્સ ASCII અક્ષરો છે કે કેમ તે નક્કી કરે છે:str.isascii()
  • ખાલી શબ્દમાળાનો ચુકાદો
  • નક્કી કરો કે શું સ્ટ્રિંગ્સને સંખ્યામાં રૂપાંતરિત કરી શકાય છે

isascii() સિવાયની પદ્ધતિઓ માટે, ખાલી સ્ટ્રિંગ ધરાવતી સ્ટ્રિંગ, નીચેના ચિહ્નો, વગેરે, ખોટા છે.

  • ,
  • .
  • -

-1.23, વગેરે, સંખ્યાત્મક મૂલ્ય તરીકે આ વિભાગના અંતે સમજાવવામાં આવ્યું છે.

નિયમિત અભિવ્યક્તિઓનો ઉપયોગ અક્ષરોના પ્રકારોને વધુ લવચીક રીતે નિર્ધારિત કરવા અને સંબંધિત અક્ષર પ્રકારોને કાઢવા માટે કરી શકાય છે.

નીચેનાને કેવી રીતે નક્કી કરવું તે વિશે વધુ માહિતી માટે નીચેનો લેખ જુઓ

  • ન્યુમેરિક સ્ટ્રિંગ (str) ને નંબર (int, float) માં કેવી રીતે કન્વર્ટ કરવું
  • અપર અને લોઅર કેસ કેવી રીતે નક્કી કરવું

સ્ટ્રિંગ દશાંશ અંક છે કે કેમ તે નક્કી કરે છે:str.isdecimal()

isdecimal() માં, તે સાચું છે જો બધા અક્ષરો દશાંશ અંકો હોય, એટલે કે, યુનિકોડની સામાન્ય શ્રેણી Nd માંના અક્ષરો. તે પૂર્ણ-પહોળાઈવાળા અરબી અંકો વગેરે માટે પણ સાચું છે.

s = '1234567890'
print('s =', s)
print('isdecimal:', s.isdecimal())
print('isdigit:', s.isdigit())
print('isnumeric:', s.isnumeric())
# s = 1234567890
# isdecimal: True
# isdigit: True
# isnumeric: True

s = '1234567890'
print('s =', s)
print('isdecimal:', s.isdecimal())
print('isdigit:', s.isdigit())
print('isnumeric:', s.isnumeric())
# s = 1234567890
# isdecimal: True
# isdigit: True
# isnumeric: True

જો તેમાં માઈનસ ચિહ્ન અથવા પીરિયડ જેવા પ્રતીક હોય, તો તે ખોટું છે. ઉદાહરણ તરીકે, જો તમે નક્કી કરવા માંગતા હોવ કે ‘-1.23’ જેવી સ્ટ્રિંગ સંખ્યાત્મક મૂલ્ય છે, તો તમે અપવાદ હેન્ડલિંગનો ઉપયોગ કરી શકો છો. આ વિભાગના અંતે આ સમજાવવામાં આવ્યું છે.

s = '-1.23'
print('s =', s)
print('isdecimal:', s.isdecimal())
print('isdigit:', s.isdigit())
print('isnumeric:', s.isnumeric())
# s = -1.23
# isdecimal: False
# isdigit: False
# isnumeric: False

જો શબ્દમાળા એક સંખ્યા છે તે નક્કી કરવું:str.isdigit()

isdigit() માં, isdecimal() માં સાચી હોય તેવી સંખ્યાઓ ઉપરાંત, જે સંખ્યાઓની યુનિકોડ ગુણધર્મ મૂલ્ય Numeric_Type અંક અથવા દશાંશ છે તે પણ સાચા છે.

ઉદાહરણ તરીકે, સ્ક્વેરનું પ્રતિનિધિત્વ કરતી સુપરસ્ક્રિપ્ટ સંખ્યા isdecimal() માં ખોટી છે પરંતુ isdigit() માં સાચી છે.

  • સ્ક્વેરનું પ્રતિનિધિત્વ કરતી સુપરસ્ક્રિપ્ટ નંબર
    • ²
    • \u00B2}’
s = '10\u00B2'
print('s =', s)
print('isdecimal:', s.isdecimal())
print('isdigit:', s.isdigit())
print('isnumeric:', s.isnumeric())
# s = 10²
# isdecimal: False
# isdigit: True
# isnumeric: True

નિર્ધારિત કરે છે કે શું સ્ટ્રિંગ એ સંખ્યાનું પ્રતિનિધિત્વ કરતું અક્ષર છે:str.isnumeric()

isnumeric(), isdigit() માં સાચી હોય તેવી સંખ્યાઓ ઉપરાંત, જે સંખ્યાઓની યુનિકોડ ગુણધર્મ મૂલ્ય Numeric_Type છે તે સંખ્યાઓ પણ સાચી છે.

અપૂર્ણાંક, રોમન અંકો અને ચાઈનીઝ અંકો પણ સાચા છે.

s = '\u00BD'
print('s =', s)
print('isdecimal:', s.isdecimal())
print('isdigit:', s.isdigit())
print('isnumeric:', s.isnumeric())
# s = ½
# isdecimal: False
# isdigit: False
# isnumeric: True

s = '\u2166'
print('s =', s)
print('isdecimal:', s.isdecimal())
print('isdigit:', s.isdigit())
print('isnumeric:', s.isnumeric())
# s = Ⅶ
# isdecimal: False
# isdigit: False
# isnumeric: True

s = '一二三四五六七八九〇'
print('s =', s)
print('isdecimal:', s.isdecimal())
print('isdigit:', s.isdigit())
print('isnumeric:', s.isnumeric())
# s = 一二三四五六七八九〇
# isdecimal: False
# isdigit: False
# isnumeric: True

s = '壱億参阡萬'
print('s =', s)
print('isdecimal:', s.isdecimal())
print('isdigit:', s.isdigit())
print('isnumeric:', s.isnumeric())
# s = 壱億参阡萬
# isdecimal: False
# isdigit: False
# isnumeric: True

સ્ટ્રિંગ આલ્ફાબેટીક છે કે કેમ તે નક્કી કરે છે:str.isalpha()

isalpha(), યુનિકોડ સામાન્ય કેટેગરીની મિલકતમાં નીચેનામાંથી એક સાચી છે.

  • Lm
  • Lt
  • Lu
  • Ll
  • Lo

મૂળાક્ષરો, ચીની અક્ષરો વગેરે સાચા હશે.

s = 'abc'
print('s =', s)
print('isalpha:', s.isalpha())
# s = abc
# isalpha: True

s = '漢字'
print('s =', s)
print('isalpha:', s.isalpha())
# s = 漢字
# isalpha: True

અરબી અંકો ખોટા છે, પરંતુ ચાઈનીઝ અંકો સાચા છે કારણ કે તે પણ ચાઈનીઝ અક્ષરો છે; જો કે, ચાઈનીઝ અંકોમાં શૂન્ય ખોટા છે.

s = '1234567890'
print('s =', s)
print('isalpha:', s.isalpha())
# s = 1234567890
# isalpha: False

s = '1234567890'
print('s =', s)
print('isalpha:', s.isalpha())
# s = 1234567890
# isalpha: False

s = '一二三四五六七八九'
print('s =', s)
print('isalpha:', s.isalpha())
# s = 一二三四五六七八九
# isalpha: True

s = '壱億参阡萬'
print('s =', s)
print('isalpha:', s.isalpha())
# s = 壱億参阡萬
# isalpha: True

s = '〇'
print('s =', s)
print('isalpha:', s.isalpha())
# s = 〇
# isalpha: False

રોમન અંકો ખોટા છે.

s = '\u2166'
print('s =', s)
print('isalpha:', s.isalpha())
# s = Ⅶ
# isalpha: False

સ્ટ્રિંગ આલ્ફાન્યૂમેરિક છે કે કેમ તે નક્કી કરો:str.isalnum()

isalnum(), જો દરેક અક્ષર અત્યાર સુધી સૂચિબદ્ધ નીચેની કોઈપણ પદ્ધતિઓમાં સાચું હોય તો તે સાચું છે.

  • isdecimal()
  • isdigit()
  • isnumeric()
  • isalpha()

દરેક અક્ષરનું વ્યક્તિગત રીતે મૂલ્યાંકન કરવામાં આવે છે, તેથી અક્ષરો અને સંખ્યાઓ ધરાવતી સ્ટ્રિંગ isalnum() માં સાચી હશે, ભલે બીજી બધી પદ્ધતિઓમાં ખોટી હોય.

s = 'abc123'
print('s =', s)
print('isalnum:', s.isalnum())
print('isalpha:', s.isalpha())
print('isdecimal:', s.isdecimal())
print('isdigit:', s.isdigit())
print('isnumeric:', s.isnumeric())
# s = abc123
# isalnum: True
# isalpha: False
# isdecimal: False
# isdigit: False
# isnumeric: False

સ્ટ્રિંગ્સ ASCII અક્ષરો છે કે કેમ તે નક્કી કરે છે:str.isascii()

Python 3.7 એ isascii() ઉમેર્યું. જો સ્ટ્રિંગમાંના બધા અક્ષરો ASCII અક્ષરો હોય તો તે સાચું પરત કરે છે.

સંખ્યાઓ અને અક્ષરો ઉપરાંત, + અને – જેવા પ્રતીકો પણ સાચા છે.

s = 'abc123+-,.&'
print('s =', s)
print('isascii:', s.isascii())
print('isalnum:', s.isalnum())
# s = abc123+-,.&
# isascii: True
# isalnum: False

બિન-ASCII હિરાગાન અને અન્ય પાત્રો ખોટા છે.

s = 'あいうえお'
print('s =', s)
print('isascii:', s.isascii())
print('isalnum:', s.isalnum())
# s = あいうえお
# isascii: False
# isalnum: True

જેમ આપણે આગળ જોઈશું, અન્ય પદ્ધતિઓથી વિપરીત, isascii() ખાલી સ્ટ્રિંગ માટે પણ સાચું પરત કરે છે.

ખાલી શબ્દમાળાનો ચુકાદો

ખાલી શબ્દમાળા isascii() માટે સાચી છે અને અન્ય પદ્ધતિઓ માટે ખોટી છે.

s = ''
print('s =', s)
print('isalnum:', s.isalnum())
print('isalpha:', s.isalpha())
print('isdecimal:', s.isdecimal())
print('isdigit:', s.isdigit())
print('isnumeric:', s.isnumeric())
print('isascii:', s.isascii())
# s = 
# isalnum: False
# isalpha: False
# isdecimal: False
# isdigit: False
# isnumeric: False
# isascii: True

તે ખાલી સ્ટ્રિંગ છે તે નક્કી કરવા માટે bool() નો ઉપયોગ કરો. વળતર મૂલ્ય ખાલી સ્ટ્રિંગ માટે ખોટું છે અને અન્યથા સાચું છે.

print(bool(''))
# False

print(bool('abc123'))
# True

નક્કી કરો કે શું સ્ટ્રિંગ્સને સંખ્યામાં રૂપાંતરિત કરી શકાય છે

નકારાત્મક અથવા અપૂર્ણાંક મૂલ્યના શબ્દમાળાઓમાં પીરિયડ્સ અથવા ઓછા ચિહ્નો હોય છે. તેથી, પરિણામ isascii() સિવાય તમામ પદ્ધતિઓ માટે ખોટું છે.

isascii() માટે સાચું હોવા છતાં, તે સ્ટ્રિંગને આંકડાકીય મૂલ્યમાં રૂપાંતરિત કરી શકાય છે કે કેમ તે નક્કી કરવા માટે યોગ્ય નથી, કારણ કે તે અન્ય પ્રતીકો અથવા આલ્ફાબેટીક અક્ષરો ધરાવે છે તો પણ તે સાચું છે.

s = '-1.23'
print('s =', s)
print('isalnum:', s.isalnum())
print('isalpha:', s.isalpha())
print('isdecimal:', s.isdecimal())
print('isdigit:', s.isdigit())
print('isnumeric:', s.isnumeric())
print('isascii:', s.isascii())
# s = -1.23
# isalnum: False
# isalpha: False
# isdecimal: False
# isdigit: False
# isnumeric: False
# isascii: True

સ્ટ્રીંગ્સને ફ્લોટ() વડે ફ્લોટિંગ પોઈન્ટ નંબર્સમાં રૂપાંતરિત કરી શકાય છે. રૂપાંતરિત કરી શકાતી નથી તે શબ્દમાળાઓ માટે ભૂલ.

print(float('-1.23'))
# -1.23

print(type(float('-1.23')))
# <class 'float'>

# print(float('abc'))
# ValueError: could not convert string to float: 'abc'

અપવાદ હેન્ડલિંગ સાથે, ફંક્શનને વ્યાખ્યાયિત કરી શકાય છે જે જ્યારે સ્ટ્રીંગને ફ્લોટ() સાથે રૂપાંતરિત કરી શકાય છે ત્યારે સાચું વળતર આપે છે.

def is_num(s):
    try:
        float(s)
    except ValueError:
        return False
    else:
        return True

print(is_num('123'))
# True

print(is_num('-1.23'))
# True

print(is_num('+1.23e10'))
# True

print(is_num('abc'))
# False

print(is_num('10,000,000'))
# False

જો તમે એ નક્કી કરવા માંગતા હોવ કે અલ્પવિરામથી અલગ કરેલ નંબર પણ સાચો છે, તો અલ્પવિરામને દૂર કરવા બદલ () નો ઉપયોગ કરો (તેને ખાલી સ્ટ્રિંગથી બદલો).

def is_num_delimiter(s):
    try:
        float(s.replace(',', ''))
    except ValueError:
        return False
    else:
        return True

print(is_num_delimiter('10,000,000'))
# True

જો તમે વ્હાઇટસ્પેસ સીમાંકનને સમર્થન આપવા માંગતા હો, તો તમે આગળ બદલો() નો ઉપયોગ કરી શકો છો.

def is_num_delimiter2(s):
    try:
        float(s.replace(',', '').replace(' ', ''))
    except ValueError:
        return False
    else:
        return True

print(is_num_delimiter2('10,000,000'))
# True

print(is_num_delimiter2('10 000 000'))
# True