我得到了以下练习:
Create a function "MyFunction" with 1 parameter, that will print integers between 1 and its parameter, using a particular algorithm:
MyFunction(25) 1, 2, 3, 7, 8, 9, 13, 14, 15, 19, 20, 21, 25 MyFunction(29) 1, 2, 3, 7, 8, 9, 13, 14, 15, 19, 20, 21, 25, 26, 27
我已经设法创建了一个打印 1 和它的参数之间的数字的函数,但我该如何修改它以打印该特定算法?
根据我的观察,它似乎每打印 3 个数字,就不会打印接下来的 3 个数字,但我不知道如何用代码编写它。我也尝试过在线查看是否有某种我可以合并但未成功的该算法的公式或名称。
def my_function(n):
for index in range(n):
print (index + 1)
my_function(25)
my_function(29)
我的代码打印出 1 和参数之间的整数,但我不知道如何打印算法。
另外,附注:我如何使用代码美化器以备将来使用?
最佳答案
像这样的东西应该可以解决问题:
def my_function(n):
i = 1
while i <= n:
print(i)
if i % 3 == 0:
i += 3
i += 1
基本上,每次您要进入不可打印的整数时,您只需跳过
它们到下一个可打印的整数。正如您所注意到的,您总是希望打印 3 个数字而不是打印接下来的 3 个项目。明确这一点的版本可以编码为:
def my_function(n):
should_print = True
i = 1
while i <= n:
if should_print:
print(i)
if i % 3 == 0:
should_print = not should_print
i += 1
表达式 i % 3 == 0
每 3 次迭代为 True
,这正是我们在可打印和不可打印模式之间切换的时间
关于python - 我如何修改这个函数,以便它使用特定算法打印 1 和它的参数之间的整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56744631/