2013-08-14 6 views
0

Я написал код, который возвращает фразу в зависимости от длины имени. Проблема в том, что я не могу представить ее, если я не исправил эту крошечную ошибку.Конкатенация - Python

Вот что я написал:

name = input('Enter your name: ') 

if len(name) <= 3: 

    print ('Hi',name,', you have a short name.') 

elif len(name) > 8: 

    print ('Hi',name,', you have a long name.') 

elif len(name) >= 4: 

    print ('Hi',name,', nice to meet you.') 

Например: Когда я типа имени в 3 буквы, такие как 'Лин' он вновь запускает следующую

«Привет Lin * (пробел) *, у вас короткое имя. "

Я хочу, чтобы избавиться от (пространств) и он вернется:

"Привет Лин, у вас есть короткое имя."

Я думаю, что ошибка связана с моей конкатенацией, и она автоматически объявляет пробел после запятой.

ответ

0

Вы правы, р rint (x, y, z) будет последовательно печатать x, y и z с пространством между ними. Как вы предлагаете, сцепить ваше имя для приветствия, а затем напечатать приветствие:

name = input('Enter your name: ') 
if len(name) <= 3: 
    greeting = "Hi {}, you have a short name.".format(name) 

elif len(name) > 8: 
    greeting = "Hi {}, you have a long name.".format(name) 

elif len(name) >= 4: 
    greeting = "Hi {}, nice to meet you.".format(name) 

print(greeting) 
+0

Это намного лучше, СПАСИБО! – user2677100

0

Функция print печатает пробел между его аргументами. Вы можете явно конкатенации строки для управления разделения:

print('Hi ' + name + ', you have a short name.') 

или использовать форматирование строк:

print('Hi {}, you have a short name.'.format(name)) 
+0

Спасибо, я бы дал вам верх, если бы мог :) – user2677100

+0

@ user2677100: Не забудьте принять ответ. – user2357112

0

Вы можете объединить строки в Python, как это:

print('Hello ' + name + ', you have a wonderful name!') 

Или без скобок:

print 'Hello ' + name + ', you have a wonderful name!' 

Существуют различные другие сложные вещи, которые вы можете сделать, но для чего-то вроде этого будут иметь знаки «+».

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