python习题错误整理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python习题错误整理相关的知识,希望对你有一定的参考价值。

  题目:

  编写程序显示下面的表格:

  a      a^2     a^3

  1         1        1

  2         4        8

  3         9        27

  4        16       64

方法一:

In [1]: a = [1,2,3,4]

In [2]: for x in a:
   ...:     print(x,x*x,x*x*x)
   ...:
1 1 1
2 4 8
3 9 27
4 16 64

这种方法能输出结果,但显示的方式与要求并不一致。

方法二:

In [104]: def print_table(a):
...: for x in range(1,a):
...: print(str("%-3d,%-3d,%-3d" % (x,x*x,x*x*x)).replace(‘,‘,‘‘))
...:

In [105]: print_table(5)
1 1 1
2 4 8
3 9 27
4 16 64

这种方法提升了代码的使用性,并实现了格式的对照要求。

知识补充》提示符:

格式符为真实值预留位置,并控制显示的格式。格式符可以包含有一个类型码,用以控制显示的类型,如下:

%s    字符串 (采用str()的显示)

%r    字符串 (采用repr()的显示)

%c    单个字符

%b    二进制整数

%d    十进制整数

%i    十进制整数

%o    八进制整数

%x    十六进制整数

%e    指数 (基底写为e)

%E    指数 (基底写为E)

%f    浮点数

%F    浮点数,与上相同

%g    指数(e)或浮点数 (根据显示长度)

%G    指数(E)或浮点数 (根据显示长度)

%%    字符"%"

写这道题时,出现了以下几种错误的解题思路:

错误:

In [77]: def print_table(a):
    ...:     for x in range(1,a):
    ...:         num = "%d,%d,%d" % (x,x*x,x*x*x)
    ...:     print(num)
    ...:
    ...:

In [78]: print_table(4)
3,9,27

错误之处在于,将for循环输出的值在循环内部赋值给一个变量,这使得每次循环,变量的值都会被最后一次循环的值所覆盖。

并且题目要求每一行的值都被打印出来,故应该在循环内部使用print打印出结果。

 








以上是关于python习题错误整理的主要内容,如果未能解决你的问题,请参考以下文章

吐血整理 python最全习题100道(含答案)持续更新题目,建议收藏!

Python3练习题系列(03)

熬夜整理!200道Python数据分析习题+50个办公自动化案例!

Python之精心整理的30道练手学习习题 | Python技能树征题

女朋友给我整理的99个Python练习题,说完成之后有惊喜,我既期待又害怕

python的100道简单习题,祝你成为python大神的小老弟