Решение TypeError при конкатенации строки - PullRequest
1 голос
/ 14 января 2020

Я назначил эти переменные:

x = "1"
name = str(input("Enter Name  :"))
gender = str(input("Enter Gender (M/F)  :")).lower
year = int(input("Enter Year of Birth  :"))   
postcode = str(input("Enter Postcode  :"))

Затем я получил часть почтового индекса.

partCode = postcode[0:3]

Затем я преобразовал год в строку.

birthYear = str(year)

После того, как я попытался объединить все строки:

username = name + birthYear + gender + partCode + x

И я получаю эту ошибку:

TypeError: can only concatenate str (not "builtin_function_or_method") to str

Как я могу ее решить?

Ответы [ 3 ]

3 голосов
/ 15 января 2020

enter image description here

Вышеуказанная ошибка связана с тем, что gender не является строкой

, замените

gender = str(input("Enter Gender (M/F)  :")).lower

на

gender = str(input("Enter Gender (M/F)  :")).lower()
1 голос
/ 15 января 2020

Попробуйте это:

x = "1"
name = str(input("Enter Name  :"))
gender = str(input("Enter Gender (M/F)  :")).lower()
year = int(input("Enter Year of Birth  :"))   
postcode = str(input("Enter Postcode  :"))

partCode = postcode[0:3]
birthYear = str(year)
username = name + birthYear + gender + partCode + x
0 голосов
/ 15 января 2020

Вам не нужно конвертировать ни одну из входных переменных, все они читаются как str.

Это будет делать

x = "1"
name = str(input("Enter Name  :"))
gender = str(input("Enter Gender (M/F)  :")).lower()
year = str(input("Enter Year of Birth  :"))   
postcode = str(input("Enter Postcode  :"))

Проблема в том, что у вас не было () для функции lower, поэтому ваша переменная gender была <built-in method lower of str object at 0x7fb7152ffc38>. Это должно объяснить вашу ошибку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...