关于IF Else梯形图的说明

2024-03-29 00:29:27 发布

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

我编写了一个函数,其中使用了if-else梯形图,我编写了两个版本,在第一个版本中没有错误,但在第二个版本中,我遇到了一个错误,尽管两个版本执行相同的任务(使用python完成)

代码的第一版(无错误)

def caught_speeding(speed,is_birthday):
if(speed>60 and speed<=80):
    if(is_birthday==True and speed<=65):
        print('no ticket')
    else:
        print('small ticket')
elif(speed>80):
    if(is_birthday==True and speed<=85):
        print('no ticket')
    else:
        print('big ticket')
else:
    print('no ticket')

代码第二版(错误)

def caught_speeding(speed,is_birthday):
if(speed>60 and speed<=80):
    if(is_birthday==True and speed<=65):
        print('no ticket')
    else:
        print('small ticket')
else:
    if(speed>80):
        if(is_birthday==True and speed<=85):
            print('no ticket')
        else:
            print('big ticket')
else:
    print('no ticket')

在执行第二个代码时打印的错误是:

File "<ipython-input-45-0ed6a5391a7f>", line 13
else:
^
SyntaxError: invalid syntax

我需要对“elif”部分采取行动


2条回答

你的逻辑有问题^python中的{}语句可以独立,可以用elif扩展,也可以用else结束。你已经结束了 if(speed>60 and speed<=80):在第2行,而else在第7行

        print('small ticket')
else: <              -
    if(speed>80):

逻辑也不同,因为第一个代码段有一个条件speed > 80,而else覆盖了speed <= 60。第二个代码段else涵盖了speed > 80speed <= 60,因此第二个else没有任何意义,只是一个语法错误

If是“main”条件语句,但elif使您有机会捕捉到另一个条件以及主条件。 Else捕获if或elif语句未声明的所有内容,因此您不能捕获Else两次。第一个else语句将涵盖所有不符合if语句条件的情况,因此使用另一个else语句是不合逻辑的->;导致语法错误

相关问题 更多 >