Home > Back-end >  I have to make a code taking a name and turning it into a last name, first initial and middle initia
I have to make a code taking a name and turning it into a last name, first initial and middle initia

Time:03-19

I have to make a code taking a name and turning it into a last name, first initial, middle initial format. My code works assuming there is a middle name but breaks if not provided a middle name. Is there a way to ignore not having a middle name and to just default to last name and first initial? I'm super new to python3 so I'm sorry if my code is uber bad. Heres my code :

your_name = input()
broken_name = your_name.split()
first_name = broken_name[0]
middle_name = broken_name[1]
last_name = broken_name[2]

middle_in = middle_name[0]
first_in = first_name[0]
print(last_name ',',first_in '.' middle_in '.' )

CodePudding user response:

You can use an if else statement to check how long broken_name is. Try:

your_name = input()
broken_name = your_name.split()
if len(broken_name) > 2:
    first_name = broken_name[0]
    middle_name = broken_name[1]
    last_name = broken_name[2]

    middle_in = middle_name[0]
    first_in = first_name[0]
    print(last_name ', ',first_in '. ' middle_in '.'
else:
    first_name = broken_name[0]
    last_name = broken_name[1]
    first_in = first_name[0]
    print(last_name ', ',first_in '.')

CodePudding user response:

Another option:

def get_pretty_name_str(names):
  splited_names = names.split()
  last_name = splited_names.pop(-1)
  result = f'{last_name},'
  while splited_names:
    n = splited_names.pop(0)
    result  = f'{n}.'
  return result

print(get_pretty_name_str('First Middle Last'))  # Last,First.Middle.
print(get_pretty_name_str('First Last'))  # Last,First.
  • Related