प्रौद्योगिकी साझेदारी

अध्यायः 6 String Objects तथा Slicing Operations इति

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

विषयवस्तुसारणी

अध्यायः 6 String Objects तथा Slicing Operations इति

६.१ स्ट्रिंग् ऑब्जेक्ट्

६.२ वर्णेषु सामान्यतया प्रयुक्ताः पद्धतयः

6.3 स्लाइसिंग् ऑपरेशन

अध्यायः 6 String Objects तथा Slicing Operations इति

६.१ स्ट्रिंग् ऑब्जेक्ट्

String: बहुभिः वर्णैः युक्तः स्ट्रिंग्

वर्णाः - नग्ननेत्रेण दृश्यमानाः प्रतीकाः

बाइट्स् : नग्ननेत्रेण अदृश्यम्

python कथं स्ट्रिंग् परिभाषयति :

एकल उद्धरण द्विगुण उद्धरण त्रिगुण उद्धरण str()

६.२ वर्णेषु सामान्यतया प्रयुक्ताः पद्धतयः

 >>> dir(s)
 ['capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'removeprefix', 'removesuffix', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

capitalize ------- स्ट्रिंग् मध्ये प्रथमं अक्षरं बृहत् कृत्वा कुर्वन्तु

 >>> s
 'this is a string'
 >>> s.capitalize()
 'This is a string'

center(width, fillchar=' ') ------ दत्तदीर्घतायाः अनुसारं स्ट्रिंग् केन्द्रं कृत्वा केन्द्रे संरेखयन्तु

rjust --------- दक्षिण संरेखितम्

ljust ------ वामसंरेखणं

 >>> help(s.center)
 Help on built-in function center:
 ​
 center(width, fillchar=' ', /) method of builtins.str instance
     Return a centered string of length width.
 ​
     Padding is done using the specified fill character (default is a space).
 ​
 >>> s.center(40)
 '            this is a string            '
 >>> s.center(40,"*")
 '************this is a string************'
 >>> s.rjust(40)
 '                        this is a string'
 >>> s.ljust(40)
 'this is a string                        '
 >>> s.ljust(40,"*")
 'this is a string************************'
 >>> s.rjust(40,"*")
 '************************this is a string'

count ---------- स्ट्रिंग् मध्ये वर्णः कियत्वारं दृश्यते इति गणयति

 >>> s
 'this is a string'
 >>> s.count("s")
 3
 >>> s.count("is")
 2

endswith ------- स्ट्रिंग् XXX इत्यनेन समाप्तं भवति वा इति निर्धारयन्तु

startswith ------- निर्धारयन्तु यत् स्ट्रिंग् XXX इत्यनेन आरभ्यते वा इति

 >>> s.endswith("g")
 True
 >>> s.endswith("ing")
 True
 >>> s.endswith("f")
 False
 >>> s.startswith("t")
 True
 >>> s.startswith("f")
 False

index ------ यत्र प्रथमं स्ट्रिंग् मध्ये अन्वेषितः वर्णः अथवा स्ट्रिंग् दृश्यते यदि सः नास्ति तर्हि अपवादः (error report) क्षिप्तः भविष्यति ।

rindex ------- दक्षिणतः वामतः अन्वेषणं, यत्र प्रथमवारं अन्वेषणं क्रियमाणं वर्णं वा तारं वा स्ट्रिंग् (स्ट्रिंग् मध्ये वामतः दक्षिणतः अन्वेषणं कुर्वतः वर्णस्य अथवा स्ट्रिंग् इत्यस्य अन्तिमघटनायाः बराबरम्) स्थाने दृश्यते ), यदि नास्ति तर्हि अपवादं क्षिपन्तु (दोषं निवेदयन्तु)

 >>> s
 'this is a string'
 >>> s.index("s")
 3
 >>> s.index("is")
 2
 >>> s.index("f")
 Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
 ValueError: substring not found
 >>> s.index(" ")
 4
 >>> s.rindex("s")
 10
 >>> s.rindex("f")
 Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
 ValueError: substring not found

find ------- यत् स्थानं प्रथमं अन्वेषितं वर्णं वा तारं वा स्ट्रिंग् मध्ये दृश्यते यदि सः नास्ति तर्हि -1 प्रत्यागच्छति ।

rfind------ दक्षिणतः वामपर्यन्तं अन्वेष्टुम्, तारस्य वर्णस्य वा तारस्य वा प्रथमा आगमनस्य स्थितिः (वामतः दक्षिणतः तारस्य वर्णस्य वा तारस्य वा अन्तिमस्य स्थाने समतुल्यम्) ), यदि नास्ति तर्हि -1 इति प्रत्यागच्छति

 >>> s
 'this is a string'
 >>> s.find("s")
 3
 >>> s.find("f")
 -1
 >>> s.rfind("f")
 -1
 >>> s.rfind("s")
 10

encode ----- python3 इत्यस्मिन् स्ट्रिंग् बाइट् मध्ये परिवर्तयितुं विधिः, बाइट्स् स्ट्रिंग् मध्ये परिवर्तयितुं decode() मेथड् (बाइट् मध्ये विधिः)

 >>> s
 'this is a string'
 >>> s.encode()
 b'this is a string'
 >>> d = s.encode()
 >>> d
 b'this is a string'
 >>> type(d)
 <class 'bytes'>
 >>> d
 b'this is a string'
 >>> d.decode()
 'this is a string'
 >>> ss = d.decode()
 >>> ss
 'this is a string'
 >>> type(ss)
 <class 'str'>

प्रारूप ------ स्वरूप स्ट्रिंग, संयोजित स्ट्रिंग

isupper ------ स्ट्रिंग् सर्वाणि बृहत् अक्षराणि सन्ति वा इति निर्धारयति

islower ----- ------ स्ट्रिंग् सर्वाणि लघु अक्षराणि सन्ति वा इति निर्धारयन्तु

>>> s.isupper()
False
>>> s.islower()
False

istitle ----- उपाधिः अस्ति वा इति निर्धारयतु

>>> s.istitle()
False
>>> ss = "This Is A Dog"
>>> ss.istitle()
True

isspace ----- अन्तरिक्षं वा इति निर्धारयितुं सामान्यतया न प्रयुज्यते ।

>>> sss = "       "
>>> sss.isspace()
True
>>> ss
'This Is A Dog'
>>> ss.isspace()
False

isdigit ------ सङ्ख्या अस्ति वा इति निर्धारयतु

>>> sss = "123234344"
>>> sss.isdigit()
True
>>> ss
'This Is A Dog'
>>> ss.isdigit()
False
>>> sss = "1233443gggg"
>>> sss.isdigit()
False

isalnum ------ इति निर्धारयति यत् एतत् अक्षराणि संख्या च (अल्फा-संख्यात्मकम्) अस्ति वा इति ।

>>> help(s.isalnum)
Help on built-in function isalnum:

isalnum() method of builtins.str instance
    Return True if the string is an alpha-numeric string, False otherwise.

    A string is alpha-numeric if all characters in the string are alpha-numeric and
    there is at least one character in the string.

>>> sss
'1233443gggg'
>>> sss.isalnum()
True
>>> ss
'This Is A Dog'
>>> ss.isalnum()
False

isalpha ------ इति अक्षरं वा इति निर्धारयति

title ----- स्ट्रिंग् शीर्षकस्वरूपे परिवर्तयन्तु

>>> s
'This is a string'
>>> s.istitle()
False
>>> s.title()
'This Is A String'
>>> sss = s.title()
>>> sss
'This Is A String'
>>> sss.istitle()
True

upper ------- स्ट्रिंग् बृहत् अक्षरं परिवर्तयन्तु

lower ------- स्ट्रिंग् लघुवर्णे परिवर्तयन्तु

>>> s
'This is a string'
>>> s.lower()
'this is a string'
>>> s.upper()
'THIS IS A STRING'

split ----- निर्दिष्टचिह्नानुसारं स्ट्रिंग् विभजन्तु, ततः रिटर्न् मूल्यं सूची अस्ति

>>> s
'This is a string'
>>> s.split(" ")
['This', 'is', 'a', 'string']
>>> l = s.split(" ")
>>> l
['This', 'is', 'a', 'string']
>>> type(l)
<class 'list'>
>>> l = s.split("s")
>>> l
['Thi', ' i', ' a ', 'tring']

join ------ निर्दिष्टस्वरूपानुसारं पुनरावर्तनीयं वस्तु स्ट्रिंग् मध्ये संयोजयति

>>> ls = ["A","B","c","d"]
>>> type(ls)
<class 'list'>
>>> ss = " ".join(ls)
>>> ss
'A B c d'
>>> type(ss)
<class 'str'>
>>> ss = "*".join(ls)
>>> ss
'A*B*c*d'

पट्टिका ------- उभयतः रिक्तस्थानानि निष्कासयन्तु

rstrip------ दक्षिणतः रिक्तस्थानानि स्वच्छानि कुर्वन्तु

lstrip -------- वामस्थानानि स्वच्छानि कुर्वन्तु

>>> ss = "                              hhhhhhh                                  "
>>> ss
'                              hhhhhhh                                  '
>>> ss.strip()
'hhhhhhh'
>>> ss.strip()
'hhhhhhh'
>>> ss
'                              hhhhhhh                                  '
>>> ss.rstrip()
'                              hhhhhhh'
>>> ss.lstrip()
'hhhhhhh                                  '

replace ("मूलवर्णः", "नववर्णः") ------ तत्सम्बद्धं वर्णं प्रतिस्थापयन्तु

>>> s
'This is a string'
>>> s.replace("s","t")
'Thit it a ttring'

6.3 स्लाइसिंग् ऑपरेशन

स्लाइस्: पुनरावर्तनीयवस्तूनाम् (पात्रं) पृथक् कर्तुं प्रयुक्तम्

व्याकरणनियमाः : १.

object[start_index:end_index:step]

start_index ------- प्रारम्भिक अनुक्रमणिका (प्रारम्भस्थानम्) २.

end_index ------ अन्त्यसूचकाङ्कः (अन्तस्थानं), end_index इत्यत्र मूल्यं न समावेशयति

step ---- step size, सकारात्मकसङ्ख्या अथवा ऋणात्मकसङ्ख्या, सकारात्मकसङ्ख्या (वामतः दक्षिणतः) ऋणात्मकसङ्ख्या (दक्षिणतः वामपर्यन्तं) भवितुम् अर्हति, पूर्वनिर्धारितं मूल्यं 1 भवति

object[:]  ----- 切割的是一个完整的对象
object[start_index:]  ------ 从start_index开始切割到最后的位置,步长为1
object[:end_index] ------ 从最开始的位置切割到end_index处,但是不包含end_index
object[start_index:end_index] ------- 从start_index开始切割到end_index处,但是不包含end_index,步长为1
object[start_index:end_index:step] ------------ 从start_index开始切割到end_index处,但是不包含end_index,步长为step  

अग्रे समापनस्य पृष्ठस्य उद्घाटनस्य च अन्तरं

ls = [०,१,२,३,४,५,६,७,८,९] ।

1. एकं मूल्यं कटयन्तु

>>> ls
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ls[0]
0
>>> ls[-4]
6

2. सम्पूर्णं वस्तु छिनत्तु

>>> ls[:]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ls[::]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ls[::-1]  #-1 表示从右往左切割 所以是倒序
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

3. start_index तथा end_index इत्येतौ द्वौ अपि सकारात्मकसङ्ख्याः सन्ति

>>> ls
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ls[1:6]
[1, 2, 3, 4, 5]
>>> ls[1:6:-1]  # start_index=1 end_index = 6表示的是从1切割到6的位置,但是不包含6处的值,从左往右切割,step=-1 表示从右往左   
[]
>>> ls[6:1]
[]
>>> ls[6:1:-1]
[6, 5, 4, 3, 2]
>>> ls[:6]
[0, 1, 2, 3, 4, 5]
>>> ls[:6:-1]
[9, 8, 7]
>>> ls[6:]
[6, 7, 8, 9]
>>> ls[6::-1]
[6, 5, 4, 3, 2, 1, 0]
>>>

4. start_index तथा end_index इत्येतौ द्वौ अपि ऋणात्मकौ सङ्ख्याौ स्तः

>>> ls
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ls[-1:-6]
[]
>>> ls[-1:-6:-1]
[9, 8, 7, 6, 5]
>>> ls[-6:-1]
[4, 5, 6, 7, 8]
>>> ls[:-6]
[0, 1, 2, 3]
>>> ls[:-6:-1]
[9, 8, 7, 6, 5]
>>> ls[-6:]
[4, 5, 6, 7, 8, 9]
>>> ls[-6::-1]
[4, 3, 2, 1, 0]

5. Start_index तथा end_index इत्येतयोः संयोजनं सकारात्मकं नकारात्मकं च भवति

>>> ls
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ls[1:-6]
[1, 2, 3]
>>> ls[1:-6:-1]
[]
>>> ls[-1:6]
[]
>>> ls[-1:6:-1]
[9, 8, 7]

6. निरन्तरं स्लाइसिंग्

>>> ls
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ls[:8][2:5][-1:]
[4]
ls[:8] ----- [0,1,2,3,4,5,6,7]
ls[:8][2:5]   -----   [2,3,4]
ls[:8][2:5][-1:] ----- [4]

7. स्लाइसिंग् इत्यस्य त्रयः मापदण्डाः अभिव्यक्तिः अपि भवितुम् अर्हन्ति

>>> ls
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ls[2+1:3*2:7%3]
[3, 4, 5]
>>> ls[3:6:1]
[3, 4, 5]
>>> ls[2:6:2]
[2, 4]

8. स्लाइसिंग् इत्यनेन अन्यवस्तूनि अपि छिन्दितुं शक्यन्ते

>>> (1,2,3,4,5,6,7,8,9)[:3]
(1, 2, 3)
>>> "ABCDEFGHIJK"[::2]
'ACEGIK'
>>> for i in range(1,100)[2::3][-10:]:
...     print(i)
...
72
75
78
81
84
87
90
93
96
99

साक्षात्कारप्रश्नाः : १.

1. यदि दत्तांशं कटयितुं स्लाइस्-उपयोगे उपस्क्रिप्ट्-परिधिः अतिक्रान्तः भवति तर्हि त्रुटिः निवेदिता भविष्यति वा?

यदि तत् परिधिम् अतिक्रमति तर्हि सम्पूर्णं वस्तु प्रत्यागमिष्यति यदि तत् [] प्रत्यागमिष्यति ।

2. python मध्ये सूचीं कथं विपर्यस्तं करणीयम् ?

पाश विपर्ययः

[::-1]

सूची.विपरीत() 1.1.