我需要写一个程序来找到所有最大的数字子串。 仅返回按顺序由空格分隔的这些子字符串。 不要使用正则表达式,这只是编程语言最简单的功能
34234 34 dfd gfd 5
34535
fsdflskfjsdflk
fsdkfj sdf34fdfd
1,3
1/5
应提供以下信息:
34234 34 5
34535
34
1 3
1 5
但在最后两次输出中,我得到的是13和15,而不是13和15。所以,如果有像x.x或x,x或x/x这样的数字,它应该给出它们之间的数字和空格。你知道怎么做到吗?我的代码在下面
for linia in plik:
linia = linia.strip("\n")
i=0
current_string = ''
for i in range(len(linia)):
if linia[i].isdigit() or (linia[i-1].isdigit() and linia[i].isspace()) :
current_string+=linia[i]
i+=1
if(current_string!=''):
print(current_string)
这里有几个问题。最明显的一点是,在原始字符串中不存在空格的情况下,代码不包含任何添加空格的方法。您希望
1/5
给出1 5
,但这是不可能的,因为您从未尝试写入空格字符通过使用索引,您还引入了一个可能的错误,即
linea[i-1]
在i=0
表示字符串的最后一个字母时linea[-1]
使用简单的for循环、list和join方法提供了一个方便易读的选项:
您可以使用标志检查非数字间隙。为每个间隙写一个空格
请尝试以下代码:
输出
相关问题 更多 >
编程相关推荐