Python if语句在使用负浮点时出错

2024-10-04 11:33:35 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的代码,它返回一组坐标所在的时区。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"

我可以把每个浮点数赋给一个变量,但我想知道为什么这会导致错误,谢谢


Tags: 代码returnifdef符号语句floatide
3条回答

那不是你想的那样。用一个实际的-替换你正在用的负号

你是在复制粘贴某个文档中的代码。在你的代码中,我可以看到“-”是另一个特殊字符

试着用键盘写“-”。这通常是由于unicode转换问题造成的,因为“-”符号可能看起来相同,但行为不同

作为旁白,除了其他两个答案所说的,你的逻辑是错误的:

改用这个:

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"

相关问题 更多 >