码迷,mamicode.com
首页 > 编程语言 > 详细

python习题错误整理(一)

时间:2017-08-16 00:10:01      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:补充   循环输出   span   提示符   包含   二进制   提升   class   方式   

  题目:

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

  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习题错误整理(一)

标签:补充   循环输出   span   提示符   包含   二进制   提升   class   方式   

原文地址:http://www.cnblogs.com/AimeeCodeWorld/p/7368397.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!