По умолчанию инпут превращает всё в str. Как из инпута получить object? (Правильный вопрос внизу)
Ты про python?
да, про python
Какой именно object? ![]()
Я давно не программировать на python но как помню (возможно) object это и есть переменная которая имеет тип str
x = input('What is your name? : ')
X - object
Но все же тебе стоит проверить корректность вопроса.
А нет я нашёл о чем ты спрашивал
x = input('What is your name?: ')
Console output:
>>> What is your name?: (Anything what inputed by user is object)
Source: Python str() Function
P. S. Научитесь гуглить
Именно так. Все в Python есть объекты.
Я догадываюсь, что @Baurzhan хотел узнать как можно перевести объект str в объект int или float. Для этого используются функции:
x = input("Введите число")
num = float(x)
num_int = int(x)
from gtts import gTTS
import os
import random
randList = ["яблоко", "работа", "стакан", "стол"]
def test_start(list_name, lang):
while True:
text = random.choice(list_name)
print(text)
print(page2_eng)
list_name.remove(text)
speech = gTTS(text = text, lang = lang, slow = False)
speech.save("text.mp3")
os.system("start text.mp3")
b = input()
if randList = []:
break
print("list name, lang?")
list_name = input()
lang = input()
test_start(list_name, lang)
Мне нужно чтобы randomchoice выбирал случайное слово из списка, когда я пишу randList в list_name = input() , но у меня выходит ошибка.
'str' object has no attribute 'remove'
Если перед input написать list, то таких ошибок нет, но randomchoice выбирает случайные буквы из названия списка, вместо того чтобы выбирать случайные слова из списка. Как это исправить?
А ты пробовал вывести как выглядит list(input())?
Например, проделаем следующие действия
s = str(["яблоко", "работа", "стакан", "стол"])
l = list(s)
print(l)
То мы получим:
['[', "'", 'я', 'б', 'л', 'о', 'к', 'о', "'", ',', ' ', "'", 'р', 'а', 'б', 'о', 'т', 'а', "'", ',', ' ', "'", 'с', 'т', 'а', 'к', 'а', 'н', "'", ',', ' ', "'", 'с', 'т', 'о', 'л', "'", ']']
Дело в том, что функция list просто берет каждый элемент строки как отдельный символ и пихает его в массив. Чтобы добиться того, что ты хочешь, тебе нужно написать кастомную функцию (по своей сути это будет парсер).
def parse_input(text):
"""
Input: a (str) object resembling a list
Output: a (list) object
"""
pass
Функция может иметь разный вид в зависимости от того, какие массивы ты планируешь давать в качестве инпута (одномерные или многомерные).
Могу показать как это делается для одномерных списков
Пример имплементации
def parse_input(text):
"""
Input: a (str) object resembling a list
Output: a (list) object
"""
obj1 = text.split("[")[1].split("]")[0].split(", ")
output = []
for elt in obj1:
output.append(elt[1:-1])
return output
Это код, превращающий инпут лист в реальный лист?
Запусти и проверь?)
Окозалось это малварь)))