Python 无余数数

Python 无余数数,python,numbers,integer,Python,Numbers,Integer,我需要打印出1到n之间的数字(n是用键盘输入的),这些数字不能除以2、3和5。 我需要使用while或for循环,剩余部分用%得到。 我是新来的,我不明白%的用法? 我试过这样的方法: import math print("Hey. Enter a number.") entered_number = int(input()) for i in range(1, entered_number): if i%2 != 0: print("The number", i

我需要打印出1到n之间的数字(n是用键盘输入的),这些数字不能除以2、3和5。 我需要使用while或for循环,剩余部分用%得到。 我是新来的,我不明白%的用法? 我试过这样的方法:

import math

print("Hey. Enter a number.")

entered_number = int(input())

for i in range(1, entered_number):

    if i%2 != 0:
        print("The number", i, "is ok.")
    else:
        pass
    if i%3 != 0:
        print("The number", i, "is ok.")
    else:
        pass
    if i%5 != 0:
        print("The number", i, "is ok.")

帮助?

您需要在一条语句中测试所有3种情况,而不是在3条语句中:

for i in range(1, entered_number):    
    if i % 2 != 0 and i % 3 != 0 and i % 5 != 0:
        print("The number", i, "is ok.")
此处的
操作员确保在打印前满足所有三个条件


您单独测试每个条件,这意味着如果数字是,比如说,10,您仍在打印
数字10是可以的。
因为它不能被3整除。对于正常的数字,您正在打印
数字。。。可以。
3次,因为您的代码测试它不能被3个不同的数字分开整除,每次都打印。

您需要在一个语句中测试所有3个条件,而不是在3:

for i in range(1, entered_number):    
    if i % 2 != 0 and i % 3 != 0 and i % 5 != 0:
        print("The number", i, "is ok.")
此处的
操作员确保在打印前满足所有三个条件


您单独测试每个条件,这意味着如果数字是,比如说,10,您仍在打印
数字10是可以的。
因为它不能被3整除。对于正常的数字,您正在打印
数字。。。可以。
3次,因为您的代码测试它不能被3个不同的数字分开整除,每次都打印。

您可能应该同时检查这三个条件:

if i%2 != 0 and i%3 != 0 and i%5 != 0:
    print("The number", i, "is ok.")
否则,您将为一个数字多次打印同一消息


无论如何,对于第二个问题,
%
操作称为
,它给出除法的余数。例如,
5%3=2
,因为
5=3*1+2
。当你检查
i%2!=0
,您实际上检查我是否可以被2除。

您可能应该同时检查这三个条件:

if i%2 != 0 and i%3 != 0 and i%5 != 0:
    print("The number", i, "is ok.")
print("Hey. Enter a number.")
entered_number = int(input())
for i in range(1, entered_number):
    if i%2 != 0 and i%3 !=0 and i%5!=0:
        print("The number", i, "is ok.")
否则,您将为一个数字多次打印同一消息

无论如何,对于第二个问题,
%
操作称为
,它给出除法的余数。例如,
5%3=2
,因为
5=3*1+2
。当你检查
i%2!=0
,您实际上检查i是否可以被2除

print("Hey. Enter a number.")
entered_number = int(input())
for i in range(1, entered_number):
    if i%2 != 0 and i%3 !=0 and i%5!=0:
        print("The number", i, "is ok.")
a%b
a
除以
b
时返回余数。例如:

>> 5%3
2
这里的错误是,您在检查单个条件后进行打印,因此即使
i
可被其他数字整除,它也会打印。例如,如果
i
是3,它将满足第一个条件,因此打印数字是ok的,但实际上可以被3整除

a%b
a
除以
b
时返回余数。例如:

>> 5%3
2

这里的错误是,您在检查单个条件后进行打印,因此即使
i
可被其他数字整除,它也会打印。例如,如果
i
是3,它将满足第一个条件,因此打印数字是可以的,但实际上可以被3整除。

如果某个数字被7整除,则:

something % 7 == 0
如果某物除以7和9,则:

相反,如果某物除以7或9,则:

不除以7或9的部分由以下表达式给出:

not (something % 7 == 0 or something % 9 == 0)

您不需要
其他:从代码中传递
位,并传递一个if语句,其中if表达式包含三个
%,==
位就足够了。

如果某个值除以7,则:

something % 7 == 0
如果某物除以7和9,则:

相反,如果某物除以7或9,则:

不除以7或9的部分由以下表达式给出:

not (something % 7 == 0 or something % 9 == 0)

你不需要
其他:从你的代码中传递
位和一个if语句,其中if表达式有三个
%,==
位就足够了。

我看到你已经解决了你的问题,但我的答案可能值得一读

这个问题实际上是对一组数字进行筛选
1..n
。您可以定义一个基本函数来测试数字
x
是否可除以数字
y
,然后使用此基本函数过滤列表以获得结果

这是我的版本

import math
from functools import partial

print("Hey. Enter a number.")

entered_number = int(input())

def not_dividable_by(x, y):
    return False if x % y == 0 else True

number_list = range(1, entered_number)

for i in [2, 3, 5]:
    test_func = partial(not_dividable_by, y=i)
    number_list = filter(test_func, number_list)

for number in number_list:
    print("%d is OK" % (number,))

我看到你已经解决了你的问题,但我的答案可能值得一读

这个问题实际上是对一组数字进行筛选
1..n
。您可以定义一个基本函数来测试数字
x
是否可除以数字
y
,然后使用此基本函数过滤列表以获得结果

这是我的版本

import math
from functools import partial

print("Hey. Enter a number.")

entered_number = int(input())

def not_dividable_by(x, y):
    return False if x % y == 0 else True

number_list = range(1, entered_number)

for i in [2, 3, 5]:
    test_func = partial(not_dividable_by, y=i)
    number_list = filter(test_func, number_list)

for number in number_list:
    print("%d is OK" % (number,))

有什么问题吗?你期望得到什么样的产出?你得到了什么样的产出?无论如何,有一件事我可以肯定地说:所有的
else:pass
都可以省略,因为它们是无用的。还有,为什么你要做两次
i%3
,而我周围看不到任何
i%5
…为什么不只用一个if语句呢?使用ANDOh,该死,我错过了5分。这就是重点,我需要打印出所有不除以2,3和5的数字,我不知道怎么做。很抱歉我是一个新手,但我刚刚开始学习这个,我想理解@Bakuriuw有什么问题?你期望得到什么样的产出?你得到了什么样的产出?无论如何,有一件事我可以肯定地说:所有的
else:pass
都可以省略,因为它们是无用的。还有,为什么你要做两次
i%3
,而我周围看不到任何
i%5
…为什么不只用一个if语句呢?使用ANDOh,该死,我错过了5分。这就是重点,我需要打印出所有不除以2,3和5的数字,我不知道怎么做。很抱歉我是一个新手,但我刚刚开始学习这个,我想理解@BakuriuHe在其原始代码中有一个
else
,因此我猜他不会用
pass
语句,而是会晚些做一些事情