Найти - Пользователи
Полная версия: Кавычки в input()
Начало » Python для новичков » Кавычки в input()
1
AliceCherry
Доброго времени суток!
У меня есть вот такой код:
 >>> new_name = input('Укажите ваше значение: ')
Укажите ваше значение: folder_name
>>> folder_name = 'x'
>>> new_name
'folder_name'
>>> 
А должно выводить ‘x’.
Видимо, input добавляет к считываемому объекту кавычки (вероятно, преобразовывает в строку), и из-за этого folder_name не может быть считана как переменная. Как этого можно избежать?
AliceCherry
Придумала, как обойти
 >>> new_name = input('Укажите ваше значение: ')
Укажите ваше значение: folder_name	
>>> folder_name = 'x'
>>> if new_name == 'folder_name':
	new_name = folder_name	
>>> new_name
'x'
Но, вероятно, есть более изящное решение?
JOHN_16
AliceCherry
Очень мило конечно, но это не так работает. От слова совсем. Видно что вы только познакомились с программированием и питоном в частности, поэтому сразу же сделали одну из самых распространенных ошибок.
Что бы ее не делать, нужно изучить основы программирования, без литературы не обойтись, методом проб и ошибок получится в лучшем случае очень долго.
Если проводить аналогию с вещами в обычном мире то мне кажется что вы пытаетесь засунуть в круглое отверстие квадрат такого же размера. Если его сточить до шара, то он пролезет в отверстие, но это не правильный путь
AliceCherry
JOHN_16
Видно что вы только познакомились с программированием и питоном в частности, поэтому сразу же сделали одну из самых распространенных ошибок.
Да, оно так и есть.
Всё, что вы написали, это конечно хорошо, это приходит со временем и опытом… Но не подскажете нормальное решение, раз уж взялись осуждать это?
JOHN_16
Да. Дайте постановку задачи. Техническим языком
AliceCherry
JOHN_16
Техническим языком
Необходимо, чтобы через input копировалось значение переменной, а не строка.
Если подумать, скорее всего это делается не через input. Но тогда через что?
JOHN_16
вот именно, функция input сохраняет в переменную строку из стандартного входящего потока.
Хотеть от нее большего можно, но не нужно. Не делает она ничего другого.
AliceCherry
копировалось значение переменной, а не строка.
я в упор не понимаю что вы хотите сделать. Что куда копировать - ваши примеры в начале мне ни о чем не сказали. Опишите пошагово просто языком алгоритм который вы хотите сделать.
SergeyChmutov
AliceCherry
Придумала, как обойти
Ветвление можно реализовать в виде словаря, например:
 raw_input = input('Укажите ваше значение: ')
d_options = {'folder_name': 'x', } 
new_name = d_options[raw_input]

Так же в значении словаря можно указать ссылку на переменную или функцию, которая будет выполняться:
 raw_input = input('Укажите ваше значение: ')
folder_name = 'x'
d_options = {'folder_name': folder_name, } 
new_name = d_options[raw_input]

Предполагаю, что вы хотите выполнить множественное ветвление ( if - elif - elif … -else) и в таком случае словари будут удобнее. На мой взгляд.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB