Проблемы с домашним заданием на Python

Я так близок к пониманию этого. В моем коде возникает ошибка при попытке разделить (',') пробелами. Весь мой другой код работает, но я не могу получить ответ, если сначала использую пробел.

string = input('Enter input string: \n')
while ',' not in string:
    print('Error: No comma in string.')
string = input('Enter input string: \n')
while string != 'q':
if (', ') in string:
    names = string.split(', ')
    print('First word:',  names[0])
    print('Second word:', names[1])
elif (',') in string:
    names = string.split(',')
    print('First word:',  names[0])
    print('Second word:', names[1])
else:
    names = string.split(' , ')
    print('First word:',  names[0])
    print('Second word:', names[1])

string = input('\n\nEnter input string: \n')

Исправьте отступ. Не уверен, где находится второй while

smac89 09.04.2018 03:29

Наряду с тем, что сказал @ smac89, посмотрите, как выглядит строка. Разделены ли элементы , или `,` или просто , (обратите внимание на пробелы), а затем используйте разделение соответственно.

Rahul Bharadwaj 09.04.2018 03:30

Также ваш первый цикл while будет работать бесконечно, если исходная строка не содержит ,.

smac89 09.04.2018 03:32

@ smac89 я думаю, что часть string=input(), вероятно, принадлежала его первому циклу while

Primusa 09.04.2018 03:32

@RahulBharadwaj, я пытаюсь разделить Джилл, Аллена Голдена, Обезьяну Вашингтон, округ Колумбия. Я успешно выполнил первый и третий, но пробел между Golden (пробел), (пробел) обезьяна сбивает меня с толку

Joshua Shook 09.04.2018 03:36
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
5
123
1

Ответы 1

Сначала вам нужно соответствовать самым строгим требованиям. В данном случае это запятая с пробелами по обеим сторонам. Так что переупорядочивайте свои if следующим образом:

if " , " in string:
    ...
elif ", " in string:
    ...
else: # "," in string
    ...

Или, что еще лучше, скорректируйте остальную часть кода, чтобы вам не приходилось рассматривать эти три случая по-разному. Например, вы можете разделить только запятую, а затем strip результирующие строки, чтобы любые пробелы не вызывали проблем:

names = [name.strip() for name in string.split(',')]

Другие вопросы по теме