首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我不能给出输出结果

我不能给出输出结果
EN

Stack Overflow用户
提问于 2020-08-29 13:26:51
回答 3查看 90关注 0票数 1

给定3个介于1和11之间的整数,如果它们的和小于或等于21,则返回它们的和。

如果sum超过21且有11,则将总和减去10。

最后,如果sum(即使在调整之后)超过21,则返回BUST

代码语言:javascript
复制
def func(a,b,c ):
    while((a,b,c)in range (1,12)):
        sum=a+b+c
        if sum<=21:
            return sum
        if sum>21 and 11 in (a,b,c):
            sum=sum-10
            if sum>21:
                return "Bust"
print(func(9,9,9))
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-08-29 14:12:54

我认为你需要:

代码语言:javascript
复制
def adj_sum(a,b,c):
    s = a+b+c
    if s <= 21:
        return s
    elif s>21 and 11 in (a,b,c):
        s = s -10
        
    result = s if s<=21 else "bust"
    return result

print(adj_sum(9,9,9))
# Bust

print(adj_sum(9,9,11))
# 19
票数 0
EN

Stack Overflow用户

发布于 2020-08-29 14:03:33

请尝试以下操作:

代码语言:javascript
复制
def func(a, b, c):
  abc = (a, b, c)
  sum_abc = sum(abc)
  if sum_abc > 21 and 11 in abc:
    sum_abc -= 10
  return "BUST" if sum_abc > 21 else sum_abc

print(func(9,9,9))
票数 0
EN

Stack Overflow用户

发布于 2020-08-29 14:20:30

尝尝这个

代码语言:javascript
复制
def func(a,b,c):
    def check(x):
        return x in range(1,12)
    if check(a) and check(b) and check(c):
        vars = [a,b,c]
        res = sum(vars)
        if res <= 21:
            return res
        elif res > 21:
            if 11 in vars:
                res -= 10
            
        return res if res < 21 else 'Bust'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63643755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档