Почему я получаю ошибку типа в python, когда я не комбинирую int с другой строкой? TypeError: может только объединить str (не "int") с str - PullRequest
0 голосов
/ 13 июля 2020
character_name = "George"
character_age = 50
is_Male = True
print("There was once a man named " + 
character_name + ",")
print("He was " + character_age + " years old. 
")

character_name = "Mike"
print("He really liked the name " + 
character_name + ",")
print("but didn't like being " + character_age + ".")

Я слежу за обучающим курсом Python на YouTube, и в начале видео он заявляет, что для переменных вы можете поместить текст в скобки или просто ввести число, не требующее строк. Однако, когда я пытаюсь запустить приведенный выше код, он выдает ошибку, которую не может объединить. Пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 13 июля 2020

Вам нужно будет преобразовать ваши int в строки для конкатенации с помощью метода str().

print("He was " + str(character_age) + " years old.")

В качестве альтернативы, если вы используете python 3.6+, вы можете использовать python f-strings примерно так:

print(f"but didn't like being {character_age}.")

Кроме того, если python3 print является функцией вместо оператора, вы можете передать несколько аргументов для достижения этого результата без конкатенации. По умолчанию аргументы разделяются пробелом. Это можно изменить, добавив sep kwarg к вызову print.

print("He was", character_age, "years old.")
# or with explicit separator kwarg set to space
print("He was", "character_age", "years old", sep=" ")
0 голосов
/ 13 июля 2020

Вы не можете объединить int и str. Итак, вы конвертируете int в str с помощью str(<int_variable) ie str(character_age)

character_name = "George"
character_age = 50
is_Male = True
print("There was once a man named " + 
character_name + ",")
print("He was " + str(character_age) + " years old.")

character_name = "Mike"
print("He really liked the name " + 
character_name + ",")
print("but didn't like being " +str(character_age) + ".")

Вывод:

There was once a man named George,
He was 50 years old.
He really liked the name Mike,
but didn't like being 50.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...