2017-01-18 1 views
0

Были и другие порции, которые я уже выполнил, мне просто нужна помощь в том, чтобы new_string2 форматировать как Фамилия, Имя, когда пользователь вводит полное имя , Нет синтаксиса, он отображает только имя Фамилия. Спасибо!Используйте нарезку для создания новой строки в формате lastname, firstname

def main(): 
    full_name = input('Enter your full name: ') 
    x = len(full_name) - 1 
    print("Your name backwards is: ") 
    while(x >= 0): 
     print(full_name[x], end="") 
     x -= 1 


    y = full_name.index("") 
    new_string2 = full_name[x+1:] + "" + full_name[0:y] 
    print("\n""Alphabetically, your name is", new_string2) 


    new_string = full_name[x+1:] + "" + full_name[0:y] 
    d={"UPPER_CASE":0, "LOWER_CASE":0} 
    for c in full_name: 
     if c.isupper(): 
      d["UPPER_CASE"]+=1 
     elif c.islower(): 
      d["LOWER_CASE"]+=1 
     else: 
      pass 
    print ("Your name has" , d["UPPER_CASE"] , "upper case letters and " , d["LOWER_CASE"] , "lower case letters") 
    incorrect_string = "You have to be vewy, vewy twicky to twap a wascally wabbit" 
    correct_string = incorrect_string.replace('w', 'r') 
    print (correct_string) 
main() 
+0

ли первое имя и фамилия будут разделены пробелом? Приведите пример ввода и вывода. –

ответ

0

Я просто предположил, что фамилия будет всегда после последнего пробела. И не волновало, что синтаксис просто исправил ваш код.

Заменить этот

y = full_name.index("") 
new_string2 = full_name[x+1:] + "" + full_name[0:y] 
print("\n""Alphabetically, your name is", new_string2) 

Для этого:

y = full_name.split(" ") 
new_string2 = y[-1:][0] + ", " + " ".join(y[:-1]) 
print("\n""Alphabetically, your name is", new_string2) 

и удалите следующую строку, которая будет нарушена после изменения:

new_string = full_name[x+1:] + "" + full_name[0:y] 

Если вы предпочитаете использовать имя так как слово перед FIRST-пространством использует этот код:

new_string2 = " ".join(y[1:]) + ", " + y[0] 

Просто будьте осторожны, если пользователь вводит имя без какого-либо пробела, он собирается сломаться (исключение индекса).

+0

Работает отлично. Большое спасибо! – SZumpf

0

Я могу разбить имя и фамилию на две отдельные переменные в списке, если человек использует пробел и только пространство для разделения их имени и фамилии. Вот как:

Name = full_name.split(' ') 

Так что, если я кладу мое имя в как этот: Kaden Биль результат будет:

Name = ["Kaden", "Biel"] 

Тогда вы можете сказать ему, чтобы устроить тех, в алфавитном порядке, как это:

sorted(name) 

выход даст вам список, как это:

Name = ["Biel", "Kaden"] 

Тогда можно положить, что обратно в строку, как это:

new_string2 = (" ").join(Name) 

Так код, который вы должны были бы добавить бы:

Name = full_name.split(' ') 
    sorted(Name) 
    new_string2 = (" ").join(Name) 
+0

вы просто сортируете имена, это не то, что просит @SZumpf. – luigibertaco

Смежные вопросы