【问题标题】:Number N denoting the length of the inputted array数字 N 表示输入数组的长度
【发布时间】:2017-07-18 03:39:11
【问题描述】:

在解决一些编程问题时,我注意到对话中说:

输入:

整数 N 表示数组的大小

下一行包含 N 个空格分隔的整数,表示 数组

我应该如何使用变量 N 以便它按预期运行,而不仅仅是一个无用的浮动输入变量...

我的意思是,它可能只是一个表示数组元素的输入,不需要其元素的长度...

PS:我知道我可以将它添加到那里只是为了解决问题,我只是在询问 N 变量是否可以使用 Python 有用(没有 for 循环的方式,询问 N 次输入导致它不会通过问题)。

【问题讨论】:

  • 您可以获取第一个输入并使用它创建一个 for 循环来遍历以下数字并将它们添加到列表中。
  • 输入本身是多余的,可能不正确(“2”和“1 2 3”)。我认为任何编程语言都无法改变这一事实。
  • 问题可能提示您尝试自己执行此操作,而不使用 split()。在这种情况下,您可以使用 for 循环和 while 循环来查找每个单独的空间。但是,总的来说,出于与您给出的相同原因,我不会推荐这种方法
  • 像这样的通用编程问题通常在输入中包含大小,以便更容易在需要声明数组大小的语言(如 C)中实现它们。这在 Python 等语言中是多余的。

标签: python arrays


【解决方案1】:

在 Python 中通常是这样,因为通常你会一次获取整行并处理它。

但是,一些编程语言(如 C++ 和 Java)往往会从这种方法中受益,因为一些解析器工具(如 Java 的 Scanner)通过一次解析一个整数来工作。

您可以像这样简单地解析您的输入:

input() # ignore the 'N'
arr = [int(x) for x in input().split()]

【讨论】:

    【解决方案2】:
    x=list(map(int,input().split())
    print(x)
    

    试试这个 你会得到一个整数数组

    【讨论】:

      【解决方案3】:

      如果我对您的理解正确,您需要以空格分隔的数字,其长度定义为输入。您可以通过以下方式实现:

      N = input("Integer N denoting size of array: ")
      print(" ".join(str(i + 1) for i in range(int(N))))
      

      例如:

      整数 N 表示数组的大小:12
      1 2 3 4 5 6 7 8 9 10 11 12

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-05-06
        • 1970-01-01
        • 2018-11-23
        • 1970-01-01
        • 1970-01-01
        • 2012-12-31
        • 1970-01-01
        相关资源
        最近更新 更多