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

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

#楼主# 2022-2-24

考虑三个数字 a、b 和 n,其中 n 是整数,使得 a×n = b。此处我们可以说,b是 a 的第 n 个倍数。例如,4 是 2 的第二个倍数,1024 是 2 的第 512 个倍数。 一个数字的乘法表列出了该数字的所有倍数。例如,2 的乘法表是这样的(这里给出了 2 的前三个倍数): 2×1=2 2×2=4 2×3=6 我们的下一个程序就是为用户输入的任何数字生成最大到乘数 10 的乘法表。 在这个程序中,我们将使用 format()函数与 print()函数来使程序的输出看起来更友好、更可读。下面简要介绍一下它的工作原理。 format()函数可以插入标签并对其进行设置,以获得一个友好的、可读的字符串 输出。例如,假设我们有在杂货店购买的所有水果的名称,并为每种水果创建了单独的标签,现在想输出一个连贯的句子,可以使用 format()函数:
>>> item1 = 'apples'>>> item2 = 'bananas'>>> item3 = 'grapes'>>> print('At the grocery store, I bought some {0} and {1} and {2}'.format(item1, item2, item3))At the grocery store, I bought some apples and bananas and grapes
我们创建了三个标签(item1、item2 和 item3),每个标签指代不同的字符串(苹果、香蕉和葡萄)。然后,在 print()函数中,我们键入字符串,它包含了三个在大括号中的占位符,分别为{0}、{1}和{2}。接下来是.format(),它的参数为之前创建的三个标签,这会告诉 Python 按照列出的顺序,用这些标签保存的值来填充这三个占位符,因此,在 Python 的输出文本中,第一个标签的内容替换了{0},第二个标签的内容替换了{1},依此类推。 使用标签指向我们要输出的值并非必要,我们可以在.format()中直接键入值
>>> print('Number 1: {0} Number 2: {1} '.format(1, 3.578)) Number 1: 1 Number 2: 3.578
占位符的数量和标签(或键入值)的数量必须相等。 了解了 format()的工作原理之后,接下来让我们看看生成乘法表的程序
Multiplication table printerdef multi_table(a):? for i in range(1, 11):print('{0} x {1} = {2}'.format(a, i, a*i))if __name__ == '__main__':a = input('Enter a number: ')multi_table(float(a))
multi_table()函数实现程序的主要功能,它将输出 a 的乘法表(a 也是参数)。 因为我们要输出从 1 到 10 的乘法表,所以在?处有一个 for 循环,它将迭代这些数字中的每一个数字,输出它本身和数字 a 的乘积。 当你执行程序时,它会让你输入一个数字,然后该程序输出其乘法表:
Enter a number : 55.0 x 1 = 5.05.0 x 2 = 10.05.0 x 3 = 15.05.0 x 4 = 20.05.0 x 5 = 25.05.0 x 6 = 30.05.0 x 7 = 35.05.0 x 8 = 40.05.0 x 9 = 45.05.0 x 10 = 50.0
使用了.format()函数,根据 可读、统一的模板输出的内容。使用 format()函数来进一步控制数字输出的形式。数字只有两位小数
Enter a number : 5>>> '{0}'.format(1.25456)'1.25456'>>> '{0:.2f}'.format(1.25456)'1.25'
第一个 format 语句将我们输入的数字原封不动地输出。在第二个语句中,我们 将占位符修改为{0:.2f},这意味着我们只需要小数点后面的两个数字,其中 f 表示一个浮点数。如你所见,在下一个输出中,小数点后只有两个数字。请注意,如果数字小数点后的位数多于你指定的位数,则该数字将四舍五入,例如:
>>>'{0:.2f}'.format(1.25556)'1.26'
在这里,1.25556 向上取整到最接近的百分位,并输出为 1.26。如果将.2f 应用 到整数上,则会在小数点后面添加零
>>>'{0:.2f}'.format (1 )'1.00'
添加两个零是因为我们指定在小数点后输出两个数字

沙发
LV是非 2022-2-24
无图无真相,如需补充帖子相关图片联系在线版主解锁!

评论

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

    20

  • 帖子

    80

  • 关注者

    0

Copyright © 2019 凯特网.   Powered by HYBBS 2.3.4  

Runtime:0.4953s Mem:2533Kb