gpt4 book ai didi

python - 打印所有能被 7 整除并包含 7 从 0 到 100 的数字

转载 作者:太空宇宙 更新时间:2023-11-04 07:14:34 24 4
gpt4 key购买 nike

我正在尝试制作一个 for 循环,它将打印从 0 到 100 的所有可被 7 整除的数字以及包含 7 的数字,如下例所示:71417212728等等

我试着这样做:

for i in range(101):
if i%7==0 or i==range(7,98,10):
print(i)

但它会打印出这个:

71421等

我该怎么办?

最佳答案

正如其他地方所指出的,i == range(7,98,10) 没有任何意义,因为您无法将整数与范围对象进行比较。你实际上想做的是成员测试,在 python 中使用 in 关键字:i in range(7,98,10)

您会发现的下一个问题是您缺少一类包含数字 7 的数字。即 70-79 范围(尽管您会根据其他规则得到 70 和 77)。按照您当前的策略,您的最终答案可能如下所示:

for i in range(101):
if i % 7 == 0 or i in range(7, 98, 10) or i in range(70, 80):
print(i)

这是完全正确的。您还可以从数学上解决它,注意带有 7 个个位数的数字在除以 10 时余数为 7(称为模运算符,%),而带有 7 个十位的数字数字除以 10 时的商为 7(使用整数除法,//)。

for i in range(101):
if i % 7 == 0 or i % 10 == 7 or i // 10 == 7:
print(i)

最后,您可以使用一个巧妙的技巧来检查除法和模数相同的数字;内置divmod()会同时给出这两个结果功能。您只需要检查它们中的任何一个是否为 7。(请注意,如果您扩展超过 2 位数字,这将不起作用。)

for i in range(101):
if i % 7 == 0 or 7 in divmod(i, 10):
print(i)

(注意:我将 for 循环的范围保留为与您的示例代码相同。这将在输出中包括 0,因为它可以被 7 整除。如果您不想要 0,只需将范围更改为 range(1, 101)。)

关于python - 打印所有能被 7 整除并包含 7 从 0 到 100 的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52646571/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com