【问题标题】:How to read two inputs separated by space in a single line?如何在一行中读取由空格分隔的两个输入?
【发布时间】:2010-11-12 08:32:42
【问题描述】:

我想读取两个输入值。第一个值应该是整数,第二个值应该是浮点数。

我看到了Read two variables in a single line with Python,但它仅适用于两个值的类型相同的情况。我还有什么办法吗?

示例输入,第一个是 int,第二个是 float。输入应该在一行:

20 150.50

http://www.codechef.com/problems/HS08TEST/

我对 Python 很陌生。

【问题讨论】:

  • 链接问题的答案是您需要的大部分答案。你试过什么?
  • @TokenMacGuy 的错误是我的。我应该先阅读文档的:(
  • 请关注general问题guidelines:说明任何特殊限制,展示您迄今为止尝试过的内容,并询问具体是什么让您感到困惑。

标签: python


【解决方案1】:

像这样:

In [20]: a,b = raw_input().split()
12 12.2

In [21]: a = int(a)
Out[21]: 12

In [22]: b = float(b)
Out[22]: 12.2

你不能在单行中做到这一点(或者至少不能没有一些超级骗子额外的 hackz0r 技能——或分号),但是 python 不是为单行而设计的。

【讨论】:

    【解决方案2】:

    一个班轮:)

    >>> [f(i) for f,i in zip((int, float), raw_input().split())]
    1 1.2
    [1, 1.2]
    

    【讨论】:

    • 请解释线路的每个组成部分
    【解决方案3】:

    更简单的一个班轮(但不太安全):

    map(eval, raw_input().split())
    

    【讨论】:

      【解决方案4】:

      如果输入用空格“”分隔

      a,b,c = raw_input().split(" ")

      如果输入用逗号','分隔

      a,b,c = raw_input().split(",")
      

      【讨论】:

        【解决方案5】:

        在 Python 2.7 中,我使用这个

        A,B = raw_input().split(" ")
        A = int(A)
        B = float(B)
        print(A)
        print(B)
        

        输出:

        34 6.9
        
        34
        
        6.9
        

        【讨论】:

          【解决方案6】:

          map(str,input().split()) 你就是这样做的。

          【讨论】:

            【解决方案7】:

            下面的 sn-p 对我有用。

            >>> a,b=list(map(int,input().split()))
            1 2
            >>> print(a)
            1
            >>> print(b)
            2
            

            【讨论】:

              【解决方案8】:

              如果您希望输入任意数量的输入,请遵循以下操作:

                  x=list(map(str,input().split())) 
                  print(x)
              

              如果你想要两个输入:

                 x,y=x,y=list(map(str,input().split()))
                 print(x,y)
              

              【讨论】:

              • x=input().split() 的结果是一个字符串列表,因此您不必要地执行maplist。奇怪的是,您的第二个示例中还有 x,y=x,y=
              【解决方案9】:

              这是很好的解决方案恕我直言a, b = input().split()

              如果您想将输入与自定义字符分开,您可以将其放在括号中,例如a, b = input().split(",")

              【讨论】:

                【解决方案10】:

                读取由空格分隔的 3 个输入...

                arr = input().split(" ")
                A = float(arr[0])
                B = float(arr[1])
                C = float(arr[2])
                print(A)
                print(B)
                print(C)
                

                【讨论】:

                  【解决方案11】:

                  Python 3.5

                  下面的 sn-p 对我有用。

                  a, b = input().split(" ")
                  a_value = int(a)
                  b_value = int(b)
                  

                  【讨论】:

                    【解决方案12】:

                    基本上你只需要使用 map 函数并通过用户定义函数来转换你需要转换的数据类型。

                    code

                    您甚至可以使用它来将其转换为其他数据类型

                    【讨论】:

                    • 为了一个简单的任务而矫枉过正,请不要写ninja code
                    【解决方案13】:

                    在 python 3 中 我们可以使用,

                    r1,r2 = map(int,input().split(" "))
                    

                    【讨论】:

                    • 这样两个数字都是int,而问题指定第二个是浮点数。
                    猜你喜欢
                    • 2015-03-08
                    • 2021-07-27
                    • 1970-01-01
                    • 2011-11-30
                    • 2022-01-20
                    • 1970-01-01
                    • 1970-01-01
                    • 2012-10-17
                    • 1970-01-01
                    相关资源
                    最近更新 更多