我这里有一个字符串:
test = "I saw 3 horses, 17 cat, and 14 rabbits!"
现在,在不使用regex
和lists
的情况下,我尝试从此字符串中提取整数并找到最大整数:
def largestNumber(text):
largestNumber = 0
for ii in range(len(text)):
if text[ii].isdigit():
if int(text[ii]) > largestNumber:
largestNumber = int(text[ii])
else:
continue
if noNumber(text):
return None
return largestNumber
def noNumber(s):
for ii in range(len(s)):
if s[ii].isdigit():
return False
return True
不幸的是,如果你一次查看一个数字,这将返回7,这是最大整数!
我如何解决这个问题,以便检测到17而不是7?再次,不使用regex
和lists
使用拆分字符串上的转换例程,您可以返回最大值。
def to_int(value):
try:
return int(value)
except ValueError:
return 0
test = "I saw 3 horses, 17 cat, and 14 rabbits!"
print(max(to_int(i) for i in test.split()))
17
如果您只对打印感兴趣而不将值存储在列表中:
words = test.split()
big = 0
for i in words:
if i.isdigit():
if int(i) > big:
big = int(i)
else:
pass
else:
pass
print(big)
(xenial)vash@localhost:~/python/stack_overflow$ python3.7 noregex.py 17