python - 为什么输出中没有None?
问题描述
帮助,我正在尝试创建一个函数,该函数使用模数来打印可被整数整除的数字,在本例中为 17 的倍数:
def nextDivisible(n):
if n % 17 == 0:
print n
else:
nextDivisible(n+1)
但输出例如:
n: 93 next divisible: 102
None
n: 59 next divisible: 68
None
为什么没有一个?!以及如何删除它,谢谢!
解决方案
你不需要:
print(nextDivisible(n))
我认为你被None
打印是因为你的函数没有返回任何东西。打印函数的返回也是多余的,因为您在循环内打印数字。
所有你需要的是:
nextDivisible(n)
它将打印可整除的数字。
如果您nextDivisible()
在其他函数中使用,根据您使用它的性质,可能需要返回语句可能毫无价值。
出于所有意图和目的,这应该可以正常工作。
和python 3.x:
x = [x for x in range(1000)]
def nextDivisible(x, mod=17):
c = 0
for n in x:
if n % mod == 0:
print(n)
c += 1
else:
#nextDivisible(n+1)
pass
print('{} numbers divisible by {} in {}'.format(c, mod, len(x)))
nextDivisible(x)
预期输出:
59 total numbers divisible by 17 in 1000
推荐阅读
- android - 使用导航组件时如何覆盖工具栏中后退按钮的行为
- javascript - 为什么浏览器无法识别我的 Javascript 命令
- python - Longest consecutive sequence where each element is less than 3
- python - 具有不同位置的多个 python 解释器
- c - qsort 对复杂结构的字典顺序
- c# - 获取 C# 中特定文化键盘上可表示的字符列表
- javascript - *ngFor 内部 *ngFor
- jquery - Django如何根据另一个表单的值隐藏表单
- python - 更改卷积自动编码器中的解码器输出形状以进行训练
- orocrm - 如何在 Oro CRM 中仅向一个布局更新操作添加条件?