python练习-8.12
注:本代码是《python核心编程(第二版)》的第八章8-12的练习题的代码实现。
完成的功能:用户给出起始和结束的数字后给出一个下面的表格,分别显示出两个数字间所有整型的十进制、二进制、八进制及十六进制。如果字符是可打印的ASCLL符,也要打印出来。如果没有一个是可打印的字符,则省略掉ASCLL那一栏的表头。
代码实现如下:
def format_print(start_index, end_index):
seq = range(start_index, end_index + 1)
title = "DEC\tBIN\t\tOCT\tHEX"
if (end_index >=32 and end_index <=126):
title = "DEC\tBIN\t\tOCT\tHEX\tASCLL"
print title
print "--------------------------------------------"
for item in seq:
if item >= 32 and item <= 126:
print "%d\t%07d\t\t%o\t%x\t%s" % (item, int(bin(item)[2:]), item, item, chr(item))
else:
print "%d\t%07d\t\t%o\t%x" % (item, int(bin(item)[2:]), item, item)
print '--------------------------------------------' def showmenu():
prompt1 = 'enter start index, (Q)uit:'
prompt2 = 'enter end index, (Q)uit:'
while True:
start_index = raw_input(prompt1).strip().lower()
if start_index == 'q':
break
if not start_index.isdigit():
print "Error! wrong format!"
continue
else:
start_index = int(start_index) end_index = raw_input(prompt2).strip().lower()
if end_index == 'q':
break
if not end_index.isdigit():
print "Error! wrong format!"
continue
else:
end_index = int(end_index) if (start_index >= end_index):
continue
format_print(start_index, end_index) if __name__ == '__main__':
showmenu()
测试结果如下:
enter start index, (Q)uit:9
enter end index, (Q)uit:18
DEC BIN OCT HEX
--------------------------------------------
9 0001001 11 9
10 0001010 12 a
11 0001011 13 b
12 0001100 14 c
13 0001101 15 d
14 0001110 16 e
15 0001111 17 f
16 0010000 20 10
17 0010001 21 11
18 0010010 22 12
--------------------------------------------
enter start index, (Q)uit:26
enter end index, (Q)uit:41
DEC BIN OCT HEX ASCLL
--------------------------------------------
26 0011010 32 1a
27 0011011 33 1b
28 0011100 34 1c
29 0011101 35 1d
30 0011110 36 1e
31 0011111 37 1f
32 0100000 40 20
33 0100001 41 21 !
34 0100010 42 22 "
35 0100011 43 23 #
36 0100100 44 24 $
37 0100101 45 25 %
38 0100110 46 26 &
39 0100111 47 27 '
40 0101000 50 28 (
41 0101001 51 29 )
--------------------------------------------
enter start index, (Q)uit:
python练习-8.12的更多相关文章
- 【转】Centos升级Python 2.7.12并安装pip、ipython
Centos系统一般默认就安装有Python2.6.6版本,不少软件需要2.7以上的,通过包管理工具安装不了最新的版本,通过源码编译可以方便安装指定版本,只需要把下面版本的数字换成你想要的版本号. 1 ...
- python入门(12)dict
python入门(12)dict Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度. 举个例 ...
- Python高级特性: 12步轻松搞定Python装饰器
12步轻松搞定Python装饰器 通过 Python 装饰器实现DRY(不重复代码)原则: http://python.jobbole.com/84151/ 基本上一开始很难搞定python的装 ...
- supperset (python 2.7.12 + mysql)记录
网上看到superset,比较感兴趣,虚机上搭一下,记录操作过程. 版本信息:CentOS 6.6 + python 2.7.12 + mysql 5.1.73 + setuptools 36.5.0 ...
- Python Cookbook 笔记--12章并发编程
<Python Cookbook(第3版)中文版> 1.队列queue的有些方法是线程不安全的,在多线程中最好别用 2.需要限制一段代码的并发访问量时,用信号量.不要把信号量当做普通的锁来 ...
- python学习笔记12 ----线程、进程
进程和线程的概念 进程和线程是操作系统中两个很重要的概念,对于一般的程序,可能有若干个进程,每一个进程有若干个同时执行的线程.进程是资源管理的最小单位,线程是程序执行的最小单位(线程可共享同一进程里的 ...
- Python学习(12)日期和时间
目录 Python 日期和时间 时间元组 获取当前时间 获取格式化时间 格式化日历 获取某月日历 Time模块 日历模块 其他相关模块和函数 Python 日期和时间 Python 程序能用很多方式处 ...
- Python得到前面12个月的数据,Python得到现在时间 前一年的数据,
#Python 实现得到现在时间12个月前的每个月 # 假设现在的时间是2016年9月25日 #得到现在的时间 得到now等于2016年9月25日 now = datetime.datetime.no ...
- 我的Python成长之路---第三天---Python基础(12)---2016年1月16日(雾霾)
四.函数 日常生活中,要完成一件复杂的功能,我们总是习惯把“大功能”分解为多个“小功能”以实现.在编程的世界里,“功能”可称呼为“函数”,因此“函数”其实就是一段实现了某种功能的代码,并且可以供其它代 ...
- python自学第12天 模块定义,导入,内置模块
1.定义模块:用来从逻辑上组织python代码(实现一个功能),本质是.py结尾的python 包:本质就是一个目录(必须带有一个_init_.py文件)2.导入方法import module_nam ...
随机推荐
- poj1080 - Human Gene Functions (dp)
题面 It is well known that a human gene can be considered as a sequence, consisting of four nucleotide ...
- 【23.91%】【hdu 4694】Important Sisters("支NMLGB配树"后记)(支配树代码详解)
Time Limit: 7000/7000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Total Submission( ...
- Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署静态网站(一)
在之前已经写了关于Git,Gitlab以及Ansible的两篇博客<Git+Gitlab+Ansible剧本实现一键部署Nginx--技术流ken>,<Git+Gitlab+Ansi ...
- 网易Java高级开发课程随笔
java学习也有6个月之久,记录下课程相关知识点,目前我还没有掌握,so仅作技术点记录 鉴于在.NET上我封装了一套开发框架,虽去年按.NET封装的思路自己也弄了个java开发框架,还是感觉对java ...
- Excel单元格的日常操作
通过右键选择插入来移动单元格 灵活的运用"整行" 与 "整列" 选中区域之后 通过点击区域边框进行移动 按住shift之后框会变成线 更容易拖动 按住ctrl拖 ...
- Python网络编程笔记二
使用select模块实现IO多路复用服务端 import socket import select #windows上只支持select.select,不支持poll epoll HOST = &qu ...
- 泛圈科技Yottachain区块链云存储打破传统云迎来价值数据存储
随着物联网时代的发展,更多的数据随之产生.从智能设备到电脑再到视频游戏机,各种各样的信息从不同的电子产品源源不断地涌入.通常,人们将数据存储在本地驱动器中.但是,由于产生的数据量是无限的,超过了本地存 ...
- 驾驭git merge——git merge的规范化操作
这两天负责将一个开发了较长时间,代码量数万行的C语言项目(A项目)的代码分支合并到主线.由于之前参与过一些其他项目分支收编时采用git merge引入问题的修改,个人从心理上对git merge有所抵 ...
- 搭建高可用的flink JobManager HA
JobManager协调每个flink应用的部署,它负责执行定时任务和资源管理. 每一个Flink集群都有一个jobManager, 如果jobManager出现问题之后,将不能提交新的任务和运行新任 ...
- DOCKER学习_010:Docker的文件系统以及制作镜像
一 文件系统简介 1.1 Linux文件系统 LInux空间组成分为内核空间和用户空间(使用rootfs) linux文件系统由 bootes和 rootfs组成, bootes主要包含boot1 o ...