#python
#python
Вопрос:
почему мы должны писать print('you are ' str(32) ' Years old')
на python, когда мы можем просто написать print('you are 32 Years old')
, чтобы добавить целое число в строку, и оба они отлично работают
Комментарии:
1. Ну, вы можете жестко запрограммировать это, но дело в том, что первая форма позволяет вам поместить какое-то другое выражение (вычисляемое во время выполнения) вместо
32
.2. Как это связано с
c
тегом?3. Что, если вы не знаете возраст, пока пользователь не введет возраст в программу?
4. Вам не обязательно делать это таким образом. Если вы всегда хотите печатать 32 в качестве возраста, то вы можете использовать метод полной строки.
Ответ №1:
да, мы можем кодировать как print('you are 32 Years old')
на python, если мы хотим, чтобы он всегда выводил эту постоянную строку.
когда эти 32 должны быть извлечены из переменной, и если мы точно знаем, что тип переменной является строкой, мы можем использовать без преобразования str(). Например : print('you are ' x ' years old')
Когда мы не знаем, что тип переменной всегда будет строковым, нам нужно явно преобразовать ее в строку, print('you are' str(x) 'years old')
.
без этого str(x)
, когда это x является целым числом, python выдал бы эту ошибку:
>>> x = 32
>>> type(x)
<type 'int'>
>>> print ("you are " x " years old")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects
>>> x = "32"
>>> type(x)
<type 'str'>
>>> print ("you are " x " years old")
you are 32 years old
>>>
Комментарии:
1. Спасибо, что вы сделали это предельно ясным. Еще раз спасибо
Ответ №2:
TLDR:
Вы не можете добавить строку и целое число вместе. Вы должны преобразовать целое число в строку, чтобы добавить (объединить) их.
ДУМАЛ, ЧТО ЭТО ДЛЯ C
Точно так же, как сказал Алани, объединение строк с выражением (в вашем примере ‘str (32)’) позволяет программе отображать больше, чем жестко запрограммировано.
Например, допустим, ваша программа запрашивает у пользователя его имя и возраст:
#include <iostream>
int main()
{
string name;
int age;
std::cout << "What is your name? n";
std::cin >> name;
std::cout << "What is your age? n";
std::cin >> age;
std::cout << "My name is " << namen";
std::cout << "I am " << age << " years old";
return 0;
Во время выполнения пользователь вводит строку (свое имя) и целое число (свой возраст), это может меняться в зависимости от пользовательского ввода.
Эта программа выведет:
My name is: John Smith
I am 32 years old
Однако ваша программа жестко запрограммирована, что означает, что при каждом запуске она будет выдавать один и тот же результат.
Первый запуск:
My name is rjt
I am 32 years old
Второй запуск:
My name is rjt
I am 32 years old
…n-й запуск:
My name is rjt
I am 32 years old
Объединение выражения и строки для чего-то такого простого, как имя и возраст, может показаться не таким уж сложным сейчас, но когда вы изучите более сложные программы, это будет ЖИЗНЕННО ВАЖНО для ваших программ.
На данный момент просто следуйте инструкциям из ваших руководств, и вы скоро увидите свет!
Комментарии:
1. Я не думаю, что OP действительно спрашивал о C , похоже, они просто пометили его без уважительной причины. Но, очевидно, применяются аналогичные принципы.
2. Вау, я напечатал все это без причины. Я мог бы просто поместить, чтобы типы данных соответствовали эмодзи с закатывающимися глазами .
3. Извините, просто устал видеть, как слишком много людей добавляют случайные теги к своим вопросам и подозревают, что это тот случай… Поскольку в тексте вопроса нет доказательств того, что C действительно задействован, я собираюсь отредактировать вопрос, чтобы удалить тег, чтобы избавить кого-либо еще от пустой траты времени. [Обновление: похоже, я не могу, потому что кто-то другой редактирует.]