почему мы должны писать print(‘вам’ str(32) ‘Лет’ в python, когда

#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 действительно задействован, я собираюсь отредактировать вопрос, чтобы удалить тег, чтобы избавить кого-либо еще от пустой траты времени. [Обновление: похоже, я не могу, потому что кто-то другой редактирует.]