summaryrefslogtreecommitdiffstats
path: root/Lib/string.py
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1993-10-22 13:56:35 (GMT)
committerGuido van Rossum <guido@python.org>1993-10-22 13:56:35 (GMT)
commite61fa0a1e4c6598f286f54772c7e065c49dc17ba (patch)
treef21820dcbed2fd21bc6089eadac6b55ff8817ae9 /Lib/string.py
parent3bb8a05947fb67ed827dd1e8d7c0a982a1ff989e (diff)
downloadcpython-e61fa0a1e4c6598f286f54772c7e065c49dc17ba.zip
cpython-e61fa0a1e4c6598f286f54772c7e065c49dc17ba.tar.gz
cpython-e61fa0a1e4c6598f286f54772c7e065c49dc17ba.tar.bz2
* profile.py, pdb.py: added help() function
* builtin.py: b/w compat for builtin -> __builtin__ name change * string.py: added atof() and atol() and corresponding exceptions * test_types.py: added test for list sort with user comparison function
Diffstat (limited to 'Lib/string.py')
-rw-r--r--Lib/string.py34
1 files changed, 33 insertions, 1 deletions
diff --git a/Lib/string.py b/Lib/string.py
index ccc1043..764c396 100644
--- a/Lib/string.py
+++ b/Lib/string.py
@@ -116,8 +116,26 @@ def find(*args):
except index_error:
return -1
+# Convert string to float
+atof_error = 'non-float argument to string.atof'
+def atof(str):
+ import regex
+ sign = ''
+ s = str
+ if s and s[0] in '+-':
+ sign = s[0]
+ s = s[1:]
+ if not s: raise atof_error, str
+ while s[0] == '0' and len(s) > 1 and s[1] in digits: s = s[1:]
+ if regex.match('[0-9]*\(\.[0-9]*\)?\([eE][-+]?[0-9]+\)?', s) != len(s):
+ raise atof_error, str
+ try:
+ return eval(sign + s)
+ except SyntaxError:
+ raise atof_error, str
+
# Convert string to integer
-atoi_error = 'non-numeric argument to string.atoi'
+atoi_error = 'non-integer argument to string.atoi'
def atoi(str):
sign = ''
s = str
@@ -130,6 +148,20 @@ def atoi(str):
if c not in digits: raise atoi_error, str
return eval(sign + s)
+# Convert string to long integer
+atol_error = 'non-integer argument to string.atol'
+def atol(str):
+ sign = ''
+ s = str
+ if s and s[0] in '+-':
+ sign = s[0]
+ s = s[1:]
+ if not s: raise atoi_error, str
+ while s[0] == '0' and len(s) > 1: s = s[1:]
+ for c in s:
+ if c not in digits: raise atoi_error, str
+ return eval(sign + s + 'L')
+
# Left-justify a string
def ljust(s, width):
n = width - len(s)