payment by upi: sinhamit@icici or payment by bank account name: amit kumar sinha, account number: 2646728782 IFSC code: KKBK0005660 SWIFT: KKBKINBB

Please support if you like my work by payment through upi: sinhamit@icici or payment by bank

account name: Amit Kumar Sinha,
account number: 2646728782
IFSC code: KKBK0005660
SWIFT: KKBKINBB


find(), rfind(), startswith(), endswith()   in Category: पाइथन   by amit

🕙 Posted on 2023-07-17 at 19:49:24


अधिक स्ट्रिंग विधियाँ

    पिछले पृष्ठ में, आपने count(), index(), rindex() विधियों के बारे में सीखा है जो न केवल उप-स्ट्रिंग की घटना (occurrences) और स्थिति (position) के बारे में बताते हैं, बल्कि यह भी जांचते हैं कि वह उप-स्ट्रिंग मूल स्ट्रिंग में मौजूद है या नहीं। ये तीन स्ट्रिंग विधियां प्रारंभिक स्थिति (शामिल) और अंतिम स्थिति (बहिष्कृत) के लिए दूसरे और तीसरे तर्क भी लेती हैं। ये दो स्थितियाँ (positions) सूचकांक (index) संख्या हैं जिसके भीतर उप-स्ट्रिंग की खोज की जानी है।

print( 'Hello World'.count( 'a' ) )   # आउटपुट 0 है।

print( 'Hello World'.index( 'a' ) )   # आउटपुट ValueError: substring not found है।

print( 'Hello World'.rindex( 'a' ) )   # आउटपुट ValueError: substring not found है।

    हालाँकि, अन्य स्ट्रिंग विधियाँ हैं जो ठीक से जाँच सकती हैं कि कोई उप-स्ट्रिंग मूल स्ट्रिंग में मौजूद है या नहीं। मैंने विशेष रूप से इन विधियों या अंतर्निहित फ़ंक्शंस के (प्रत्येक के) नाम का help() फ़ंक्शन के साथ आउटपुट का उल्लेख किया है, जब इनको कोष्ठक के भीतर एक तर्क के रूप में रखा जाता है। आपको रिटर्न प्रकार और इन विधियों या अंतर्निहित फ़ंक्शंस के रिटर्न मान (value) को ध्यानपूर्वक अध्ययन करना चाहिए, जिनका उपयोग आप प्रोग्रामिंग स्क्रिप्ट में करेंगे। विवरण के लिए इस पृष्ठ के नीचे देखें।

find(), rfind()

    find() और rfind() विधियाँ क्रमशः (1) बाएँ से दाएँ और (2) दाएँ से बाएँ खोजकर जाँचती हैं कि मूल स्ट्रिंग में कोई उप-स्ट्रिंग मौजूद है या नहीं। इन दो तरीकों में से प्रत्येक प्रारंभिक स्थिति (शामिल) और अंतिम स्थिति (बहिष्कृत) के लिए दूसरे और तीसरे तर्क भी लेती है। ये दो विधियाँ -1 वापस करती हैं जब उप-स्ट्रिंग नहीं मिलती है, अन्यथा उस उप-स्ट्रिंग की सूचकांक संख्या वापस किया जाता है।

print( help( str.find ) )

C:\xampp\htdocs\python2023>py new.py
Help on method_descriptor:

find(...)
    S.find(sub[, start[, end]]) -> int

    Return the lowest index in S where substring sub is found,
    such that sub is contained within S[start:end].  Optional
    arguments start and end are interpreted as in slice notation.

    Return -1 on failure.

None

print( help( str.rfind ) )

C:\xampp\htdocs\python2023>py new.py
Help on method_descriptor:

rfind(...)
    S.rfind(sub[, start[, end]]) -> int

    Return the highest index in S where substring sub is found,
    such that sub is contained within S[start:end].  Optional
    arguments start and end are interpreted as in slice notation.

    Return -1 on failure.

None

print( 'Hello World'.find( 'r' ) )   # आउटपुट 8 है।

print( 'Hello World'.find( 'a' ) )   # आउटपुट -1 है।

print( 'Hello World'.find( 'l' ) )   # आउटपुट 2 है।

print( 'Hello World'.find( 'l', 5, 10 ) )   # आउटपुट 9 है।


print( 'Hello World'.rfind( 'r' ) )   # आउटपुट 8 है।

print( 'Hello World'.rfind( 'a' ) )   # आउटपुट -1 है।

print( 'Hello World'.rfind( 'l' ) )   # आउटपुट 9 है।

print( 'Hello World'.rfind( 'l', 2, 5 ) )   # आउटपुट 3 है।

    यदि आप तीसरे तर्क की स्थिति नहीं जानते हैं, तो उपरोक्त सभी स्ट्रिंग विधियों में, आप -1 या -2, आदि (अंतिम सूचकांक संख्या, यानी नकारात्मक सूचकांक) भी रख सकते हैं।

startswith(), endswith()

    startswith() और endswith() विधियों का उपयोग यह जांचने के लिए किया जाता है कि क्या कोई उप-स्ट्रिंग मूल स्ट्रिंग के उपसर्ग (prefix) या प्रत्यय (suffix) के रूप में मौजूद है। ये दो विधियाँ प्रारंभिक स्थिति (शामिल) और समाप्ति स्थिति (बहिष्कृत) के लिए दूसरे और तीसरे तर्क भी लेते हैं।

print( help( str.startswith ) )

C:\xampp\htdocs\python2023>py new.py
Help on method_descriptor:

startswith(...)
    S.startswith(prefix[, start[, end]]) -> bool

    Return True if S starts with the specified prefix, False otherwise.
    With optional start, test S beginning at that position.
    With optional end, stop comparing S at that position.
    prefix can also be a tuple of strings to try.

None

print( help( str.endswith ) )

C:\xampp\htdocs\python2023>py new.py
Help on method_descriptor:

endswith(...)
    S.endswith(suffix[, start[, end]]) -> bool

    Return True if S ends with the specified suffix, False otherwise.
    With optional start, test S beginning at that position.
    With optional end, stop comparing S at that position.
    suffix can also be a tuple of strings to try.

None

print( 'Hello World'.startswith( 'h' ) )   # आउटपुट False है।

print( 'Hello World'.startswith( 'H' ) )   # आउटपुट True है।

print( 'Hello World'.startswith( 'He' ) )   # आउटपुट True है।

print( 'Hello World'.startswith( 'Wo', 6, 10 ) )   # आउटपुट True है।


print( 'Hello World'.endswith( 'd' ) )   # आउटपुट True है।

print( 'Hello World'.endswith( 'D' ) )   # आउटपुट False है।

print( 'Hello World'.endswith( 'ld' ) )   # आउटपुट True है।

print( 'Hello World'.endswith( 'o', 2, 5 ) )   # आउटपुट True है।

रिटर्न प्रकार और रिटर्न मूल्य

    अब तक, आपने विभिन्न अंतर्निहित फ़ंक्शन्स और कुछ अंतर्निहित फ़ंक्शन्स के लिए विधियाँ भी देखी हैं। कुछ फ़ंक्शन्स और विधियाँ कई तर्क (arguments) ले सकते हैं, जैसे कि print() कोष्ठक के भीतर , (अल्पविराम) द्वारा अलग किए गए कई तर्क ले सकता है। अन्य फ़ंक्शन्स और विधियाँ वास्तव में केवल एक ही तर्क लेते हैं, जैसे कि input(), type(), len(), आदि। अधिकतर, फ़ंक्शन्स और विधियाँ निश्चित संख्या में तर्क लेते हैं, जैसा कि आप उपरोक्त उदाहरणों में देख सकते हैं, जिनमें से कुछ तर्क वैकल्पिक हैं।

C:\Users\yourName>python
Python 3.10.9 (tags/v3.10.9:1dd9be6, Dec 6 2022, 20:01:21) [MSC v.1934 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> help( print )
Help on built-in function print in module builtins:

print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.

    आप उपरोक्त विवरण में देख सकते हैं कि print() फ़ंक्शन का कोई लौटाया गया मान (returned value) नहीं है। किसी भी फ़ंक्शन, विधि या अन्य मॉड्यूल में कई पैरामीटर उन्नत (advanced) उपयोग (uses) के हो सकते हैं। आप उपरोक्त विवरण में देख सकते हैं, print() फ़ंक्शन के value, ...,  के बाद अन्य पैरामीटर हैं, जो शुरुआती विद्यार्थी के लिए अनावश्यक (unnece­ssary) हैं, और इस प्रकार, आप अभिभूत (overwhelm) हो सकते हैं।

print( help( print ) )   # यहां, help() के अंदर print, जैसा कि ऊपर दिखाया गया है, वही आउटपुट प्रदर्शित होगा। बाहरी print() फ़ंक्शन help( print ) कथन को निष्पादित करता है।

print( help( type ) )   # आउटपुट की पहली कुछ पंक्तियाँ यहाँ नीचे दिखाई गई हैं:

Help on class type in module builtins:

class type(object)
|   type(object) -> the object's type
|   type(name, bases, dict, **kwds) -> a new type
|
|   Methods defined here:
|

    कुछ फ़ंक्शंस के आउटपुट को लौटाए गए मान के रूप में उपयोग नहीं किया जा सकता है, जैसे कि print() और type()। लेकिन, अन्य फ़ंक्शन और विधियां आम तौर पर, विशिष्ट डेटा-प्रकार शाब्दिक (रिटर्न प्रकार) आउटपुट करते हैं, यानी len() पूर्णांक डेटा-प्रकार लौटाता है, input() स्ट्रिंग डेटा-प्रकार लौटाता है। अंकगणितीय संचालन में उपयोग करने से पहले input() फ़ंक्शन से आउटपुट को हमेशा टाइप-कास्ट int() या float() अंतर्निहित फ़ंक्शन के साथ करना चाहिए।

x = type( 'hello' )
print( x, type( x ) )   # आउटपुट <class 'str'> <class 'type'> है।

y = len( 'hello' )
print( y, type( y ) )   # आउटपुट 5 <class 'int'> है।

z = input( 'Write something: ' )
print( type( z ) )   # आउटपुट <class 'str'> है।

स्ट्रिंग विधियाँ रिटर्न प्रकार और रिटर्न मान

    किसी विशिष्ट अंतर्निहित फ़ंक्शन, उदाहरण के लिए str() की किसी भी विधि का उपयोग करते समय आपको बहुत सावधान रहना चाहिए। str() फ़ंक्शन स्वयं दिए गए तर्क का एक स्ट्रिंग डेटा-प्रकार लौटाता है। निम्नलिखित तालिका में, आप देख सकते हैं कि विभिन्न विधियाँ या फ़ंक्शन जो समान डेटा-प्रकार लौटा सकते हैं, लेकिन लौटाया गया मान भिन्न होगा, जो कोष्ठक के अंदर तर्क के रूप में पारित अभिव्यक्तियों (कथनों) पर निर्भर करता है। उदाहरण के लिए, जब find() या rfind() के द्वारा मूल स्ट्रिंग में उप-स्ट्रिंग नहीं मिलती है, -1 सूचकांक संख्या नहीं है।

my_var = str( 123 )
print( my_var, type( my_var ) )   # आउटपुट 123 <class 'str'> है।

method/functionsलौटाया गया प्रकारलौटाया गया मान
len()intकंटेनर में वर्णों या आइटमों की कुल संख्या
count()intउप-स्ट्रिंग की गैर-अतिव्यापी (non-over­lapping) घटनाएँ (occurr­ences)
index()intइंडेक्स संख्या (सकारात्मक) या ValueError
rindex()intइंडेक्स संख्या (सकारात्मक) या ValueError
find()intइंडेक्स संख्या (सकारात्मक) या -1 (जब नहीं मिलता है)
rfind()intइंडेक्स संख्या (सकारात्मक) या -1 (जब नहीं मिलता है)
startswithboolTrue या False
endswithboolTrue या False
title()strपैरेंट स्ट्रिंग में प्रत्येक शब्द का पहला अक्षर अपरकेस में और अन्य वर्ण लोअरकेस में।
capitalize()strपैरेंट स्ट्रिंग का पहला अक्षर अपरकेस में और अन्य वर्ण लोअरकेस में।
upper()strमूल स्ट्रिंग के सभी अक्षर अपरकेस में
lower()strमूल स्ट्रिंग के सभी अक्षर लोअरकेस में
swapcase()strमूल स्ट्रिंग के सभी अक्षरों को विपरीत स्थिति में स्वैप (फ़्लिप) किया जाता है।
casefold()strमूल स्ट्रिंग के सभी अक्षर लोअरकेस में परिवर्तित हो जाते हैं।
istitle()boolTrue या False
isupper()boolTrue या False
islower()boolTrue या False
isnumeric()boolTrue या False
isdigit()boolTrue या False
isdecimal()boolTrue या False
isalnum()boolTrue या False
isalpha()boolTrue या False

    आपको हमेशा याद रखना चाहिए कि किसी फ़ंक्शन या विधि से कौन सा डेटा-प्रकार लौटाया जाता है, और यह भी कि ऐसे ऑपरेशन, अभिव्यक्ति या कथन से क्या मूल्य प्राप्त होता है। एक पूर्णांक मान, उदाहरण के लिए, 9 एक पैरेंट स्ट्रिंग में सूचकांक संख्या हो सकती है, और इसलिए इसे अंकगणितीय परिचालनों के लिए व्यवहारित/उपयोग नहीं किया जाना चाहिए। आप बाद के पाठों में अधिक फ़ंक्शन्स और विधियों के बारे में सीखेंगे, इसलिए, आपको उनसे आउटपुट को सावधानीपूर्वक संभालना (handle) आना चाहिए।


Leave a Comment: