Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么我的elif不能正常工作?_Python_Python 3.x - Fatal编程技术网

Python 为什么我的elif不能正常工作?

Python 为什么我的elif不能正常工作?,python,python-3.x,Python,Python 3.x,21点:给定三个介于1和11之间的整数,如果它们的和小于或等于21,则返回它们的和。如果他们的总数超过21,并且有一个11,那么将总数减少10。最后,如果总和(即使调整后)超过21,则返回“半身像” def black_jack(a,b,c): if a+b+c <=21: return a+b+c elif a+b+c >21: if (a or b or c) == 11: return (a+b+c-10)

21点:给定三个介于1和11之间的整数,如果它们的和小于或等于21,则返回它们的和。如果他们的总数超过21,并且有一个11,那么将总数减少10。最后,如果总和(即使调整后)超过21,则返回“半身像”

def black_jack(a,b,c):
    if a+b+c <=21:
        return a+b+c
    elif a+b+c >21:
        if (a or b or c) == 11:
            return (a+b+c-10)
        elif (a and b and c)!= 11:
            return 'bust'
result = black_jack(9,9,11)
print(result)
def黑色插孔(a、b、c):
如果a+b+c 21:
如果(a或b或c)=11:
返回(a+b+c-10)
elif(a、b和c)!=11:
返回“半身像”
结果=黑色插孔(9,9,11)
打印(结果)

您在
if
elif
条件下犯了错误

我邀请您去看看这个问题,了解如何正确处理布尔条件。

请在第5行尝试
每个参数都必须将or语句分开。

正如@Jerbearone和@Cherlepops指出的那样,您的错误在于对相等11行或不相等11行的测试

这应该起作用:

def black_jack(a, b, c):
if a + b + c <= 21:
    return a+b+c

elif a + b + c > 21:
    # if (a or b or c) == 11:
    if a == 11 or b == 11 or c == 11:
        return (a+b+c-10)
    # elif (a and b and c) != 11:
    elif a != 11 and b != 11 and c != 11:
        return 'bust'


if __name__ == "__main__":
    # execute only if run as a script
    result = black_jack(9, 9, 11)
    print(result)
def黑色插孔(a、b、c):
如果a+b+c 21:
#如果(a或b或c)=11:
如果a==11或b==11或c==11:
返回(a+b+c-10)
#elif(a、b和c)!=11:
埃利夫a!=11和b!=11和c!=11:
返回“半身像”
如果名称=“\uuuuu main\uuuuuuuu”:
#仅当作为脚本运行时执行
结果=黑色插孔(9、9、11)
打印(结果)

这是否回答了您的问题?您不需要第一个
elif
:保证if
a+b+c21
必须为true;没有必要检查它。
def black_jack(a, b, c):
if a + b + c <= 21:
    return a+b+c

elif a + b + c > 21:
    # if (a or b or c) == 11:
    if a == 11 or b == 11 or c == 11:
        return (a+b+c-10)
    # elif (a and b and c) != 11:
    elif a != 11 and b != 11 and c != 11:
        return 'bust'


if __name__ == "__main__":
    # execute only if run as a script
    result = black_jack(9, 9, 11)
    print(result)