如何将用户输入转换为 python 中的集合?

How to convert an user input to a set in python?

我想根据用户输入的字母制作一组,例如: 输入是:“something”,输出必须是:{ 's', 'o', 'm', 'e', 't', 'h', 'i', 'n', 'g'} 我像下面这样写,但它导致了一个错误,说输入必须是可迭代的!

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

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

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

你有两个错误:

  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: "))
  1. 首先,您不应该使用内置对象名称命名变量,例如:str, int, float 等等。

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

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

命名变量有一些规则,其中之一是不能使用保留字,例如: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)

首先你需要使用输入而不是打印。 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' 等]。