为什么python 3或2不能使用输入为此代码提供输出:0 1 10 [在一行中]

时间:2015-07-27 21:39:33

标签: python python-3.x

NSOperationQueue.currentQueue

2 个答案:

答案 0 :(得分:3)

当输入为0 1 10时,您的代码会将其解释为011。具体来说,行

c = int(d[4])

取第四个字符,而不是第四个和第五个字符。由于c最终为1而非10,因此永远不会输入您的范围,并且永远不会定义p

答案 1 :(得分:1)

<强>解决方案

d=a.strip()更改为d=[int(x) for x in a.strip().split(' ')]

然后使用:

a, b, c = d

这可以通过以下方式工作:

  • a.strip().split(' ') - &gt;将字符串转换为list,将每个(空格)
  • 分开
  • int(x)为该列表中的每个元素转换为int for x
  • 创建新列表并分配给d
  • 所有这一切都称为list comprehension
  • 现在我们有一个像这样的列表d = [0, 1, 10]
  • 将每个变量分配给列表a, b, c = d
  • 中的元素

为什么会破坏?

您将收到错误p was not defined,因为它永远不会进入您的for循环(其中p已定义)。

在您的代码中,原始输入是string,您可以选择其中的元素。

input = "0 1 9"被视为019

input = "0 1 10"被视为0110其中c=1 1}}。

因此,您的代码正在尝试range(0,-1)并且永远不会进入for循环。