计算整数因子 当非零整数a除另一个整数b,余数为0时,a称为b的因子。例如,2是所有偶数整数的因子。我们可以编写下面的函数来确定非零整数a是否是另一个整数b的因子: defisfactor(a,b):ifba0:returnTrueelse:returnFalse 我们使用运算符来计算余数。如果你发现自己在问4是不是1024的因子这类问题,可以使用isfactor()函数得到答案: isfactor(4,1024)True 对于任何正整数n,如何找到其所有的正因子?对于1和n之间的每个整数,我们检查n除以该整数后的余数。如果余数为0,那么这个整数就是一个因子。使用range()函数来编写一个程序,它将遍历1到n之间的每个数字。在编写完整的程序之前,先来看看range()如何工作。range()函数的典型用法如下所示: foriinrange(1,4):print(i)123 在这里,我们设置了一个for循环,并给range()函数传入了两个参数。range()函数从第一个整数参数(起始值)开始,一直到第二个整数参数(停止值)截止。在这个例子中,我们告诉Python输出该范围内的数字,从1开始,到4停止。注意,这意味着Python不会输出4,所以后输出的数字是停止值之前的数字3。同时也要注意,range()函数只接收整数作为参数。你也可以不指定range()函数的起始值,在这种情况下,起始值被假定为0。例如: foriinrange(5):print(i)01234 由range()函数产生的两个连续整数之间的差称为步长值(stepvalue)。默认情况下,步长值为1。要定义其他的步长值,请将其指定为第三个参数(这时,需指定起始值)。例如,下面的程序将输出10以下的奇数: foriinrange(1,10,2):print(i)13579 我们已经了解了range()函数是如何工作的,接下来考虑一个因子计算程序。因为我们将要编写一个相当长的程序,所以在IDLE编辑器里编写,而不是在交互式的IDLE界面中。你可以在IDLE中选择FileNewWindow(或者NewFile)来启动编辑器。请注意,我们首先用三个单引号()来注释代码,这些引号之间的文本不会被Python作为程序的一部分执行,它们只是我们对程序的注释。 Findthefactorsofanintegerdeffactors(b):foriinrange(1,b1):ifbi0:print(i)ifnamemain:binput(YourNumberPlease:)bfloat(b)ifb0andb。isinteger():factors(int(b))else:print(Pleaseenterapositiveinteger) factors()函数定义了一个for循环,在n处,该循环使用range()函数对1和输入的数字之间的每个整数迭代一次。这里,我们要迭代到用户输入的整数b,所以停止值被设置为b1。对于每个整数i,程序检查输入数字b除以i后是否没有余数,如果没有余数,就输出i。当你运行此程序(选择RunRunModule)时,它会要求你输入一个数字。如果你输入的数字是正整数,程序会输出其因子,例如: YourNumberPlease:251525 如果输入的是非整数或负整数,程序会输出一条错误信息,并要求你输入一个正整数 【教程】简单计算器算法(一)