Python, если операторы дают ошибку при использовании отрицательных чисел - PullRequest
0 голосов
/ 08 ноября 2019

Вот мой код, который возвращает часовой пояс, в котором находится набор координат. Среда IDE сообщает мне, что где-то во вложенном операторе if ожидается двоеточие. Первое утверждение if кажется правильным. и когда я убираю отрицательные признаки в другом, если утверждения, они работают хорошо. Спасибо за любую помощь!

def findTimeZone(coordinatesString):
    coordinates = coordinatesString.split(",")
    if 24.660845 <= float(coordinates[0]) <= 49.189787:
        if ‐87.518395 <= float(coordinates[1])  < ‐67.44457:
            return "eastern"
        elif ‐87.518395 <= float(coordinates[1]) < ‐101.998892:
            return "central"
        elif ‐101.998892 <= float(coordinates[1]) < ‐115.236428:
            return "mountain"
        elif ‐115.236428 <= float(coordinates[1]) <= ‐125.242264:
            return "pacific"

Я мог бы просто присвоить каждому плавающему переменную, но я хотел бы знать, почему это вызывает ошибку, Спасибо.

Ответы [ 4 ]

1 голос
/ 08 ноября 2019

Это не -, как вы думаете. Замените все, что вы используете для отрицательного знака, фактическим -.

1 голос
/ 08 ноября 2019

Копируете ли вы код из какого-либо документа. В вашем коде я мог видеть, что отрицательным символом «-» был другой специальный символ

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

0 голосов
/ 08 ноября 2019

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

Идентификаторы или «имена» могут содержать только следующие символы в питоне

-> от a до z (строчные буквы алфавита)

-> от A до Z (прописные буквы алфавита)

-> 0 до 9(цифры)

-> _ (подчеркивание)

0 голосов
/ 08 ноября 2019

Помимо этого и в дополнение к тому, что сказали оба других ответа, ваша логика неверна:

Используйте это вместо:

def findTimeZone(coordinatesString):
    coordinates = coordinatesString.split(",")
    if 24.660845 <= float(coordinates[0]) <= 49.189787:
        if -87.518395 <= float(coordinates[1])  < -67.44457:
            return "eastern"
        elif -87.518395 > float(coordinates[1]) >= -101.998892:
            return "central"
        elif -101.998892 > float(coordinates[1]) >= -115.236428:
            return "mountain"
        elif -115.236428 > float(coordinates[1]) >= -125.242264:
            return "pacific"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...