|
30鱼币
1.编写一个函数odd_sum_while(n),用while 循环计算所有小于n 的正奇数。
注意:你可以用 for 循环来做到这一点,但你应该用一个 while 循环来练习。
测试:
assert odd_sum_while(10) == 25
2.编写一个函数,young_john(people),如果字典 people 包含值为 19 的键“John”,则返回 True。否则返回 False。
测试:
assert young_john({ "Rob": 31, "Sarah": 24, "Chen": 20, "John": 19})
assert not young_john({ "Rob": 31, "Sarah": 19, "Chen": 20, "James": 22})
assert not young_john({ "Rob": 31, "Sarah": 24, "Chen": 20, "John": 23})
3.考虑一个游戏,其中某些卡片价值一定数量的点数。 编写一个函数 score(card_points, card),它接受一个表示每张卡片点数的字典和一个字符串列表,并计算该列表的总分。 您可以假设如果一张卡不在 card_points 中,则它不值得任何积分。 如何使用该功能的示例在下面的测试单元格中。
测试:
assert score({"Ace": 5, "King": 3, "Queen": 2, "Jack": 1 },
["10", "Jack", "Ace", "King", "Queen", "King", "3"]) == 14
assert score({"Fire": 2, "Wind": 1, "Water": 1, "Earth": 3 },
["Fire", "Fire", "Wind", "Water", "Earth"]) == 9
好兄弟请问下这个怎么写?
参考参考代码,建议自己先写写哈:
#1
def odd_sum_while(n):
sum = 0
while n:
if n % 2:
sum += n
n -= 1
return sum
#2
def young_john(people):
if "John" in people and people["John"] == 19:
return True
return False
#3
def score(card_points, card):
sum = 0
for i in card:
if i in card_points:
sum += card_points[i]
return sum
|
|