给定3个介于1和11之间的整数,如果它们的和小于或等于21,则返回它们的和。
如果sum超过21且有11,则将总和减去10。
最后,如果sum(即使在调整之后)超过21,则返回BUST。
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))发布于 2020-08-29 14:12:54
我认为你需要:
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发布于 2020-08-29 14:03:33
请尝试以下操作:
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))发布于 2020-08-29 14:20:30
尝尝这个
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'https://stackoverflow.com/questions/63643755
复制相似问题