零基础学python 13 多个条件:and,or和not的使用(课后习题答案)

avatar 2017年4月25日20:47:44 评论 1,159

上次我们对于新学习的知识布置了一道练习题,不知道大家做出来了没有呢?

让我们先来回顾一下我们的练习题题目吧:

主题:死亡骰(这个字念tou2(投))子

“死亡骰子”是一个使用骰子玩的游戏。玩家轮流投掷最多五次骰子,根据投出来的点数得分。如果一个玩家在任意一次投出了2或者5,那么该玩家宣告“死亡”并且不能再投了。而且,这个玩家的分数还会是0分。如果没有投出2或者5,那么该名玩家的最后分数是投出数字的总和。比如,一名玩家投出了{ 6, 1, 3, 6, 3 }那么他获得19分,另一名玩家投出 { 4, 1, 6, 3, 2 },那么他拿到0分(因为里面含有死亡数字2)。

请完成score()函数,参数为一个含有五个整数元素的list(代表五次投掷的点数)。如果这个list包含2或者5,那么这个函数返回0,否则,这个函数返回五个点数的和。

下面是你要完成的一些例子:

函数调用命令 返回值
score([ 6, 3, 3, 1, 5 ]) 0
score([ 6, 1, 3, 1, 4 ]) 15
score([ 4, 1, 2, 4, 4 ]) 0

题目分析:这道题的参数依然是老套路,也就是传入一个list,然后我们肯定是使用for循环进行遍历了。这样一来的话,我们唯一需要注意的点就是判断list的元素中是否有2或者5,如果他们存在的话,我们不需要把所有的元素都遍历完就可以返回结果了,因为一旦有它们之中的任意一个,整个函数都会返回0。如果遍寻的过程中没有发现2或者5,我们可以把寻找过的元素加起来保存,最后把最后的和输出即可。

这里2或者5的处理是一样的,因此我们可以使用学到的or来连接两个条件。

以下是我们的最终代码:

def score(roll) :
    # 请把你的代码写在这里
	# 初始化结果变量
    sum = 0
	# 遍历list中的每一个元素
    for i in roll:
		# 如果元素为2或者5直接返回0,否则增加sum的值
        if i == 2 or i == 5:
            sum = 0
            return sum
        else:
            sum = sum + i
    return sum

# test the function
print('Testing score() for [6,3,3,1,5]: ' + str(score([6,3,3,1,5])))
print('Testing score() for [6,1,3,1,4]: ' + str(score([6,1,3,1,4])))
print('Testing score() for [4,1,2,4,4]: ' + str(score([4,1,2,4,4])))

 

以下是我们的视频教程:

在线观看:

 

高清源文件下载:

内容已经隐藏,请注册为本站会员后查看

感谢大家的收看,我们下期再见!

avatar

发表评论

您必须才能发表评论!