这里有一些问题:如果x >= y,则range(x, y)为空,因此for循环将不会枚举任何值

e % 2 == 0和e % 3 == 0是相等检查,因此将返回布尔值

e % 3 == 0检查数字是否可由3分割,而不是奇数;以及

一旦你返回了一些东西,你就退出了函数。

但是,我们可以编写一个避免循环的函数,首先检查数字,然后构造正确的range(..)对象,比如:def number_game(x,y):

if x > y:

if y % 2 == 1:

y += 1

return list(range(y, x, 2))

else:

if x % 2 == 0:

x += 1

return list(range(x, y, 2))

例如:>>> number_game(14, 25)

[15, 17, 19, 21, 23]

>>> number_game(15, 25)

[15, 17, 19, 21, 23]

>>> number_game(25, 14)

[14, 16, 18, 20, 22, 24]

>>> number_game(25, 13)

[14, 16, 18, 20, 22, 24]

>>> number_game(2,12)

[3, 5, 7, 9, 11]

>>> number_game(0,0)

[]

>>> number_game(2,12)

[3, 5, 7, 9, 11]

>>> number_game(200,180)

[180, 182, 184, 186, 188, 190, 192, 194, 196, 198]

>>> number_game(180,200)

[181, 183, 185, 187, 189, 191, 193, 195, 197, 199]

代码可以变得更紧凑:def number_game(x,y):

if x > y:

return list(range(y + (y%2), x, 2))

else:

return list(range(x+1-(x%2), y, 2))

因此,我们首先要检查x > y(是否)。因为如果x > y,我们应该构造一个range(y, x, 2),但是问题可能是y是奇数,所以我们首先检查它是否是奇数,如果是,我们就增加值。

如果x <= y:我们构造一个range(x, y, 2),会发生类似的事情,但是如果x是偶数,我们也会增加它。

因为我们将两个步骤(在range(..)中的最后一个参数)分为两步,这也将更有效地构造列表,因为range(..)函数不会测试一个数是否为偶数/奇数,而只是用2增加变量。

如果您确实不想“具体化”iterable(将元素放入列表中),而只是返回相关的range(..)iterable,我们可以这样做:def number_game(x,y):

if x > y:

return range(y + (y&1), x, 2)

else:

return range(x+1-(x&1), y, 2)

这样做的好处是range(..)允许快速的成员检查,一个范围也可以非常有效地切片,等等。因此您可以保留range(..)对象,并且可以后处理它。

python求奇偶数和_用Python返回偶数和奇数相关推荐

  1. python求两数最大公因数_『用python求俩个数的最大公约数和最小公倍数』

    python:用递归的方法编写一个函数gys(x,y),计算两个数字的最大公约数. (提示,大的 def gys(x,y): a,b=max(x,y),min(x,y) c=a%b if c==0: ...

  2. python求5的阶乘_用python分享5的阶乘 (咋办)用python计算阶乘

    (急)用python计算阶乘 小编需要用python列出一个阶乘的表. 小编不太清楚python的阶乘公式 以阶乘reduce为逐次操作list里的每项,接收的参数为 2个,最后返回的为一个结果 &g ...

  3. python求奇偶数和_python奇偶数求和

    原博文 2016-11-11 14:34 − #求100内奇数和while\for..in循环 sum = 0 i = 1 while i <= 100: sum += i i += 2 pri ...

  4. python求两数最大公因数_使用辗转相除法求两个数的最大公因数(python实现)

    数学背景: 整除的定义: 任给两个整数a,b,其中b≠0,如果存在一个整数q使得等式 a = bq 成立,我们就说是b整除a,记做b|a. 性质1:如果c|a,c|b,且对于任意的整数m,n,则有c| ...

  5. python求向量函数的雅可比矩阵_在python Numpy中求向量和矩阵的范数实例

    np.linalg.norm(求范数):linalg=linear(线性)+algebra(代数),norm则表示范数. 函数参数 x_norm=np.linalg.norm(x, ord=None, ...

  6. python求123逆序数_应用Python来计算排列中的逆序数个数

    在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序.一个排列中逆序的总数就称为这个排列的逆序数.一个排列中所有逆序总数叫做这个排列的逆序数.也就是说,对于 ...

  7. python求向量函数的雅可比矩阵_使用python,pytorch求海森Hessian矩阵

    考虑一个函数$y=f(\textbf{x}) (R^n\rightarrow R)$,y的Hessian矩阵定义如下: 考虑一个函数:$$f(x)=b^Tx+\frac{1}{2}x^{T}Ax\\其 ...

  8. python中奇偶数怎么表示_python怎么对输出的奇数偶数排序?

    我们从小学的时候就学习了奇数偶数,知道整数可以分成奇数和偶数两大类,能被2整除的数叫做偶数,不能被2整除的数叫做奇数.在我们python编程中,会遇到很多数字和代码,有的时候会很乱,不好操作.在遇到奇 ...

  9. python解奥数题_黄哥Python:Python代码解决一道小学奥数题

    有如下小学奥数题: 有180盏亮着的电灯,各有一个拉线开关控制着,现按其顺序编号 1,2,3, ..., 180, 然后将编号为4的倍数的电灯线拉一下,再将 编号为5的倍数的灯线拉一下,最后将编号为6 ...

  10. python求函数的根_在Python中寻找函数的根

    我试图使用scipy函数fsolve计算函数的根,但是一个错误一直在标记:TypeError: 'numpy.array' object is not callable 我想把这个方程定义为一个函数可 ...

最新文章

  1. 一分钟让你快速了解红外气体传感器作用,特性及应用
  2. 增大apache 2的最大连接数
  3. python趣味编程10例-达人迷 Python趣味编程10例
  4. 在ROS中开始自主机器人仿真 - 2 让turtlebot跑起来
  5. CS中实现简单的注册验证窗体程序
  6. java中从str1中删除所有str2_Java中str1.equals(str2)和str1==str2的区别
  7. php 微信机器人_微信小程序机器人自动客服功能
  8. C++的优秀特性2:inline 函数
  9. SQL注入-SQL注入的WAF绕过(十六)
  10. 详细分析如何利用python批量爬取百度图片
  11. python学习总结----异常处理
  12. 《设计模式之美》课程笔记之DDD开发实战
  13. java base64转Binary
  14. C++模板的类的展开
  15. 2017年真题精选(六)
  16. apple music导入本地歌曲及歌词
  17. 杭州云栖大会“弹性计算用户实践专场”等你来
  18. 计算机应用基础第三版175页答案,计算机应用基础试题(附答案).doc
  19. 怎么制作gif动图?你学会制作了吗?
  20. 《解救吾先生》TC枪版1.07GB迅雷bt种子ed2k下载

热门文章

  1. TBS1237 1/4 扫 48 通道 LED 背光驱动芯片
  2. 联想g510拆键盘的简单方法_笔记本键盘怎么拆 教你如何正确拆笔记本键盘 (全文)...
  3. 【BZOJ3097】 Hash Killer I
  4. 国内首款PCB资料分析软件,华秋DFM使用介绍
  5. 获取微信小程序邀请码并下载
  6. 腾讯云如何设置二级域名?
  7. C C++实现网络验证和本地验证
  8. java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener解决方案
  9. 软件开发专业主要有哪些课程?
  10. 快快网络融合CDN是什么