| Повече ▼

ArcGIS 10.2.1 arcpy, обработващи стилове на кавички

ArcGIS 10.2.1 arcpy, обработващи стилове на кавички


Зададоха ми въпрос, който според мен се дължи на комбинация от кавички, но не мога да кажа конкретно защо е така в примера по-долу. Чудех се дали някой е имал подобен проблем.

Написано е малко количество код (с копиран и поставен низ), който завършва с невалидно съобщение за грешка в синтаксиса. напр.

>>> за набор от данни в набор от данни: Списък: ... набор от данни за печат + "" + "Набор от данни" ... Грешка при синтактичния анализ Синтаксис Грешка: невалиден синтаксис (ред 2)

По-горе можете да видите, че има комбинация от кавички по отношение на шрифта, но не мога да разбера защо това е важно, тъй като и двамата са двойни кавички.

Защо софтуерът не може да интерпретира различни шрифтове на един и същ символ на клавиатурата?

Моят отговор към потребителя е да гарантирам, че всички кавички са последователни или 'или ".

За тестване редактирах кода и той работи без синтактична грешка ...

>>> за набор от данни в набор от данни: Списък: ... отпечатване на набор от данни + "" + "Набор от данни" ... Култура Активи от набори от данни Набори от данни Тръби от данни Уелс Набор от данни AerialPhoto Набор от данни

Също така тествах, използвайки различни стилове кавички (например '), за да видя дали проблемът се дължи на комбинация от кавички, които се използват. В крайна сметка получих две успешни извинения на кода:

>>> за набор от данни в набора от данни: Списък: ... отпечатване на набор от данни, 'Набор от данни' ... Култура Активи от набори от данни Набори от данни Тръби от данни Уелс Набор от данни Антена Снимка от данни

и

>>> за набор от данни в списък с данни: ... отпечатване на набор от данни + "+ 'Набор от данни' ... Култура Активи от набори от данни Набори от данни Тръби от данни Уелс Набор от данни AerialPhoto Набор от данни

Интересното е, че това не изглежда да е проблем при използване на следващи версии на ArcGIS, т.е. 10.2.2 и 10.3, но може би това е следствие от правилните кавички, използвани както се предполага, че софтуерът се справя с този специфичен проблем.

Някой друг срещал ли се е с този проблем и ако да, каква е причината компютърът да не вижда „и” като същия символ?


Моят отговор към потребителя е да се уверя, че всички кавички са последователни или „или“.

Това е отговорът. Но за да обясните неуспешния код, трябва да разберете, че "компютърът" няма проблем, това е вашето предположение, че две неща, които назовавате по подобен начин, са идентични.

Опитайте да погледнете през очите на Python и вижте дали вашите цитати са еднакви: https://stackoverflow.com/a/227472/4986638

TLDR: тест с помощта на ord ('"'), ord ('"'), ord ('”'), ord (")


Въпросът ви също може да бъде: Защо кодът, който съм копирал и поставил от (това, което предполагам) MS Word не работи в моя скрипт? MS Word, и вероятно други текстови процесори, автоматично преобразува "в" или ", за да изглежда добре, точно както автоматично изписва с главна буква първата буква от ново изречение. Но, както разбрахте при някои добри задълбочени тестове , както D е съвсем различен характер от d, така са и "и" различни, или, по този въпрос "и".

Така че, вашият съвет е точно верен: никога не използвайте „или“, винаги използвайте „и“. Следственият съвет е следният: никога не редактирайте код в текстов процесор, винаги използвайте програма, създадена за редактиране на код, като IDLE (много основна и идва с Python / ArcGIS), Notepad ++ (работи за много различни езици) или PyScripter (специално за Python).


„И“ не са кавички в нормалния смисъл. Те са Unicode символи: http://www.fileformat.info/info/unicode/char/201c/index.htm http://www.fileformat.info/info/unicode/char/201d/index.htm

Те не могат да се използват взаимозаменяемо с единични и двойни кавички в Python. Те често се появяват при копиране и поставяне от продукти на Microsoft, тъй като двойните кавички се преобразуват в тези продукти в тези символи на Unicode.


Имайте предвид, че Apple наскоро промени начина, по който OS X и TextEdit обработват кавичките. Опростените операции за копиране могат да дадат нечетливи (за python) кавички. http://www.iclarified.com/38772/how-to-disable-curly-quotes-in-mac-os-x-mavericks


Гледай видеото: How to solve Desktop Requires Framework sp1. while installing ArcGIS. 100%WORK