代码之家  ›  专栏  ›  技术社区  ›  Aakash Goel

如何在python中读取格式化输入?

  •  7
  • Aakash Goel  · 技术社区  · 15 年前

    3, 4, 5, 1, 8

    分为单独的变量a、b、c、d和;E

    我试过这个:

    import string
    a=input()
    b=a.split(', ')
    

    Traceback (most recent call last):
      File "C:\Users\Desktop\comb.py", line 3, in <module>
        b=a.split(', ')
    AttributeError: 'tuple' object has no attribute 'split'
    

    如何做到这一点?假设我没有一个固定数,而是一个可变数n个整数。那么?

    4 回复  |  直到 14 年前
        1
  •  16
  •   itsadok    15 年前

    使用 raw_input() 而不是 input() .

    # Python 2.5.4
    >>> a = raw_input()
    3, 4, 5
    >>> a
    '3, 4, 5'
    >>> b = a.split(', ')
    >>> b
    ['3', '4', '5']
    >>> [s.strip() for s in raw_input().split(",")] # one liner
    3, 4, 5
    ['3', '4', '5']
    

    input 函数并没有达到您期望的效果。它实际上将stdin的输入作为python代码进行计算。

    在你的例子中,你得到的是一组数字 a

    顺便说一句,在Python3中,他们解决了这个问题,现在 input

    1. import string 执行简单的字符串操作。
    2. 像mjv said

    拆包:

    >>> l = (1,2,3,4,5)
    >>> a,b,c,d,e = l
    >>> e
    5
    
        2
  •  2
  •   mjv    15 年前

    (*)

    在a=输入()之后

    分配这5个值的快速方法是

    a, b, c, d, e = a
    

    (*)是否使用Python 3.0版?当然,在3.1中,input()的工作原理更像2.x中的raw_input()方法,这使得它不那么容易混淆。(感谢mshsayem指出这一点!)

        3
  •  0
  •   FlorianH    15 年前

    如果打印出a(包含输入的变量),您将发现a已经包含一个元组。您不必拆分内容。

    >>>a=输入()
    3, 4, 5, 1, 8
    &燃气轮机&燃气轮机&燃气轮机;印刷品(a)
    (3, 4, 5, 1, 8)

    <键入“tuple”>

    3.
    &燃气轮机&燃气轮机&燃气轮机;len(a)

        4
  •  -3
  •   Roopesh    14 年前
    in = eval(input())
    
    a, b, c, d, e = in