我正在学习python中的条件语句,得到语法错误:无效语句(Python 3.6) [关闭] 。

问题描述 投票:-1回答:1

当我只使用 "if "语句时,这段代码可以工作。当我添加 "else "语句时,它就会失败。

以下是代码

def TotalDistance(Distance_A,Distance_B):
    Distance_X = (float(Distance_A) + float(Distance_B))/1000
    return Distance_X

Distance_A = input("Distance_A:")
Distance_B = input("Distance_B:")
C = str(TotalDistance(Distance_A,Distance_B))

if TotalDistance(Distance_A,Distance_B) > 1 :
    print( C + " KM")
else TotalDistance(Distance_A,Distance_B) < 1 :
    print("Distance too short")

print(TotalDistance(Distance_A,Distance_B))

这就是我所面临的错误:-。

File ".\myprogram_1.py", line 11
    else TotalDistance(Distance_A,Distance_B) < 1 :
                     ^
SyntaxError: invalid syntax
python-3.x if-statement syntax syntax-error
1个回答
3
投票

你几乎有了它,只是一个小的调整使它工作。我已经提供了一个解决方案,其次是解释。

def TotalDistance(Distance_A,Distance_B):
    Distance_X = (float(Distance_A) + float(Distance_B))/1000
    return Distance_X

Distance_A = input("Distance_A:")
Distance_B = input("Distance_B:")
C = str(TotalDistance(Distance_A,Distance_B))

if TotalDistance(Distance_A,Distance_B) > 1 :
    print( C + " KM")
else:
    print("Distance too short")

print(TotalDistance(Distance_A,Distance_B))

然后我们尝试

Distance_A:100
Distance_B:200
Distance too short
0.3

问题出现在 else 部分,当使用 else: 不需要指定条件( else:不取条件,你会用 else if (elif)来完成这一任务)。您从 TotalDistance(Distance_A,Distance_B) 只能大于或小于1。

需要注意的是,上面的代码并没有考虑到当值为 TotalDistance(Distance_A,Distance_B) 等于零,我没有修改这个,因为我不确定当这种情况发生时你希望执行哪条语句。

另外,查看这个链接,了解一下python中的if-else语句,以便更好地理解它们的工作原理 https:/www.guru99.comif-loop-python-conditional-structures.html .


0
投票

当{TotalDistance(Distance_A,Distance_B)} == 0时,我将使用这个方法。

下面是代码。-

def TotalDistance(Distance_A,Distance_B):
    Distance_X = (float(Distance_A) + float(Distance_B))/1000
    return Distance_X


Distance_A = input("Distance_A:")
Distance_B = input("Distance_B:")
C = str(TotalDistance(Distance_A,Distance_B))


if TotalDistance(Distance_A,Distance_B) > 1 :
    print( C + " KM")
elif TotalDistance(Distance_A,Distance_B) == 0 :
    print("You are going no where")
else :
    print("Distance too short")
© www.soinside.com 2019 - 2024. All rights reserved.