Як об’єднати логічне значення у рядок у Python?


78

Я хочу зробити наступне

answer = True
myvar = "the answer is " + answer

і значення myvar має бути "відповідь правдива". Я майже впевнений, що ви можете зробити це на Java.


fyi: були написані великими літерами на Python (Правда, Хибно)
Jordonias

Відповіді:


18

Рекомендований спосіб - дозволити str.formatобробці кастингу ( документи ). Методи із %sзаміною можуть врешті-решт застаріти (див. PEP3101 ).

>>> answer = True
>>> myvar = "the answer is {}".format(answer)
>>> print(myvar)
the answer is True

У Python 3.6+ ви можете використовувати буквальну інтерполяцію рядків :

 >>> print(f"the answer is {answer}")
the answer is True

131
answer = True
myvar = "the answer is " + str(answer)

Python не робить неявного кастингу, оскільки неявний кастинг може маскувати критичні логічні помилки. Просто додайте відповідь до самого рядка, щоб отримати його рядкове представлення ("True"), або використовуйте форматування рядків приблизно так:

myvar = "the answer is %s" % answer

Зверніть увагу, що для відповіді потрібно встановити значення True(великі літери важливі).


7
answer = True
myvar = "the answer is " + str(answer)

або

myvar = "the answer is %s" % answer

%sПоза лапок не повинно бути, але це дійсно правильно.
Макото

3

Використовуючи так звані f-рядки:

answer = True
myvar = f"the answer is {answer}"

Тоді якщо я це зроблю

print(myvar)

Я отримаю:

the answer is True

Мені подобаються f-рядки, тому що не потрібно турбуватися про порядок, у якому змінні відображатимуться у друкованому тексті, що допомагає у випадку, якщо у них є кілька змінних, які будуть надруковані як рядки.


0

відповідь = Правда

myvar = 'відповідь' + str (відповідь) # оскільки змінна відповіді знаходиться у логічному форматі, отже, ми повинні перетворити логічне значення у формат рядка, що можна легко зробити за допомогою цього

друк (myvar)


1
Ласкаво просимо до SO, Lijin G. Varghese! Тут не рекомендується відповідати лише за кодами, оскільки вони не дають уявлення про те, як проблема була вирішена. Будь ласка, оновіть свою відповідь із поясненням того, як ваш код вирішує проблему :)
Джоель,

-2
answer = “True”

myvars = “the answer is” + answer

print(myvars)

Це має дати вам відповідь True легко, оскільки ви зберегли відповідь у вигляді рядка за допомогою лапок


Але у нього немає відповіді, збереженої у вигляді рядка. Це логічне значення. Питання полягає в тому, як перетворити динамічний логічний тип у його рядкове представлення.
cstrutton
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.