在Python中,如果我分割一个字符串,如何检查每部分是否为整数
比如说,如果我的输入是“1 2 3”,我该怎么检查每个部分是不是整数,而不是其他东西呢?如果有其他的东西,我希望能重新输入这个字符串,直到输入正确为止,否则就不能继续进行。
4 个回答
0
这段代码看起来不太好,但它能完成你想要的功能:
import re
integers = re.compile('[^\d\s]')
while True:
s = input("Enter integers: ")
if not integers.match(s):
break
0
你可以用下面的方式把字符串分割成一个列表:
list1=s.split()
然后你可以检查列表里的每一个元素是不是整数。
2
下面的代码从标准输入读取数据,一直读取直到收到一个包含用空格分开的整数的字符串。最后,它会打印出它收到了所有的整数:
s = raw_input('Enter your input:')
while not all((p.isdigit() for p in s.split(" "))):
print("Not all integers")
s = raw_input('Enter your input:')
print("Got all integers!")
4
在编程中,很多时候我们需要处理一些数据,比如从一个地方获取数据,然后在另一个地方使用这些数据。这个过程就像是把水从一个水桶倒到另一个水桶里。我们需要确保水不会洒出来,也就是要保证数据的完整性。
有时候,我们会遇到一些问题,比如数据格式不对,或者数据丢失了。这就像是水桶有个洞,水会漏出来。为了避免这种情况,我们可以使用一些工具和方法来检查数据,确保它们是正确的。
另外,编程中还有一个很重要的概念,就是“调试”。调试就像是检查水桶有没有漏水的地方。如果发现了问题,我们需要找到原因并修复它,这样才能保证数据的安全和完整。
总之,处理数据就像是管理水资源,我们需要小心翼翼,确保每一滴水都能安全到达目的地。
>>> s = "1 2 3"
>>> all([i.isdigit() for i in s.split()])
True
>>> l = "1 b 2 5 c"
>>> all([i.isdigit() for i in l.split()])
False