#python #string #set #user-input
Вопрос:
Я хочу создать набор из алфавитов пользовательского ввода, например: ввод: «что-то», а вывод должен быть: {«s», «o», «m», «e», «t», «h», «i», «n», «g»} Я написал это, как показано ниже, но это вызвало ошибку, в которой говорится, что ввод должен быть повторяемым!
str = print("please enter a string:")
str_set = set(str)
print(str_set)
Комментарии:
1. Пожалуйста, обновите свой вопрос с полным отслеживанием ошибок.
Ответ №1:
Если вы хотите ввести что-то от пользователя, вам следует использовать input()
функцию:
s = input("please enter a string:")
str_set = set(s)
print(str_set)
Комментарии:
1. Я также думаю, что
s = set(input("please enter a string:"))
это также сработало бы2. @Sujay: Да, вы правы, но я подозреваю, что ОП хочет заставить код работать по одному шагу за раз, чтобы они могли проверить, что происходит.
Ответ №2:
У вас есть две ошибки:
str
является встроенным, поэтому вам нужно другое имя.- Вам нужно
input
перехватывать ввод, а не просто печатать.
str1 = input("please enter a string:")
str_set = set(str1)
print(str_set)
Вы также можете сократить до одной строки, если хотите быть более кратким, но, торгуя лаконичностью против удобочитаемости, склоняйтесь к удобочитаемости:
str_set = set(input("please enter a string: "))
Ответ №3:
- Прежде всего, вы не должны называть переменные, используя имена объектов buildins, такие как:
str, int, float
и так далее. 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:
Сначала вам нужно использовать ввод вместо печати. печать-это печать чего-либо в терминале/ командной строке, также можно получить пользовательский ввод с помощью вашего скрипта без (str =), как это :
import sys
def printerd():
print('please enter a string:', end='')
sys.stdout.flush()
data = sys.stdin.readline()[:-1]
print(list(data))
printerd()
это выведет, пожалуйста, введите строку : и подождите, пока пользователь что-нибудь введет, а затем выведет массив [‘s’, ‘o’ и т. Д.].