diff options
author | Guido van Rossum <guido@python.org> | 1995-03-14 17:43:02 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1995-03-14 17:43:02 (GMT) |
commit | 8c1688e132c42db3ffa39faa7920be8f131cd74e (patch) | |
tree | 1e32af56b8ab23c85e38391c9288c1d571c29f43 | |
parent | 55d2f3997e208a290ee3c2f356ebb51c32f4da13 (diff) | |
download | cpython-8c1688e132c42db3ffa39faa7920be8f131cd74e.zip cpython-8c1688e132c42db3ffa39faa7920be8f131cd74e.tar.gz cpython-8c1688e132c42db3ffa39faa7920be8f131cd74e.tar.bz2 |
add dummy base to atoi/atol; careful about negative start indices in find/count
-rw-r--r-- | Lib/string.py | 16 | ||||
-rw-r--r-- | Lib/stringold.py | 16 |
2 files changed, 22 insertions, 10 deletions
diff --git a/Lib/string.py b/Lib/string.py index 8a7c8fa..f69d62d 100644 --- a/Lib/string.py +++ b/Lib/string.py @@ -115,7 +115,7 @@ def rindex(s, sub, i = 0): # Count non-overlapping occurrences of substring def count(s, sub, i = 0): - if i < 0: i = i + len(s) + if i < 0: i = max(0, i + len(s)) n = len(sub) m = len(s) + 1 - n if n == 0: return m-i @@ -130,7 +130,7 @@ def count(s, sub, i = 0): # Find substring, return -1 if not found def find(s, sub, i = 0): - if i < 0: i = i + len(s) + if i < 0: i = max(0, i + len(s)) n = len(sub) m = len(s) + 1 - n while i < m: @@ -140,7 +140,7 @@ def find(s, sub, i = 0): # Find last substring, return -1 if not found def rfind(s, sub, i = 0): - if i < 0: i = i + len(s) + if i < 0: i = max(0, i + len(s)) n = len(sub) m = len(s) + 1 - n r = -1 @@ -168,7 +168,10 @@ def atof(str): raise ValueError, 'non-float argument to string.atof' # Convert string to integer -def atoi(str): +def atoi(str, base=10): + if base != 10: + # We only get here if strop doesn't define atoi() + raise ValueError, "this string.atoi doesn't support base != 10" sign = '' s = str if s and s[0] in '+-': @@ -183,7 +186,10 @@ def atoi(str): return eval(sign + s) # Convert string to long integer -def atol(str): +def atol(str, base=10): + if base != 10: + # We only get here if strop doesn't define atol() + raise ValueError, "this string.atol doesn't support base != 10" sign = '' s = str if s and s[0] in '+-': diff --git a/Lib/stringold.py b/Lib/stringold.py index 8a7c8fa..f69d62d 100644 --- a/Lib/stringold.py +++ b/Lib/stringold.py @@ -115,7 +115,7 @@ def rindex(s, sub, i = 0): # Count non-overlapping occurrences of substring def count(s, sub, i = 0): - if i < 0: i = i + len(s) + if i < 0: i = max(0, i + len(s)) n = len(sub) m = len(s) + 1 - n if n == 0: return m-i @@ -130,7 +130,7 @@ def count(s, sub, i = 0): # Find substring, return -1 if not found def find(s, sub, i = 0): - if i < 0: i = i + len(s) + if i < 0: i = max(0, i + len(s)) n = len(sub) m = len(s) + 1 - n while i < m: @@ -140,7 +140,7 @@ def find(s, sub, i = 0): # Find last substring, return -1 if not found def rfind(s, sub, i = 0): - if i < 0: i = i + len(s) + if i < 0: i = max(0, i + len(s)) n = len(sub) m = len(s) + 1 - n r = -1 @@ -168,7 +168,10 @@ def atof(str): raise ValueError, 'non-float argument to string.atof' # Convert string to integer -def atoi(str): +def atoi(str, base=10): + if base != 10: + # We only get here if strop doesn't define atoi() + raise ValueError, "this string.atoi doesn't support base != 10" sign = '' s = str if s and s[0] in '+-': @@ -183,7 +186,10 @@ def atoi(str): return eval(sign + s) # Convert string to long integer -def atol(str): +def atol(str, base=10): + if base != 10: + # We only get here if strop doesn't define atol() + raise ValueError, "this string.atol doesn't support base != 10" sign = '' s = str if s and s[0] in '+-': |