从数字字符串列出问题

Ser*_*gei 0 python

我从input()得到一个字符串,它由用空格分隔的数字组成(1 5 6 3).首先,我试图检查输入只包含带有isdigit()函数的数字,但由于空格我无法使其工作.然后我使用split()函数将字符串转换为列表.

我需要的是实现从输入列表和使舒尔只由数字组成,其他人发送消息,并要求新的输入.是不是可以在isdigit()中添加一个参数来为空格做一个例子?

谢谢

phi*_*hag 6

您所描述的是在跳跃方法之前先看一下,即首先检查输入是否符合,然后解析它.使用Easier来请求宽恕比使用权限方法更加pythonic ,即只需执行它并处理异常:

s = raw_input() # input() in Python 3
try:
  numbers = map(int, s.split())
except ValueError:
  print('Invalid format')
Run Code Online (Sandbox Code Playgroud)

  • @Sergei:相当于这个`map`函数将是:`[int(i)for i in s.split()]` (2认同)
  • @Sergei不,问题,`map`是[记录](http://docs.python.org/library/functions.html#map).它将第一个参数应用于第二个参数.这里,第二个参数是`split()`生成的列表.例如,对于输入"1 2a 3",列表看起来像"['1','2a','3']`.现在,`map`创建列表`[int('1'),int('2a'),int('3')]`.调用`int('2a')`引发`ValueError`.如果我们输入了搅拌"1 2 3",结果将是"[1,2,3]".你也可以使用`for`循环或列表理解来代替`map`(参见@ eumiro的评论). (2认同)