微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何简化“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 举报,一经查实,本站将立刻删除。