zoukankan      html  css  js  c++  java
  • python练习-8.12

    注:本代码是《python核心编程(第二版)》的第八章8-12的练习题的代码实现。

    完成的功能:用户给出起始和结束的数字后给出一个下面的表格,分别显示出两个数字间所有整型的十进制、二进制、八进制及十六进制。如果字符是可打印的ASCLL符,也要打印出来。如果没有一个是可打印的字符,则省略掉ASCLL那一栏的表头。

    代码实现如下:

     1 def format_print(start_index, end_index):
     2     seq = range(start_index, end_index + 1)
     3     title =  "DEC	BIN		OCT	HEX"
     4     if (end_index >=32 and end_index <=126):
     5         title =  "DEC	BIN		OCT	HEX	ASCLL"
     6     print title
     7     print "--------------------------------------------"
     8     for item in seq:
     9         if item >= 32 and item <= 126:
    10             print "%d	%07d		%o	%x	%s" % (item, int(bin(item)[2:]), item, item, chr(item))
    11         else:
    12             print "%d	%07d		%o	%x" % (item, int(bin(item)[2:]), item, item)
    13     print '--------------------------------------------'
    14 
    15 
    16 def showmenu():
    17     prompt1 = 'enter start index, (Q)uit:'
    18     prompt2 = 'enter end  index, (Q)uit:'
    19     while True:
    20         start_index = raw_input(prompt1).strip().lower()
    21         if start_index == 'q':
    22             break
    23         if not start_index.isdigit():
    24             print "Error! wrong format!"
    25             continue
    26         else:
    27             start_index = int(start_index)    
    28 
    29         end_index = raw_input(prompt2).strip().lower()
    30         if end_index == 'q':
    31             break
    32         if not end_index.isdigit():
    33             print "Error! wrong format!"
    34             continue
    35         else:
    36             end_index = int(end_index)
    37 
    38         if (start_index >= end_index):
    39             continue
    40         format_print(start_index, end_index)        
    41 
    42 
    43 if __name__ == '__main__':
    44     showmenu()        

    测试结果如下:

     1 enter start index, (Q)uit:9
     2 enter end  index, (Q)uit:18
     3 DEC     BIN             OCT     HEX
     4 --------------------------------------------
     5 9       0001001         11      9
     6 10      0001010         12      a
     7 11      0001011         13      b
     8 12      0001100         14      c
     9 13      0001101         15      d
    10 14      0001110         16      e
    11 15      0001111         17      f
    12 16      0010000         20      10
    13 17      0010001         21      11
    14 18      0010010         22      12
    15 --------------------------------------------
    16 enter start index, (Q)uit:26
    17 enter end  index, (Q)uit:41
    18 DEC     BIN             OCT     HEX     ASCLL
    19 --------------------------------------------
    20 26      0011010         32      1a
    21 27      0011011         33      1b
    22 28      0011100         34      1c
    23 29      0011101         35      1d
    24 30      0011110         36      1e
    25 31      0011111         37      1f
    26 32      0100000         40      20
    27 33      0100001         41      21      !
    28 34      0100010         42      22      "
    29 35      0100011         43      23      #
    30 36      0100100         44      24      $
    31 37      0100101         45      25      %
    32 38      0100110         46      26      &
    33 39      0100111         47      27      '
    34 40      0101000         50      28      (
    35 41      0101001         51      29      )
    36 --------------------------------------------
    37 enter start index, (Q)uit:
  • 相关阅读:
    canvas+js绘制序列帧动画+面向对象
    canvas+js画饼状图
    CSS3 文本溢出问题
    jquery 实现省市二级联动
    jquery将json数据放入表格当中
    css ie6双倍margin现象
    css margin塌陷问题
    css ie浏览器兼容问题
    css 实现文字图片垂直对齐
    css 清楚浮动三种方法
  • 原文地址:https://www.cnblogs.com/mrlayfolk/p/12000650.html
Copyright © 2011-2022 走看看