首页 > 解决方案 > 接受用户的输入,直到 5 个唯一输入

问题描述

我将如何使用 while 函数来做到这一点。我们是否必须为此在某处使用集合?

这是我到目前为止所拥有的

while True:
    mySet = set(input("Enter a number:"))
    if mySet == 5:
        break
    print(mySet)

标签: python

解决方案


您在这里有三个主要问题:

  1. 在 interable 上使用set()构造函数将从其元素创建一个集合。在这种情况下,从input. 例如:

    >>> set("hello")
    {'h', 'o', 'e', 'l'}
    >>> set("54")
    {'5', '4'}
    

    不确定这是你想要的。如果要将输入作为一个整体考虑,则必须使用add集合的方法。

  2. 其次,您正在重新初始化set每个输入(如上所述)。同样,不确定这是您真正想要的。您必须在循环外初始化一次集合。

  3. 您正在检查“set”是否实际上是 integer 5。你可能的意思是len用来检查是否len(mySet) == 5


总之,示例代码可能是:

my_set = set()
while len(my_set) != 5:
    my_set.add(input("Enter a number:"))
    print(my_set)

如果您希望输入是数字,并希望这样存储它们,您可以更改为:mySet.add(int(input("Enter a number:")))但请记住,现在这可能会引发异常,因此可能会进行一些错误处理。


推荐阅读