python-3.7 - Python - 只有奇数
问题描述
我需要找出是否n
由奇数组成。如果一个数字由奇数组成,我应该return True
,否则我应该return False
。
n = 1357
应该返回True
,因为所有四个值都是奇数。
n = 1356
应该返回False
,因为6
是偶数。
我将如何解决这个问题?我的第一步包括遍历“字符串化”数字,但后来我觉得卡住了,因为我无法使用模数来检查数字是偶数还是奇数。
解决方案
如果从集合中减去奇数集合str(n)
并且结果为空,那么它都是奇数:
>>> def odd(n):
... return set(str(n))-set('13579')==set()
...
>>> odd(123)
False
>>> odd(113355)
True
与以数字方式检查每个数字相比,它也很快:
C:\>py -m timeit -s "odd=set('13579');n=111333555777999" "all([int(x)%2 for x in str(n)])"
50000 loops, best of 5: 4.69 usec per loop
C:\>py -m timeit -s "odd=set('13579');n=111333555777999" set(str(n))-odd==set()"
200000 loops, best of 5: 1.36 usec per loop
推荐阅读
- c++ - 使用 C++ fmtlib,有没有比使用 std::ostringstream 更简洁的方法将数据序列附加到字符串?
- javascript - 如何在 javascript 中向我的网址添加“&”
- python - 在 Python 脚本中使用 'jdbc' 为 Spark DataFrame 'write' 加载 JDBC 驱动程序
- javascript - 在本地缩小和托管 Google 标签管理器 JavaScript 文件
- php - PHP-DI says missing parameter while in definition file has set
- php - 我如何遍历具有多个值的关联数组
- sharepoint-online - 如何在 SPFx 中呈现指向 newform.aspx 的链接
- excel - 从字母数字字符串中删除整数
- r - 如何使用 3 个不同的参数制作 geom_line
- visual-studio - 如何为现有的 dtsx 包文件创建解决方案/项目