Python 如何检查每个数字,而不是仅检查一个值?

Python 如何检查每个数字,而不是仅检查一个值?,python,modulus,Python,Modulus,除数: 对于2到100之间的数字,打印一系列行,指示哪些数字是其他数字的除数。对于每一个,打印出“X除以Y”,其中X这里是您的代码的更正版本,值小于等于6的Y。 您可以将其扩展到100 说明:第一个while循环检查y值。对于每个y值,使用第二个while循环检查其除数,该循环在x上运行。您可以在内部while循环中将x更新1,在外部while循环中将y更新1。如果不清楚,请在下面进行评论 代码问题:您使用了两个,而循环只用于y,其中一个是多余的。此外,您并没有像您在问题中明确指出的那样增加x。

除数:
对于2到100之间的数字,打印一系列行,指示哪些数字是其他数字的除数。对于每一个,打印出“X除以Y”,其中X这里是您的代码的更正版本,值小于等于6的
Y
。 您可以将其扩展到100

说明:第一个while循环检查
y
值。对于每个
y
值,使用第二个while循环检查其除数,该循环在
x
上运行。您可以在内部
while
循环中将
x
更新1,在外部
while
循环中将
y
更新1。如果不清楚,请在下面进行评论

代码问题:您使用了两个
,而
循环只用于
y
,其中一个是多余的。此外,您并没有像您在问题中明确指出的那样增加
x
。您的
elif
也不是必需的,因为您在这两种情况下都是递增的
y

y = 2
while y <= 6: # Replace 6 by 100 here
    x = 2 # Reset x to 2 for every y value because you count divisors from 2
    while x <= y:
        if y % x == 0:
            print(x, 'divides', y)
        x += 1  
    y += 1    

这应该是个好办法。试试看,如果有什么不清楚的话,就大声叫我一声

x = int(input("Give the range you want to check numbers in: "))

for number in range(1,x):
    for value in range(1,number+1):
        if number % value == 0:
            print(number, " is divided by", value)
输入“10”的输出:

您可以在这里使用enumerate,在每个项目之前循环索引将产生您想要得到的结果

x = [*range(2, 101)]
for idx, item in enumerate(x):
    for i in x[:idx +1]:
        if not item % i:
            print('{} divides {}'.format(i, item))
x = int(input("Give the range you want to check numbers in: "))

for number in range(1,x):
    for value in range(1,number+1):
        if number % value == 0:
            print(number, " is divided by", value)
1  is divided by 1
2  is divided by 1
2  is divided by 2
3  is divided by 1
3  is divided by 3
4  is divided by 1
4  is divided by 2
4  is divided by 4
5  is divided by 1
5  is divided by 5
6  is divided by 1
6  is divided by 2
6  is divided by 3
6  is divided by 6
7  is divided by 1
7  is divided by 7
8  is divided by 1
8  is divided by 2
8  is divided by 4
8  is divided by 8
9  is divided by 1
9  is divided by 3
9  is divided by 9
x = [*range(2, 101)]
for idx, item in enumerate(x):
    for i in x[:idx +1]:
        if not item % i:
            print('{} divides {}'.format(i, item))
2 divides 2
3 divides 3
2 divides 4
4 divides 4
5 divides 5
2 divides 6
3 divides 6
6 divides 6
...
99 divides 99
2 divides 100
4 divides 100
5 divides 100
10 divides 100
20 divides 100
25 divides 100
50 divides 100
100 divides 100