निम्नलिखित अजगर स्क्रिप्ट को देखते हुए:मैं पाइथन डॉक्टेस्ट परिणाम स्ट्रिंग में विशेष वर्ण (टैब, न्यूलाइन) कैसे शामिल कर सकता हूं?
# dedupe.py
import re
def dedupe_whitespace(s,spacechars='\t '):
"""Merge repeated whitespace characters.
Example:
>>> dedupe_whitespace(r"Green\t\tGround") # doctest: +REPORT_NDIFF
'Green\tGround'
"""
for w in spacechars:
s = re.sub(r"("+w+"+)", w, s)
return s
के रूप में अजगर दुभाषिया के भीतर इरादा समारोह काम करता है:
$ python
>>> import dedupe
>>> dedupe.dedupe_whitespace('Purple\t\tHaze')
'Purple\tHaze'
>>> print dedupe.dedupe_whitespace('Blue\t\tSky')
Blue Sky
हालांकि, doctest उदाहरण में विफल रहता है क्योंकि टैब वर्ण परिणाम की तुलना से पहले रिक्त स्थान में बदल रही हैं स्ट्रिंग:
>>> import doctest, dedupe
>>> doctest.testmod(dedupe)
देता है
Failed example:
dedupe_whitespace(r"Green Ground") #doctest: +REPORT_NDIFF
Differences (ndiff with -expected +actual):
- 'Green Ground'
? -
+ 'Green Ground'
मैं एक डॉक्टरेट हेड्रोक स्ट्रिंग में टैब वर्णों को कैसे एन्कोड कर सकता हूं ताकि परीक्षण परिणाम तुलना उचित तरीके से की जा सके?
कूल। शायद यह काम करता है क्योंकि स्ट्रिंग अक्षर के भीतर कोई टैब वर्ण नहीं है जो कि इसका हिस्सा है सचमुच कथन। शाब्दिक स्ट्रिंग उत्तर में टैब को अकेला छोड़ दिया जाना चाहिए। इसलिए मेरी टेस्ट स्ट्रिंग को लिखना जिसमें हेरेडोक उद्धरण के बाहर टैब शामिल हैं और आपके कच्चे हेरेडोक नोटेशन का उपयोग कर काम कर सकते हैं! – hobs
मुझे str.join (iterable) चाल पसंद है! – hobs