上节课我们一起学习了咱们的for循环结构,这节课咱们来就之前学过的知识做一下习题吧:

1. 主题: Duck, Duck, Goose!

假设你在一个家禽农场工作,需要计算从传送带传下来的动物数量(不要问为什么)。每一只鸭子(duck)价值1点。鹅(geese或者goose)比鸭子更大,所以它们每一只价值2点。鸡蛋(egg或者eggs)会重置你现在的计数变成0。举个栗子,一个序列[“duck”, “duck”, “goose”]会计数为4点(每个鸭子1点,一只鹅2点)。[“duck”, “goose”, “egg”, “duck”]会得到1点(鸡蛋重置前面的所有计数变为0,最后一个鸭子为1点)。

请完成ddg()函数,只有一个参数,为一个字符串为元素的list。每一个字符串都是以下其中之一:“duck”,“goose”,“egg”(全部小写)。这个函数会根据前面所说的规则返回一个非负整数。

以下是你要实现的一些例子:

函数调用命令

返回值

ddg(["goose", "duck", "duck", "duck"])

5

ddg(["duck", "egg", "goose", "egg"])

0

ddg(["duck", "duck", "egg", "goose"])

2

测试代码我们下一题之后一起发。

2. 主题:倒序排列约数

没错,这一次我们有两道题!请写一个factors()函数,传入一个正整数作为参数。这个函数会返回一个list,这个list包含了这个参数的所有约数(包括1和它自己,约数就是一个除数,用参数除以这个约数能够整除),并且这些约数是倒序排列的(从大到小排列)。比如说factors(24)就会返回一个list:[ 24, 12, 8, 6, 4, 3, 2, 1 ]。

小提示:list中有一个方法可以让list中的数字倒序排列,和append的调用方法一样,比如一个list的变量名为res,那么res.reverse()就可以让这个list倒序排列。但是这道题,不使用reverse方法也能实现,你可以用两种方法来完成这道题,很有意思。

以下是你要实现的一些例子:

函数调用命令

返回值

factors(38)

[38, 19, 2, 1]

factors(128)

[128, 64, 32, 16, 8, 4, 2, 1]

factors(17)

[17, 1]

然后以下是本次测验的测试代码,请复制到你的py文件后再写:

def ddg(poultry):

# 请把代码写到这里

return None

def factors(integer):

# 请把代码写到这里

return None

# 测试代码

############### Part 1 Tests ###############

print('Testing ddg() for ["goose", "duck", "duck", "duck"]: ' + str(ddg(["goose", "duck", "duck", "duck"])))

print('Testing ddg() for ["duck", "egg", "goose", "egg"]: ' + str(ddg(["duck", "egg", "goose", "egg"])))

print('Testing ddg() for ["duck", "duck", "egg", "goose"]: ' + str(ddg(["duck", "duck", "egg", "goose"])))

############### Part 2 Tests ###############

print('Testing factors() for value = 38: ' + str(factors(38)))

print('Testing factors() for value = 128: ' + str(factors(128)))

print('Testing factors() for value = 17: ' + str(factors(17)))

本期参考答案:

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

python提供两种基本循环结构_零基础学python 12 程序不枯燥:for循环结构(课后习题)...相关推荐

  1. python语言程序设计难不难_零基础学Python编程开发难度大吗?从哪学起?

    转行零基础学Python编程开发难度大吗?从哪学起? 近期很多小伙伴问我,如果自己转行学习Python,完全0基础能否学会呢?Python的难度到底有多大? 今天,小编就来为大家详细解读一下这个问题. ...

  2. c字符串中包含双引号_零基础学Python:一文看懂数字和字符串

    来源:大数据DT 本文约2000字,建议阅读6分钟 数据类型是构成编程语言语法的基础.[ 导读 ]数据类型是构成编程语言语法的基础.不同的编程语言有不同的数据类型,但都具有常用的几种数据类型.Pyth ...

  3. python 智能造句_[零基础学Python]正规地说一句话

    小孩子刚刚开始学说话的时候,常常是一个字一个字地开始学,比如学说"饺子",对他/她来讲,似乎有点难度,大人也聪明,于是就简化了,用"饺饺"来代替,其实就是让孩子 ...

  4. python培训一般多久_零基础学python需要多久

    一:明确自己的学习目标.不管我们学习什么样的知识,都要对自己的学习目标有一个明确的认识.只有这样才能朝着目标持续的前进,少走弯路,从而在学习的过程中得到提升,享受整个学习的乐趣. 二:基础的Pytho ...

  5. python语言学习零基础教学视频_零基础学Python语言CAP全套课程

    零基础学Python语言CAP完整版课程目录 ├─{1}–[第1周,第一单元]Python编程之基本方法 │ ├─{1}–1.1课程内容和安排介绍 │ │ ├─(1.1.1)–课程内容和安排介绍-PP ...

  6. 有c语言基础学python容易吗_零基础学Python之前需要学c语言吗

    Python本身是比较适合作为入门编程语言来学习的,一方面Python的语法结构比较简单清晰,实验也相对比较容易完成,这会逐渐增强初学者的学习信心,另一方面Python属于全场景编程语言,未来在很多领 ...

  7. 0基础学python需要多长时间_零基础学python大概要多久

    如果是自学的话,零基础学python大概要花一年到一年半的时间.每个人的资质不同.理解能力不同,所以花费的时间也不一样.建议零基础的学员报一个python培训班,这样可以有规划的系统性学习,而且花费的 ...

  8. python入门到熟练要多久_零基础学python要多久

    零基础进行Python学习的话,如果选择自学,一般学习周期在一年半左右.选择进行培训的话,学习Python周期一般在五到六个月左右,不过学习的种类不同,班级不同,培训周期也是存在一定差异的. 零基础学 ...

  9. python for loop循环程序语句_零基础学习 Python 之 for 循环语句

    写在之前 大家好,这里是零基础学习 Python 系列,在这里我将从最基本的Python 写起,然后再慢慢涉及到高阶以及具体应用方面.我是完全自学的 Python,所以很是明白自学对于一个人的考验,所 ...

最新文章

  1. android 盒子 airplay,iOS Airplay--Airtunes音乐播放在Android盒子和手机上的实现 (第一篇)...
  2. linux环境下安装mysql 8.0
  3. android 搜索工具栏,Android记事本在菜单栏添加搜索按钮方法
  4. 团队管理(3)---有效降低企业员工离职率
  5. 使用Sencha cmd安装extjs6
  6. 蒲公英快速查询苹果手机UDID方法
  7. 实习期间的一些思考整理(1)2018.4.8~4.9
  8. 排查oracle数据库服务是否启动
  9. 电路交换、报文交换、分组交换、异步传输模式等通信交换技术的区别
  10. Shell 脚本进阶,经典用法及其案例
  11. IOS Crash信息收集
  12. 人生在世,最大的笑话莫过于自作多情...
  13. cuda编译错误 ptxas fatal : Unresolved extern function xxxx
  14. android仿今日头条个人中心页面
  15. PCL入门系列 —— PassThrough 直通滤波、点云裁剪
  16. 大一java怎么学好_大一学习 JAVA
  17. 普通家庭,千万不要投入大量时间和金钱,让孩子去苦学和培养AI机器人编程了...
  18. 利用VMware虚拟机将Ubuntu18.04装入U盘或移动硬盘,实现UbuntuToGo,随插随用,支持UEFI启动(附ROS安装的相关链接)
  19. 网吧服务器固态硬盘使用,无盘服务器初次使用SSD固态硬盘应注意使用备用盘
  20. centos8 配置 dns_管理Linux不想用命令行?可以试试Webmin!最新CentOS8上体验一下

热门文章

  1. 简单的选项卡功能实现
  2. JNI开发笔记(四)--实现一个简单的JNI工程并生成so库
  3. OpenMV(一)--基础介绍与硬件架构
  4. LeetCode--64. 最小路径和(动态规划)
  5. 在Linux下使用Vim编写C++
  6. @Controller @RestController
  7. 机器学习实战(Machine Learning in Action)学习笔记————06.k-均值聚类算法(kMeans)学习笔记...
  8. YoLo 实践(1)
  9. 前端分页功能的实现以及原理
  10. jQuery操作radio、checkbox、select总结