2016-08-16 3 views
-3

Я не уверен в том, что входной формат будет введен пользователем. Там не два possibities:Создание интерпретаций python как символов новой строки

код:

n=int(input("enter the no of workers \n")) 
print("enter the names of workers") 
NameList=[] 
for i in range(n): 
    NameList.append(input()) 
print(NameList) 

возможность 1:

ввести не рабочих

ввести имена рабочих

name1

name2

name3

NAME4

[ 'name1', 'name2', 'name3', 'NAME4']

работает большой ... !!

возможность 2:

вход будет:

ввести не рабочих

ввести имена рабочих

name1 name2 name3 NAME4

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

Так или иначе, один код будет работать для обоих входных форматов. Обрабатывая пробелы как Enter. Спасибо

+0

В заголовке не указывается SHOUT. – SurvivalMachine

+0

Может ли рабочее имя включать пробел? – DeepSpace

+0

no DeepSpace. В имени рабочего места не будет места. –

ответ

1

Если имя рабочего не может содержать пробел, вы можете проверить это и соответственно изменить поведение.

Это будет работать даже если пользователь объединить 2 варианта (например, ввод 'a', а затем 'b c'), хотя это не является совершенным (можно получить более n имена, например, если n == 3 и ввод 'a b' и 'c d')

n = int(input("enter the no of workers \n")) 
print("enter the names of workers") 
NameList = [] 
while len(NameList) < n: 
    worker_name = input() 
    if ' ' in worker_name: 
     if NameList: 
      NameList.extend(worker_name.split()) 
     else: 
      NameList = worker_name.split() 
    else: 
     NameList.append(worker_name) 
print(NameList) 
+0

no man! Я не могу указать пользователю формат ввода. Этот ввод с пробелами или без пробелов. это его выбор. –

+0

@SamarYadav См. Мой обновленный ответ. – DeepSpace

+0

это должен делать. Я новичок в Python. Спасибо чувак! –

0

Вместо пространств, я бы высоко рекомендуем следующее:

for i in range(n): 
    NameList.append(input("What is the name of worker " + i +"?")) 

Если вы абсолютно необходимо принять пробелы, использовать ответ DeepSpace.

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