Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

Python में %r के बजाय %s कब उपयोग करें?


%s vs %r: String Formatting में Difference

%s Specifier Object को str() का उपयोग करके Convert करता है, और %r इसे repr() का उपयोग करके Convert करता है।

कुछ Objects जैसे Integers के लिए, वे Same Result देते हैं, लेकिन repr() इसमें Special है कि (उन Types के लिए जहां यह संभव है) यह Conventionally ऐसा Result Return करता है जो Valid Python Syntax होता है, जिसे Unambiguously उस Object को Recreate करने के लिए उपयोग किया जा सकता है जिसे यह Represent करता है।

उदाहरण: Newline Characters के साथ

>>> string = "Hello\nworld"
>>> print("Example: %s" % string)
Example: Hello
world
>>> print("Example: %r" % string)
Example: 'Hello\nworld'

%s Actual Newline Print करता है, जबकि %r Escape Sequence \n दिखाता है और Quotes भी Intact रखता है।

आप Second Expression का उपयोग Object को Actually Recreate करने के लिए कर सकते हैं।

Key Differences:

Aspect %s (str) %r (repr)
Purpose Human-readable Output Unambiguous Representation
Quotes No Yes (Strings के लिए)
Escape Sequences Processed Shown as Escapes
Recreatable Usually No Yes (Ideally)

When to Use Each:

  • %s: User-facing Output, Logs, Display
  • %r: Debugging, Logging (Developer-facing), repr() Implementation

Custom Classes में __repr__ और __str__:

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y
    
    def __str__(self):
        return f"({self.x}, {self.y})"
    
    def __repr__(self):
        return f"Point({self.x}, {self.y})"

p = Point(3, 4)
print("%s" % p)  # (3, 4)
print("%r" % p)  # Point(3, 4)

  1. एक्सेल में VLOOKUP के बजाय INDEX-MATCH का उपयोग कब करें एक्सेल में VLOOKUP के बजाय INDEX-MATCH का उपयोग कब करें

    जो लोग एक्सेल में पारंगत हैं, वे VLOOKUP फ़ंक्शन से भली-भांति परिचित होंगे। VLOOKUP फ़ंक्शन का उपयोग किसी मान को उसी पंक्ति में मिलान करने वाले टेक्स्ट के आधार पर किसी अन्य सेल में ढूंढने के लिए किया जाता है। यदि आप अभी भी VLOOKUP फ़ंक्शन में नए हैं, तो आप एक्सेल में VLOOKUP का उपयोग कैसे करें, इस प

  1. - पायथन रेगुलर एक्सप्रेशन में डिलीमिटर का उपयोग करके स्ट्रिंग कैसे स्प्लिट करें?

    re.split() मेथड re.split(pattern, string, [maxsplit=0]): यह मेथड दिए गए पैटर्न की घटनाओं द्वारा स्ट्रिंग को स्प्लिट करने में मदद करता है। उदाहरण import re result = re.split(ra, Dynamics) print result आउटपुट [Dyn, mics] ऊपर, हमने स्ट्रिंग Dynamics को a द्वारा स्प्लिट किया है। स्प्लिट() मेथड का एक

  1. - Ruby में freeze और frozen का उपयोग कब करें: इम्यूटेबिलिटी के लिए सर्वोत्तम प्रथाएं

    आजकल Ruby कोड में #freeze का उपयोग देखना बहुत आम है। लेकिन यह अक्सर पूरी तरह से स्पष्ट नहीं होता कि freeze का उपयोग क्यों किया जा रहा है। इस पोस्ट में हम उन सबसे सामान्य कारणों को देखेंगे जिनकी वजह से एक डेवलपर वेरिएबल्स को फ्रीज कर सकता है। प्रत्येक कारण को स्पष्ट करने के लिए, मैंने Rails कोडबेस और