summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1991-04-07 13:42:19 (GMT)
committerGuido van Rossum <guido@python.org>1991-04-07 13:42:19 (GMT)
commitfac38b7c40caac93f119e3af90ced0edd3d963dc (patch)
tree073efa7a3d40f48c707bd00f75a9a346cc8e0be3 /Lib
parent2d844d1ddc581c80116c88be5854720bcf84f3e0 (diff)
downloadcpython-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.py36
-rw-r--r--Lib/stringold.py36
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