如何简化“blackjack”函数以提高效率?简单的语法/函数效率查询

问题描述

在我的 Python 课程考试中出现了一个关于编写 21 点函数的简单问题。

问题来了:

给定 1 到 11 之间的三个整数,如果它们的和小于或 等于 21,返回它们的总和。如果他们的总和超过 21 并且有一个 十一、将总和减少 10。最后,如果总和(即使经过 调整)超过 21,返回 'BUST'。

我写的函数如下:(有效)

def blackjack(a,b,c):
    cards = [a,c]
    total = sum(cards)
    adjustment = total - 10
    
    if a == 11 or b == 11 or c == 11 and adjustment <= 21:
        return adjustment
    elif a == 11 or b == 11 or c == 11 and adjustment > 21:
        return 'BUST'
    elif total <= 21:
        return total
    else:
        return 'BUST'

正确的输出如下:

blackjack(5,6,7)
18

blackjack(9,9,9)
'BUST'

blackjack(9,11)
19

我在学习 Python 时发现最困难的不是理论或“流程”。它更多地是关于效率和所述效率的正确语法。

虽然我的“写作风格”的最终目标不是一堆凌乱的“难以阅读”的单行列表理解,但我正在认真寻求有关如何将方法和内置函数组合在一起的知识可读和优雅的方式。因此,如果您看到可以在上述代码中切掉任何角落以获得相同的结果,我很乐意向您学习。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)