Почему я не могу получить правильный результат? - PullRequest
0 голосов
/ 06 августа 2020

Я хотел получить «AbeSimp», но он вернул «AbeSimpson» и проигнорировал первое условие. Скажите, пожалуйста, причину и способ устранения этой проблемы.

----- код -----

def username_generator(first_name, last_name):
  if len(first_name) > 3 and len(last_name) > 4:
    username = first_name[:3] + last_name[:4]
    return username
  else:
    username = first_name + last_name
    return username

print(username_generator("Abe", "Simpson"))

Ответы [ 2 ]

0 голосов
/ 06 августа 2020
if len(first_name) > 3 and len(last_name) > 4:

длина abe составляет 3 символа, и при сравнении 3> 3 ваше условие не выполняется и переходит к части else.

0 голосов
/ 06 августа 2020

Попробуйте разбить оператор if и проверять каждый по отдельности.

def username_generator(first_name, last_name):
    if len(first_name) > 3:
        username = first_name[:3]
    else:
        username = first_name

    if len(last_name) > 4:
        username += last_name[:4]
    else:
        username += last_name
return username

print(username_generator("Abe", "Simpson"))

Приведенный выше код представляет собой реструктуризацию вашего кода. Однако в python все немного проще.

скажем:

first_name = 'Ab'
last_name = 'Sim'

username = first_name[:3] + last_name[:4]

Это выведет:

AbSim

Так что вам не нужно сделать много из приведенного выше кода. Python сделает это за вас.

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