Я не вижу, где я должен быть в»:»

#python-2.7

#python-2.7

Вопрос:

 a = raw_input("What do you want to add to the list?"  " If you would like to remove something from the list type 'remove' : ") if str(a) not == "remove".lower():  print('"'), str(a), ('"' " has been added to list")  list1.append(a)  print(list1)  

Когда я запускаю это (есть еще код, но это соответствующий бит), он говорит «ожидается»: «»непосредственно перед » не в», если str(a) не == «удалить».ниже():» строка. имейте в виду, что это на python 2.7

Комментарии:

1. Синтаксис неправильный. != Не используйте not == . Это описано в основных учебных пособиях.

Ответ №1:

Для проверки неравенства в Python это допустимо:

 A != B  

и это тоже:

 not (A == B)  

но это не так:

 A not == B # syntax error  

(Вас можно простить за то, что вы думаете, что именно так это работает, если вы использовали in оператор, потому not (A in B) что и A not in B эквивалентны.)

Как только вы это исправите, знайте, что это:

 print('"'), str(a), ('"' " has been added to list")  

проклят и только случайно делает то, что вы хотите в Python 2 (он не будет делать то, что вы, очевидно, предполагаете, что он делает в любой поддерживаемой в настоящее время версии Python). Когда вы хотите print() что-то напечатать, спецификация того, что должно быть напечатано, заканчивается на этом в первую ) очередь . Следующее работает как в Python 2, так и в Python 3:

 print( '"{}" has been added to list'.format(a) )  

Тогда есть тот факт, что вы обращаетесь .lower() к неправильной стороне сравнения (к чему-то, что уже всегда строчное).

Комментарии:

1. Я предполагаю, что я бы сделал это печатным ((» «» ), str(a), («»»»был добавлен в список»)) (я думал, что у меня это было раньше, но ладно. также спасибо!

2. @N018B Я заговорил слишком рано. То, что вы написали , на самом деле будет работать в Python 2.x, но его синтаксис очень вводит в заблуждение. Ответ обновлен.