【教程】简单计算器算法(二)

编程开发   © 文章版权由 admin 解释,禁止匿名转载

#楼主# 2022-2-24

计算整数因子

当非零整数 a 除另一个整数 b,余数为 0 时,a 称为 b 的因子。 例如,2 是所有 偶数整数的因子。 我们可以编写下面的函数来确定非零整数 a 是否是另一个整数 b 的因子:
>>> def is_factor(a, b): if b % a == 0: return True else: return False
我们使用%运算符来计算余数。 如果你发现自己在问“4 是不 是 1024 的因子”这类问题,可以使用 is_factor()函数得到答案:
>>> is_factor(4, 1024) True
对于任何正整数 n,如何找到其所有的正因子? 对于 1 和 n 之间的每个整数, 我们检查 n 除以该整数后的余数。 如果余数为 0,那么这个整数就是一个因子。 使 用 range()函数来编写一个程序,它将遍历 1 到 n 之间的每个数字。 在编写完整的程序之前,先来看看 range()如何工作。 range()函数的典型用法如下所示:
>>> for i in range(1, 4): print(i) 1 2 3
在这里,我们设置了一个 for 循环,并给 range()函数传入了两个参数。 range() 函数从第一个整数参数(起始值)开始,一直到第二个整数参数(停止值)截止。 在这个例子中,我们告诉 Python 输出该范围内的数字,从 1 开始,到 4 停止。 注意, 这意味着 Python 不会输出 4,所以后输出的数字是停止值之前的数字 3。 同时也 要注意,range()函数只接收整数作为参数。 你也可以不指定 range()函数的起始值,在这种情况下,起始值被假定为 0。 例如:
>>> for i in range(5): print(i) 0 123 4
由 range()函数产生的两个连续整数之间的差称为步长值(step value)。 默认情 况下,步长值为 1。 要定义其他的步长值,请将其指定为第三个参数(这时,需指 定起始值)。 例如,下面的程序将输出 10 以下的奇数:
>>> for i in range(1,10,2): print(i) 1 3 5 7 9
我们已经了解了 range()函数是如何工作的,接下来考虑一个因子计算程序。 因 为我们将要编写一个相当长的程序,所以在 IDLE 编辑器里编写,而不是在交互式 的 IDLE 界面中。 你可以在 IDLE 中选择 File->New Window(或者 New File)来启 动编辑器。 请注意,我们首先用三个单引号(')来注释代码,这些引号之间的文本 不会被 Python 作为程序的一部分执行,它们只是我们对程序的注释。
''' Find the factors of an integer ''' def factors(b): for i in range(1, b+1): if b % i == 0: print(i) if __name__ == '__main__': b = input('Your Number Please: ') b = float(b) if b > 0 and b.is_integer(): factors(int(b)) else: print('Please enter a positive integer')
factors()函数定义了一个 for 循环,在n处,该循环使用 range()函数对 1 和输入 的数字之间的每个整数迭代一次。 这里,我们要迭代到用户输入的整数 b,所以停 止值被设置为 b+1。 对于每个整数 i,程序检查输入数字 b 除以 i 后是否没有余数, 如果没有余数,就输出 i。 当你运行此程序(选择 Run->Run Module)时,它会要求你输入一个数字。 如 果你输入的数字是正整数,程序会输出其因子,例如:
Your Number Please: 25 1 5 25
如果输入的是非整数或负整数,程序会输出一条错误信息,并要求你输入一 个正整数
#【教程】简单计算器算法(一)#

沙发
LV是非 2022-2-24
无图无真相,如需补充帖子相关图片联系在线版主解锁
板凳
LV是非 2022-2-25
已解锁,还请尽快补充帖子相关图片
地板
简单点zys 2022-2-27
看不懂啊,什么意思

评论

登录后才可发表内容
  • 主题

    20

  • 帖子

    80

  • 关注者

    0

Copyright © 2019 凯特网.   Powered by HYBBS 2.3.4  

Runtime:0.3248s Mem:2483Kb