【问题标题】:Python working with dynamic amount of user inputPython 处理用户输入的动态数量
【发布时间】:2021-09-08 08:09:33
【问题描述】:

抱歉标题有点含糊,我不完全确定我要的是什么...

基本上,我要求的用户输入可以是 1 到 5 个条目(例如,2 个条目可以像 1 2 一样简单,或者 5 个条目可以是 This Is My 5 List)。

我想将每个条目分配给一个变量;如果只输入 2 个条目,显然我不需要 5 个变量。

然后我希望能够单独调用已输入的变量。

到目前为止,我一直在玩;

    if len(UserInput) >1 and len(UserInput) <= 5:
    count = 0
    for i in UserInput:
        count = count + 1
        print("Input"+str(count))

这将输出用户输入的内容,但我不确定如何将条目数量动态分配给动态变量数量。

【问题讨论】:

  • Don't. 相反,将输入存储在列表或字典中,而不是 2-5 个不同的变量中。或者 do 使用不同的变量,但将其中一些变量保留为 None(如果 vars 的最大数量很小并且它们都有不同的用途,那真的没有问题)。

标签: python


【解决方案1】:

您可以获取输入并拆分其中的值以将其存储在列表中。那么你所要做的就是遍历列表来访问你的值。

inp = list(input().split(" "))
for i in inp:
    print(i)

【讨论】:

    【解决方案2】:

    我只是在 cmets 中提到的一个列表,即inputs = input('&gt; ').split()

    但你可以这样做:

    >>> x1, x2, x3, x4, x5, *_ = input('> ').split() + [None]*5
    > a b # user supplies two values
    >>> print(x1, x2, x3, x4, x5)
    a b None None None
    >>> x1, x2, x3, x4, x5, *_ = input('> ').split() + [None]*5
    > # empty user input 
    >>> print(x1, x2, x3, x4, x5)
    None None None None None
    >>> x1, x2, x3, x4, x5, *_ = input('> ').split() + [None]*5
    > a b c d e # user supplies 5 values
    >>> print(x1, x2, x3, x4, x5)
    a b c d e
    

    【讨论】:

      猜你喜欢
      • 2021-07-27
      • 1970-01-01
      • 2015-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-06
      • 2019-07-27
      • 1970-01-01
      相关资源
      最近更新 更多