diff options
author | Guido van Rossum <guido@python.org> | 1991-04-07 13:42:19 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1991-04-07 13:42:19 (GMT) |
commit | fac38b7c40caac93f119e3af90ced0edd3d963dc (patch) | |
tree | 073efa7a3d40f48c707bd00f75a9a346cc8e0be3 /Lib | |
parent | 2d844d1ddc581c80116c88be5854720bcf84f3e0 (diff) | |
download | cpython-fac38b7c40caac93f119e3af90ced0edd3d963dc.zip cpython-fac38b7c40caac93f119e3af90ced0edd3d963dc.tar.gz cpython-fac38b7c40caac93f119e3af90ced0edd3d963dc.tar.bz2 |
Added join() and joinfields() functions.
Fixed center().
Rewrote ljust() and rjust().
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/string.py | 36 | ||||
-rw-r--r-- | Lib/stringold.py | 36 |
2 files changed, 54 insertions, 18 deletions
diff --git a/Lib/string.py b/Lib/string.py index 3790357..c245a49 100644 --- a/Lib/string.py +++ b/Lib/string.py @@ -79,6 +79,20 @@ def splitfields(s, sep): res.append(s[i:]) return res +# Join words with spaces between them +def join(words): + res = '' + for w in words: + res = res + (' ' + w) + return res[1:] + +# Join fields with separator +def joinfields(words, sep): + res = '' + for w in words: + res = res + (sep + w) + return res[len(sep):] + # Find substring index_error = 'substring not found in string.index' def index(s, sub): @@ -99,21 +113,25 @@ def atoi(str): # Left-justify a string def ljust(s, width): - n = len(s) - if n >= width: return s - return s + ' '*(width-n) + n = width - len(s) + if n <= 0: return s + return s + ' '*n # Right-justify a string def rjust(s, width): - n = len(s) - if n >= width: return s - return ' '*(width-n) + s + n = width - len(s) + if n <= 0: return s + return ' '*n + s # Center a string def center(s, width): - n = len(s) - if n >= width: return s - return ' '*((width-n)/2) + s + ' '*(width -(width-n)/2) + n = width - len(s) + if n <= 0: return s + half = n/2 + if n%2 and width%2: + # This ensures that center(center(s, i), j) = center(s, j) + half = half+1 + return ' '*half + s + ' '*(n-half) # Zero-fill a number, e.g., (12, 3) --> '012' and (-3, 3) --> '-03' # Decadent feature: the argument may be a string or a number diff --git a/Lib/stringold.py b/Lib/stringold.py index 3790357..c245a49 100644 --- a/Lib/stringold.py +++ b/Lib/stringold.py @@ -79,6 +79,20 @@ def splitfields(s, sep): res.append(s[i:]) return res +# Join words with spaces between them +def join(words): + res = '' + for w in words: + res = res + (' ' + w) + return res[1:] + +# Join fields with separator +def joinfields(words, sep): + res = '' + for w in words: + res = res + (sep + w) + return res[len(sep):] + # Find substring index_error = 'substring not found in string.index' def index(s, sub): @@ -99,21 +113,25 @@ def atoi(str): # Left-justify a string def ljust(s, width): - n = len(s) - if n >= width: return s - return s + ' '*(width-n) + n = width - len(s) + if n <= 0: return s + return s + ' '*n # Right-justify a string def rjust(s, width): - n = len(s) - if n >= width: return s - return ' '*(width-n) + s + n = width - len(s) + if n <= 0: return s + return ' '*n + s # Center a string def center(s, width): - n = len(s) - if n >= width: return s - return ' '*((width-n)/2) + s + ' '*(width -(width-n)/2) + n = width - len(s) + if n <= 0: return s + half = n/2 + if n%2 and width%2: + # This ensures that center(center(s, i), j) = center(s, j) + half = half+1 + return ' '*half + s + ' '*(n-half) # Zero-fill a number, e.g., (12, 3) --> '012' and (-3, 3) --> '-03' # Decadent feature: the argument may be a string or a number |