我在这里有一个字符串:
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
答案 0 :(得分:3)
在拆分字符串上使用转换例程,然后可以返回最大值。
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
答案 1 :(得分:-1)
如果您只想打印而不是将值存储在列表中
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