【问题标题】:How to convert an user input to a set in python?如何将用户输入转换为python中的集合?
【发布时间】:2021-08-14 15:43:39
【问题描述】:

我想从用户输入的字母中创建一个集合,例如: 输入是:“某物”,输出必须是:{ 's', 'o', 'm', 'e', 't', 'h', 'i', 'n', 'g'} 我像下面这样写了它,但它导致了一个错误,说输入必须是可迭代的!

 str = print("please enter a string:")
 str_set = set(str)
 print(str_set)

【问题讨论】:

  • 请使用完整的错误回溯更新您的问题。

标签: python string set user-input


【解决方案1】:

如果你想从用户那里输入一些东西,你应该使用input()函数:

s = input("please enter a string:")
str_set = set(s)
print(str_set)

【讨论】:

  • 我也认为s = set(input("please enter a string:")) 也可以使用
  • @Sujay:是的,你是对的,但我怀疑 OP 想让代码一步一步地工作,这样他们就可以检查发生了什么。
【解决方案2】:

你有两个错误:

  1. str 是内置的,因此您需要一个不同的名称。
  2. 您需要input 来捕获输入,而不仅仅是打印。
str1 = input("please enter a string:")
str_set = set(str1)
print(str_set)

如果你想更简洁,你也可以缩短到一行,但是当用简洁来换取可读性时,要倾向于可读性:

str_set = set(input("please enter a string: "))

【讨论】:

    【解决方案3】:
    1. 首先,您不应该使用构建对象名称来命名变量,例如:str, int, float 等等。

    2. print 函数将返回 None 并且不可迭代,因此会出现错误。您应该改用input 函数。

    user_input = input("please enter a string:")

    【讨论】:

      【解决方案4】:

      命名变量有一些规则,其中之一是不能使用保留字如:print、str、int、float、input 等来命名变量。 您可以在此处了解有关规则的更多信息:https://www.geeksforgeeks.org/python-variables/

      关于代码,我相信这会有所帮助:

          user_input = input("Please enter a string: ")
          list_of_letters = list(user_input)
          print(list_of_letters)
      

      【讨论】:

        【解决方案5】:

        首先您需要使用输入而不是打印。 print 是在终端/命令行上打印一些东西,也可以在没有 (str =) 的情况下使用脚本获取用户输入,如下所示:

        import sys
        
        def printerd():
            print('please enter a string:', end='')
            sys.stdout.flush()
            data = sys.stdin.readline()[:-1]
            print(list(data))
        
         printerd()
        

        这将打印 please enter a string : 并等待用户输入内容然后打印一个数组 ['s', 'o', etc]。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-12-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多